#!/bin/bash me="$(readlink -f "$0")" timeout=300 notify=10 configure() { xset s $((timeout - notify)) $notify xset dpms $((timeout * 3)) $((timeout * 4)) $((timeout * 5)) } unconfigure() { xset s 0 xset dpms 0 0 0 } case "$1" in start) configure exec xss-lock -s ${XDG_SESSION_ID} -n "$me notify" -l $me lock ;; dim|notify) echo "notify: start" systemctl --user kill -s STOP redshift@$(systemd-escape -- "$DISPLAY").service trap "systemctl --user kill -s CONT redshift@$(systemd-escape -- "$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) # Something may have mendled with screensaver settings configure # First, stop any music player xdotool key XF86AudioStop # Then, lock screen echo "lock: lock screen" systemctl --user stop compton@$(systemd-escape -- "$DISPLAY").service i3lock -n -e -i $HOME/.cache/awesome/current-wallpaper.png -t -f systemctl --user start compton@$(systemd-escape -- "$DISPLAY").service echo "lock: unlock screen" ;; esac