vincentbernat.i3wm-configur.../bin/xss-lock
Vincent Bernat dd042ae594 xss-lock: don't suspend compositor on lock
Let's see if the confidentiality issue is still here. The problem with
suspending the compositor is that Firefox with EGL will freeze its
rendering. See https://bugzilla.mozilla.org/show_bug.cgi?id=1712665.

OK, the problem was that when screens are added/removed, i3lock is
unable to stay on top. I'll live with that for now.
2021-06-30 20:26:30 +02:00

46 lines
1.5 KiB
Bash
Executable file

#!/bin/bash
me="$(readlink -f "$0")"
timeout=600
notify=$((timeout/30))
display=$(systemd-escape -- "$DISPLAY")
configure() {
xset s $((timeout - notify)) $notify
xset dpms $((timeout * 2)) $((timeout * 22 / 10)) $((timeout * 24 / 10))
}
unconfigure() {
xset s 0
xset dpms 0 0 0
}
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))"
systemctl --user kill -s STOP redshift@${display}.service
trap "systemctl --user kill -s CONT redshift@${display}.service" EXIT
trap 'echo notify: user activity; kill %% 2> /dev/null; exit 0' HUP # user activity
trap 'echo notify: locker started; kill %% 2> /dev/null; exit 0' TERM # locker started
outputs=($(xrandr --current | sed -n 's/\([^ ]*\) connected .*/\1/p'))
for out in ${outputs[@]}; do
xrandr --output $out --brightness 0.2
done
sleep infinity &
wait
echo "notify: end"
;;
lock)
echo "lock: lock screen (idle: $(xprintidle))"
# Something may have mendled with screensaver settings
configure
# First, pause any music player
playerctl -a pause
# Then, lock screen
i3lock -n -e -i $HOME/.cache/awesome/current-wallpaper-${display}.png -t -f
echo "lock: unlock screen"
;;
esac