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.
这个提交包含在:
父节点
41ebb871d6
当前提交
978a6aef4b
|
@ -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
|
正在加载...
在新工单中引用