2017-08-10 14:49:50 +03:00
|
|
|
#!/usr/bin/env zsh
|
|
|
|
|
2019-10-21 17:28:37 +03:00
|
|
|
pidfile=${XDG_RUNTIME_DIR-/run/user/$UID}/xscreensaver-companion.pid
|
|
|
|
trap "rm -f $pidfile" INT KILL
|
|
|
|
|
2020-02-11 14:10:03 +02:00
|
|
|
function check_start
|
|
|
|
{
|
|
|
|
# check if the service is running and, if not, start it in the background
|
|
|
|
# and detach
|
|
|
|
if pgrep -u $USER $1 >/dev/null; then
|
|
|
|
return 0
|
|
|
|
else
|
|
|
|
$* &>/dev/null </dev/null & disown
|
|
|
|
fi
|
|
|
|
}
|
|
|
|
|
2019-10-21 17:28:37 +03:00
|
|
|
function init_pidfile
|
|
|
|
{
|
|
|
|
local pid
|
|
|
|
if read pid < $pidfile; then
|
|
|
|
if kill -0 $pid; then
|
|
|
|
echo 'I am already running!' >&2
|
|
|
|
exit 1
|
|
|
|
else
|
|
|
|
echo 'Remove stale lock file.' >&2
|
|
|
|
rm $pidfile
|
|
|
|
fi
|
|
|
|
fi
|
|
|
|
echo $$ > $pidfile
|
|
|
|
}
|
|
|
|
|
2017-08-10 14:49:50 +03:00
|
|
|
function parse_actions
|
|
|
|
{
|
|
|
|
while read action _; do
|
|
|
|
case $action in
|
|
|
|
(LOCK|BLANK)
|
2020-02-11 14:10:03 +02:00
|
|
|
setxkbmap us -option
|
2021-06-08 20:27:36 +03:00
|
|
|
dunstctl set-paused true
|
2017-08-10 14:49:50 +03:00
|
|
|
;;
|
|
|
|
(UNBLANK)
|
2020-02-11 14:10:03 +02:00
|
|
|
check_start gxkb
|
2019-10-21 16:45:58 +03:00
|
|
|
$HOME/git/mine/vscripts/mykblayouts
|
2020-02-11 14:10:03 +02:00
|
|
|
$HOME/.local/bin/touchpad-config
|
2021-06-08 20:27:36 +03:00
|
|
|
dunstctl set-paused false
|
2017-08-10 14:49:50 +03:00
|
|
|
;;
|
|
|
|
esac
|
|
|
|
done
|
|
|
|
}
|
|
|
|
|
2019-10-21 17:28:37 +03:00
|
|
|
init_pidfile
|
2020-02-11 14:10:03 +02:00
|
|
|
xscreensaver-command -watch | parse_actions
|