2014-09-12 14:52:36 +02:00
|
|
|
#!/bin/bash
|
|
|
|
|
|
|
|
me="$(readlink -f "$0")"
|
2015-06-17 08:46:28 +02:00
|
|
|
timeout=300
|
2014-09-12 21:23:15 +02:00
|
|
|
notify=10
|
2014-09-12 14:52:36 +02:00
|
|
|
|
|
|
|
case "$1" in
|
|
|
|
start)
|
2014-09-12 21:24:10 +02:00
|
|
|
xset s $(($timeout - $notify)) $notify
|
2015-06-20 13:58:42 +02:00
|
|
|
xset dpms $(($timeout * 3)) $(($timeout * 4)) $(($timeout * 5))
|
2014-09-14 18:55:57 +02:00
|
|
|
exec xss-lock -n "$me notify" -l $me lock
|
2014-09-12 14:52:36 +02:00
|
|
|
;;
|
2014-09-14 18:55:57 +02:00
|
|
|
dim|notify)
|
|
|
|
echo "$(date --rfc-3339=seconds) $me: notify: start"
|
2014-09-12 14:52:36 +02:00
|
|
|
trap 'exit 0' TERM INT
|
2014-09-14 18:55:57 +02:00
|
|
|
trap "kill %% ; wait" EXIT
|
|
|
|
notify-send "Lock screen" -t $(($notify * 1000)) \
|
|
|
|
"Screen will be locked in 10 seconds..."
|
|
|
|
echo "$(date --rfc-3339=seconds) $me: notify: end"
|
2014-09-12 14:52:36 +02:00
|
|
|
sleep 2147483647 &
|
|
|
|
wait
|
|
|
|
;;
|
|
|
|
lock)
|
2015-07-12 21:54:03 +02:00
|
|
|
# First, stop any music player
|
|
|
|
xdotool key XF86AudioStop
|
2014-12-11 08:32:21 +01:00
|
|
|
# Then, lock screen
|
2015-02-06 13:44:42 +01:00
|
|
|
i3lock_options="-e -i $HOME/.cache/awesome/current-wallpaper.png -t"
|
2014-09-14 11:03:45 +02:00
|
|
|
echo "$(date --rfc-3339=seconds) $me: lock: lock screen"
|
2014-09-12 14:52:36 +02:00
|
|
|
if [ -e /proc/self/fd/${XSS_SLEEP_LOCK_FD:--1} ]; then
|
|
|
|
trap 'kill %%' TERM INT
|
|
|
|
i3lock -n $i3lock_options {XSS_SLEEP_LOCK_FD}<&- &
|
2014-09-12 14:53:59 +02:00
|
|
|
sleep 0.3 # Slight race condition, better than an active loop
|
2014-09-12 14:52:36 +02:00
|
|
|
exec {XSS_SLEEP_LOCK_FD}<&-
|
|
|
|
wait
|
|
|
|
else
|
|
|
|
trap 'kill %%' TERM INT
|
|
|
|
i3lock -n $i3lock_options &
|
|
|
|
wait
|
|
|
|
fi
|
2014-09-14 11:03:45 +02:00
|
|
|
echo "$(date --rfc-3339=seconds) $me: lock: unlock screen"
|
2014-09-12 14:52:36 +02:00
|
|
|
;;
|
|
|
|
esac
|