A simulacrum of a functional swayidle script.
Working: A proper countdown to idle works and is cancelled on resume. Displays are dimmed if possible at countdown start and restorted at resume. The screens properly lock. The power to the displays is turned off. The power is restore upon first resume. Layout and brightness restored on unlock. Known issue: Displays are not restored if the system idles again while on lock screen. This shouldn't really happen and is a possible indicator of tampering, which is kind of cool, but it's janky. Power needs to be restored with the toggle_displays hotkey.
This commit is contained in:
parent
7fb00b5f09
commit
bbd69f5e73
|
@ -0,0 +1,43 @@
|
||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
BLFILE="/home/jpm/.config/blc.last"
|
||||||
|
OPFILE="/home/jpm/.config/active_outputs"
|
||||||
|
|
||||||
|
if [ -z $1 ]; then
|
||||||
|
echo "Missing argument: run, warn, sleep or" \
|
||||||
|
" wake"
|
||||||
|
elif [ $1 == "start" ]; then
|
||||||
|
swayidle -w timeout 270 "/home/jpm/scripts/sway/idle.sh warn" \
|
||||||
|
resume "/home/jpm/scripts/sway/idle.sh resume" \
|
||||||
|
timeout 300 "/home/jpm/scripts/sway/idle.sh sleep" \
|
||||||
|
resume "/home/jpm/scripts/sway/idle.sh wake" \
|
||||||
|
before-sleep "/usr/bin/swaylock -c 323232"
|
||||||
|
elif [ $1 == "warn" ]; then
|
||||||
|
# Store current brightness
|
||||||
|
echo $(/home/jpm/scripts/thinkpad/blc.pl %) > $BLFILE
|
||||||
|
# Dim display
|
||||||
|
/home/jpm/scripts/thinkpad/blc.pl = 1
|
||||||
|
# Warning notifications
|
||||||
|
/home/jpm/scripts/sway/idlecountdown.sh
|
||||||
|
elif [ $1 == "sleep" ]; then
|
||||||
|
# Change nick to AFK
|
||||||
|
ssh jpm@john.me.tz -i /home/jpm/.ssh/no_pass -t \
|
||||||
|
'screen -S irssi -X stuff "/nick jpmAFK^M"'
|
||||||
|
# Turn off monitor
|
||||||
|
for i in `cat $OPFILE`; do swaymsg "output $i dpms off"; done
|
||||||
|
elif [ $1 == "wake" ]; then
|
||||||
|
# Kill additional counters that might have been started
|
||||||
|
/home/jpm/scripts/sway/idle.sh resume
|
||||||
|
# Restore output(s)
|
||||||
|
/home/jpm/scripts/sway/displays.pl
|
||||||
|
#for i in `cat $OPFILE`; do swaymsg "output $i dpms on"; done
|
||||||
|
# Lock screen
|
||||||
|
swaylock -c 323232
|
||||||
|
# Restore brightness level
|
||||||
|
/home/jpm/scripts/thinkpad/blc.pl = $(cat $BLFILE)
|
||||||
|
elif [ $1 == "resume" ]; then
|
||||||
|
# Kill warning
|
||||||
|
for i in `pgrep idlecountdown`; do kill $i; done
|
||||||
|
else
|
||||||
|
echo "Invalid argument: run, sleep or wake"
|
||||||
|
fi
|
|
@ -0,0 +1,5 @@
|
||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
for i in `seq 0 30`; do
|
||||||
|
notify-send -t 999 "Sleeping" $(expr 30 - $i); sleep 1
|
||||||
|
done
|
Loading…
Reference in New Issue