Pārlūkot izejas kodu

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 pirms 5 mēnešiem
vecāks
revīzija
978a6aef4b
2 mainītis faili ar 48 papildinājumiem un 0 dzēšanām
  1. +43
    -0
      sway/idle.sh
  2. +5
    -0
      sway/idlecountdown.sh

+ 43
- 0
sway/idle.sh Parādīt failu

@@ -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 Parādīt failu

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

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

Notiek ielāde…
Atcelt
Saglabāt