From 2d69c7bd4a871afc1973bf6db9cab55a0011dd30 Mon Sep 17 00:00:00 2001 From: Ben Reaves Date: Tue, 28 Jan 2020 19:46:58 -0600 Subject: [PATCH] - Updated keyswap service and xactive to use kintox11 binary over xprop --- keyswap_service.sh | 2 + system-config/xactive.sh | 82 ++++++++++++---------------------------- 2 files changed, 27 insertions(+), 57 deletions(-) diff --git a/keyswap_service.sh b/keyswap_service.sh index 7453fef..878492d 100755 --- a/keyswap_service.sh +++ b/keyswap_service.sh @@ -16,6 +16,8 @@ if [[ "$swapbehavior" == "1" ]]; then cp ./system-config/keyswap.sh ~/.config/autostart/keyswap.sh cp ./system-config/xactive.sh ~/.config/xactive.sh cp ./system-config/keyswap_toggle.sh ~/.config/keyswap_toggle.sh + cp ./kintox11/binary/kintox11_ubuntu19-10 ~/.config/kintox11 + cp ./kintox11/binary/appnames.csv ~/.config/appnames.csv sed -i "s/{username}/`whoami`/g" ~/.config/systemd/user/keyswap.service sed -i "s/ExecStart=/ExecStart=${swapcmd}/g" ~/.config/systemd/user/keyswap.service systemctl --user enable keyswap diff --git a/system-config/xactive.sh b/system-config/xactive.sh index f64f0cd..f125004 100755 --- a/system-config/xactive.sh +++ b/system-config/xactive.sh @@ -1,9 +1,4 @@ #!/bin/bash -# How to add more terminal editors -# run this command while using the terminal -# and add the name to class_name -# xprop -id $(xprop -root 32x '\t$0' _NET_ACTIVE_WINDOW | cut -f 2) WM_CLASS -class_name='konsole\|Gnome-terminal\|terminator\|sakura\|guake\|tilda\|xterm\|eterm' systemtype=$1 internalid=$2 @@ -21,73 +16,46 @@ if [[ "$systemtype" == "windows" || "$systemtype" == "mac" ]]; then # mac_only is for apple keyboards without an apple hid driver elif [[ "$systemtype" == "mac_only" ]]; then swapcmd_gui="setxkbmap -option;xkbcomp -w0 -I$HOME/.xkb ~/.xkb/keymap/kbd.mac.gui $DISPLAY" - check_gt="setxkbmap -query | grep -v 'alt_super_win' 1>/dev/null" - check_tg="setxkbmap -query | grep -q 'alt_super_win'" swapcmd_term="setxkbmap -option" # Chromebook options elif [[ "$swapbehavior" == "both_mac" ]]; then swapcmd_gui="setxkbmap -option;setxkbmap -option ctrl:swap_lwin_lctl; xkbcomp -w0 -i $internalid -I$HOME/.xkb ~/.xkb/keymap/kbd.chromebook.gui $DISPLAY" swapcmd_term="setxkbmap -option;setxkbmap -device $internalid -option 'altwin:swap_alt_win'" - check_gt="setxkbmap -query | grep -v 'swap_alt_win' 1>/dev/null" - check_tg="setxkbmap -query | grep -q 'swap_alt_win'" elif [[ "$swapbehavior" == "both_win" ]]; then swapcmd_gui="setxkbmap -option;xkbcomp -w0 -I$HOME/.xkb ~/.xkb/keymap/kbd.chromebook.gui $DISPLAY; setxkbmap -device $usbid -option altwin:ctrl_alt_win" fallbackcmd_gui="setxkbmap -option;xkbcomp -w0 -I$HOME/.xkb ~/.xkb/keymap/kbd.chromebook.gui $DISPLAY" - check_gt="setxkbmap -query | grep -q 'ctrl_alt_win'" - check_tg="setxkbmap -query | grep -v 'ctrl_alt_win' 1>/dev/null" elif [[ "$swapbehavior" == "none" ]]; then swapcmd_gui="setxkbmap -option;xkbcomp -w0 -I$HOME/.xkb ~/.xkb/keymap/kbd.chromebook.gui $DISPLAY" - check_gt="setxkbmap -query | grep -v 'swap_alt_win' 1>/dev/null" - check_tg="setxkbmap -query | grep -q 'swap_alt_win'" fi -# echo "$systemtype $swapbehavior" -# echo "$swapcmd_gui" - eval "$swapcmd_gui" -# regex for extracting hex id's -grep_id='0[xX][a-zA-Z0-9]\+' +# If running gnome this will disable the overlay-key mapping +gsettings set org.gnome.mutter overlay-key '' -#Storing timestamp and will use timediff to prevent xprop duplicates -timestp=$(date +%s) - -xprop -spy -root _NET_ACTIVE_WINDOW | grep --line-buffered -o $grep_id | +./kintox11 | while read -r id; do - class="`xprop -id $id WM_CLASS | grep $class_name`" - newtime=$(date +%s) - timediff=$((newtime-timestp)) - if [ $timediff -gt 0 ]; then - if [ -n "$class" ]; then - # Set keymap for terminal, Alt is Super, Ctrl is Ctrl, Super is Alt - eval "$check_gt" - echo $? - if [ $? -eq 0 ]; then - echo "internal gui to term" - eval "$swapcmd_term" - - # Quick hack, will want to refactor later - # just resets required checks, for chromebooks that - # use usb windows keyboards - if [[ "$swapbehavior" == "both_win" ]]; then - check_gt="setxkbmap -query | grep -q 'ctrl_alt_win'" - check_tg="setxkbmap -query | grep -v 'ctrl_alt_win' 1>/dev/null" - fi - fi - else - # Set keymap for gui, Alt is Ctrl,Super is Alt, Ctrl is Super - eval "$check_tg" - echo $? - if [ $? -eq 0 ]; then - echo "internal term to gui" - eval "$swapcmd_gui" - if [ $? -eq 0 ] && [[ "$swapbehavior" == "both_win" ]]; then - eval "$fallbackcmd_gui" - check_gt="setxkbmap -query | grep -v 'swap_alt_win' 1>/dev/null" - check_tg="setxkbmap -query | grep -q 'swap_alt_win'" - fi - fi - fi - timestp=$(date +%s) + if [[ "$id" == "term" ]]; then + echo "internal gui to term" + eval "$swapcmd_term" + + # Gnome - Set Activities Overview + gsettings set org.gnome.desktop.wm.keybindings panel-main-menu "['Space']" fi + + if [[ "$id" == "gui" ]]; then + echo "internal term to gui" + eval "$swapcmd_gui" + + # Gnome - Set Activities Overview + gsettings set org.gnome.desktop.wm.keybindings panel-main-menu "['Space']" + + # # Fallback code + # if [ $? -eq 0 ] && [[ "$swapbehavior" == "both_win" ]]; then + # eval "$fallbackcmd_gui" + # check_gt="setxkbmap -query | grep -v 'swap_alt_win' 1>/dev/null" + # check_tg="setxkbmap -query | grep -q 'swap_alt_win'" + # fi + fi + done \ No newline at end of file