vincentbernat.i3wm-configur.../bin/xss-lock
2021-09-24 09:46:31 +02:00

47 lines
1.5 KiB
Bash
Executable file

#!/bin/bash
me="$(readlink -f "$0")"
timeout=300
notify=$((timeout/10))
configure() {
xset s $((timeout - notify)) $notify
xset dpms $((timeout * 2)) $((timeout * 22 / 10)) $((timeout * 24 / 10))
}
dimmer() {
systemctl --user $1 xss-dimmer@$notify.service
}
case "$1" in
start)
configure
exec xss-lock --session=${XDG_SESSION_ID} --notifier="$me notify" --transfer-sleep-lock "$me" lock
;;
dim|notify)
echo "notify: start (idle: $(xprintidle))"
trap 'echo notify: user activity; dimmer stop; kill %% 2> /dev/null; exit 0' HUP # user activity
trap 'echo notify: locker started; kill %% 2> /dev/null; exit 0' TERM # locker started
dimmer start
sleep infinity &
wait
echo "notify: end"
;;
lock)
echo "lock: lock screen (idle: $(xprintidle))"
# Something may have meddled with screensaver settings
configure
# Pause music player and notifications
playerctl -a pause
dunstctl set-paused true
# Then, lock screen
i3lock -n -e -i $HOME/.cache/i3/current-wallpaper.png -t -f
# Alternative if we prefer videos:
# XSECURELOCK_SAVER=saver_mpv
# XSECURELOCK_LIST_VIDEOS_COMMAND="ls -1 ~/.config/i3/wallpapers/*.mp4"
# xsecurelock
echo "lock: unlock screen"
# After unlocking screen, stop dimmer, restore notifications
dimmer stop
dunstctl set-paused false
;;
esac