This repository has been archived by the owner on Apr 2, 2023. It is now read-only.
-
-
Notifications
You must be signed in to change notification settings - Fork 0
/
screensaver
executable file
·59 lines (50 loc) · 1.77 KB
/
screensaver
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
#!/usr/bin/env bash
# screensaver utility
# written by Reese Sapphire (github.com/katacarbix)
# Dependencies:
# - kitty-popup (https://github.com/katacarbix/shell-scripts/blob/main/kitty-popup)
# - kitty
# - i3
# - lock (https://github.com/katacarbix/shell-scripts/blob/main/lock)
# - i3lock-color
# - xidlehook (X11 only) (https://gitlab.com/jD91mZM2/xidlehook)
# - some terminal art programs (see my examples below)
# Usage:
# screensaver start - Opens a fullscreen terminal window with a randomly selected term art program.
# screensaver stop - Closes the aforementioned terminal window.
# screensaver watch - Start screensaver, lock, and go to sleep after the computer has been idle for increasing lengths of time.
# Must be idle for this long before starting
screensaver_delay=1800
sleep_delay=3600
lock_script="/home/reese/scripts/lock"
term_art=(
"pipes-rs"
"cbonsai -li -L36 -M6 --seed=\$(date +'%N')"
"cmatrix -as"
"asciiquarium"
)
case "$1" in
start )
$(readlink -f $0) stop # just in case it was already running
KITTY_ID=$RANDOM
echo $KITTY_ID > $HOME/.cache/screensaver-kitty-id
KITTY_ID=$KITTY_ID kitty-popup fullscreen -c "${term_art[RANDOM%${#term_art[@]}]}; exit"
;;
stop )
read -r KITTY_ID <<< `cat $HOME/.cache/screensaver-kitty-id`
kitty @ --to unix:/tmp/kitty-popup_$KITTY_ID close-window
;;
watch )
# The screensaver timer
xidlehook --not-when-fullscreen \
--socket /tmp/xidlehook_screensaver.socket \
--timer $screensaver_delay \
"$(readlink -f $0) start" \
"$(readlink -f $0) stop && $lock_script" &
# Sleep timer
xidlehook --not-when-fullscreen \
--socket /tmp/xidlehook_sleep.socket \
--timer $sleep_delay \
"$lock_script && $(readlink -f $0) stop && sudo systemctl suspend" "" &
;;
esac