mirror of
https://github.com/Astatin3/dotfiles.git
synced 2026-06-09 00:07:59 -06:00
56 lines
1.1 KiB
Bash
56 lines
1.1 KiB
Bash
|
|
screenshotloc=/tmp/screensaver.png
|
||
|
|
sscommand="btop"
|
||
|
|
terminal="foot"
|
||
|
|
|
||
|
|
lockscreensaverdelay=30
|
||
|
|
termopendelay=0.2
|
||
|
|
|
||
|
|
curworkspace=$(swaymsg -pt get_workspaces | grep -o -P '(?<=Workspace\s).*(?=\s\(focused\))')
|
||
|
|
brightness=$(brightnessctl g)
|
||
|
|
|
||
|
|
function start {
|
||
|
|
#Create screenshot and blur
|
||
|
|
grim $screenshotloc
|
||
|
|
convert $screenshotloc -filter Gaussian -blur 0x8 $screenshotloc
|
||
|
|
|
||
|
|
#Open screensaver program for quick-change
|
||
|
|
swaymsg workspace "screensaver"
|
||
|
|
sleep 0.1
|
||
|
|
swaymsg exec $terminal $sscommand &
|
||
|
|
sleep "$termopendelay"
|
||
|
|
swaymsg fullscreen toggle
|
||
|
|
}
|
||
|
|
|
||
|
|
function stop {
|
||
|
|
swaymsg workspace $curworkspace
|
||
|
|
pkill -fn $sscommand
|
||
|
|
rm $screenshotloc
|
||
|
|
}
|
||
|
|
|
||
|
|
function doscreensaver {
|
||
|
|
swayidle timeout 1 "" resume "pkill -n swayidle"
|
||
|
|
dolock
|
||
|
|
}
|
||
|
|
|
||
|
|
function dolock {
|
||
|
|
pkill swaylock
|
||
|
|
swaymsg exec "swaylock -i $screenshotloc && pkill -n swayidle" &
|
||
|
|
swayidle timeout "$lockscreensaverdelay" "pkill -n swayidle"
|
||
|
|
if [[ "$(pidof 'swaylock')" != "" ]]; then
|
||
|
|
pkill swaylock
|
||
|
|
doscreensaver
|
||
|
|
fi
|
||
|
|
}
|
||
|
|
|
||
|
|
if [[ $1 == "lock" ]]; then
|
||
|
|
start
|
||
|
|
dolock
|
||
|
|
stop
|
||
|
|
elif [[ $1 == "ss" ]]; then
|
||
|
|
start
|
||
|
|
doscreensaver
|
||
|
|
stop
|
||
|
|
else
|
||
|
|
echo "invalid command, try 'ss' or 'lock'"
|
||
|
|
fi
|