Procházet zdrojové kódy

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.
master
John Mertz před 5 měsíci
rodič
revize
978a6aef4b
2 změnil soubory, kde provedl 48 přidání a 0 odebrání
  1. +43
    -0
      sway/idle.sh
  2. +5
    -0
      sway/idlecountdown.sh

+ 43
- 0
sway/idle.sh Zobrazit soubor

@@ -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

+ 5
- 0
sway/idlecountdown.sh Zobrazit soubor

@@ -0,0 +1,5 @@
#!/bin/bash

for i in `seq 0 30`; do
notify-send -t 999 "Sleeping" $(expr 30 - $i); sleep 1
done

Načítá se…
Zrušit
Uložit