diff --git a/xkeysnail-config/logoff.sh b/xkeysnail-config/logoff.sh new file mode 100755 index 0000000..31ec1b3 --- /dev/null +++ b/xkeysnail-config/logoff.sh @@ -0,0 +1,6 @@ +dbus-monitor --session "type='signal',interface='org.gnome.SessionManager.Logout'" | grep '1' | +while read x; do + echo "$x" + sudo systemctl stop xkeysnail + break +done diff --git a/xkeysnail-config/xkeysnail.desktop b/xkeysnail-config/xkeysnail.desktop index 4ff6059..5e8a1e9 100644 --- a/xkeysnail-config/xkeysnail.desktop +++ b/xkeysnail-config/xkeysnail.desktop @@ -2,7 +2,7 @@ Name=Kinto_xkey GenericName=Kinto_xkey Comment=Make Linux Type Like it's a Mac -Exec=/bin/bash -c "{xhost} +SI:localuser:root && sudo {systemctl} restart xkeysnail" +Exec=/bin/bash -c "{xhost} +SI:localuser:root && sudo {systemctl} restart xkeysnail && {homedir}/.config/kinto/logoff.sh" Terminal=false Type=Application X-GNOME-Autostart-enabled=true \ No newline at end of file diff --git a/xkeysnail-config/xkeysnail.service b/xkeysnail-config/xkeysnail.service index c7c6276..b6e3c3f 100644 --- a/xkeysnail-config/xkeysnail.service +++ b/xkeysnail-config/xkeysnail.service @@ -4,9 +4,8 @@ Description=xkeysnail [Service] Type=simple KillMode=process -ExecStartPre=/bin/bash -c "{xhost} +SI:localuser:root && /sbin/runuser -l {username} -c {homedir}/.config/kinto/prexk.sh" -ExecStart=/usr/bin/sudo /bin/bash -c '{experimental-caret}{homedir}/.config/kinto/xkeystart.sh /tmp/kinto/xkeysnail/kinto.py' -ExecStop=/bin/bash -c 'me=$$;ps -ef | grep \'[t]mp/kinto\' | awk -v me=$me \'$2 != me {print $2}\' | xargs kill;/usr/bin/killall dbus-monitor;/usr/bin/killall xkeysnail;{kill-caret}' +ExecStart=/usr/bin/sudo /bin/bash -c '/usr/bin/xhost +SI:localuser:root && /usr/local/bin/xkeysnail --quiet --watch {homedir}/.config/kinto/kinto.py' +ExecStop=/usr/bin/killall xkeysnail Restart=on-failure RestartSec=3 Environment=DISPLAY={displayid} diff --git a/xkeysnail_service.sh b/xkeysnail_service.sh index bbe8ce9..61c6e42 100755 --- a/xkeysnail_service.sh +++ b/xkeysnail_service.sh @@ -181,21 +181,21 @@ if [[ $1 == "1" || $1 == "2" || $1 == "3" || $1 == "winmac" || $1 == "mac" || $1 * ) break;; esac done - branch=$(git rev-parse --abbrev-ref HEAD) - if [ "$branch" == "dev" ] || [ "$branch" == "alpha" ];then - while true; do - read -rep $'\nExperimental Support for Firefox/Chrome Back/Forward hotkeys (Cmd+Left/Right)?\n(Keys could get stuck, switch windows or press ctrl &/or super to release) (y/n)\n' yn - case $yn in - [Yy]* ) exp='/sbin/runuser -l {username} -c "export DISPLAY={displayid};{homedir}/.config/kinto/caret_status_xkey.sh\&";'; expsh='"{homedir}/.config/kinto/caret_status_xkey.sh"'; break;; - [Nn]* ) exp=" "; expsh=" " break;; - # * ) echo "Please answer yes or no.";; - esac - done - else - echo -e "\nSupport for Firefox/Chrome Back/Forward hotkeys (Cmd+Left/Right) disabled on $branch w/ xkeysnail \n" - exp=" " - expsh=" " - fi + # branch=$(git rev-parse --abbrev-ref HEAD) + # if [ "$branch" == "dev" ] || [ "$branch" == "alpha" ];then + # while true; do + # read -rep $'\nExperimental Support for Firefox/Chrome Back/Forward hotkeys (Cmd+Left/Right)?\n(Keys could get stuck, switch windows or press ctrl &/or super to release) (y/n)\n' yn + # case $yn in + # [Yy]* ) exp='/sbin/runuser -l {username} -c "export DISPLAY={displayid};{homedir}/.config/kinto/caret_status_xkey.sh\&";'; expsh='"{homedir}/.config/kinto/caret_status_xkey.sh"'; break;; + # [Nn]* ) exp=" "; expsh=" " break;; + # # * ) echo "Please answer yes or no.";; + # esac + # done + # else + # echo -e "\nSupport for Firefox/Chrome Back/Forward hotkeys (Cmd+Left/Right) disabled on $branch w/ xkeysnail \n" + exp=" " + expsh=" " + # fi sudo systemctl enable xkeysnail >/dev/null 2>&1 if ! [ -x "$(command -v inotifywait)" ]; then echo "Will need to install inotify-tools to restart key remapper live for config file changes..." @@ -238,6 +238,7 @@ if [[ $1 == "1" || $1 == "2" || $1 == "3" || $1 == "winmac" || $1 == "mac" || $1 yes | cp -rf ./xkeysnail-config/xkeysnail.desktop ~/.config/autostart/xkeysnail.desktop yes | cp -rf ./xkeysnail-config/xkeystart.sh ~/.config/kinto/xkeystart.sh + yes | cp -rf ./xkeysnail-config/logoff.sh ~/.config/kinto/logoff.sh yes | cp -rf ./xkeysnail-config/kinto.py ./xkeysnail-config/kinto.py.new yes | cp -rf ./xkeysnail-config/limitedadmins ./xkeysnail-config/limitedadmins.new yes | cp -rf ./xkeysnail-config/prexk.sh ~/.config/kinto/prexk.sh @@ -260,6 +261,7 @@ if [[ $1 == "1" || $1 == "2" || $1 == "3" || $1 == "winmac" || $1 == "mac" || $1 sudo mv ./xkeysnail-config/limitedadmins.new /etc/sudoers.d/limitedadmins sed -i "s#{systemctl}#`\\which systemctl`#g" ~/.config/autostart/xkeysnail.desktop sed -i "s#{xhost}#`\\which xhost`#g" ~/.config/autostart/xkeysnail.desktop + sed -i "s#{homedir}#`echo "$HOME"`#g" ~/.config/autostart/xkeysnail.desktop sed -i "s#{homedir}#`echo "$HOME"`#g" ~/.config/kinto/prexk.sh sed -i "s/{displayid}/`echo "$DISPLAY"`/g" ./xkeysnail-config/xkeysnail.service.new sed -i "s/{displayid}/`echo "$DISPLAY"`/g" ~/.config/kinto/prexk.sh