config_sway/bin/lock

108 lines
1.5 KiB
Text
Raw Normal View History

2020-12-18 15:33:47 +01:00
#!/bin/bash
2020-12-22 13:19:58 +01:00
IMAGE=$HOME/.lockscreen.jpg
SCROT_APP=grim
SCROT_ARGS=" -t jpeg"
LOCK_APP=swaylock
LOCK_ARGS=" -f -c 000000 -i $IMAGE"
2021-01-03 12:17:33 +01:00
INHIBIT_FILE=$HOME/.inhibit
2020-12-18 15:33:47 +01:00
2020-12-22 13:19:58 +01:00
2021-01-03 12:17:33 +01:00
function _check_app() {
2020-12-22 13:19:58 +01:00
which $1 &> /dev/null
if [ $? -ne 0 ]; then
echo "ERROR: missing app \"$1\""
exit 1
fi
}
2021-01-03 12:17:33 +01:00
function _check_inhibit() {
if [ -e $INHIBIT_FILE ]; then
echo "ERROR: found inhibit file $INHIBIT_FILE"
exit 1
fi
}
function _inhibit() {
case "$1" in
0|off)
rm -f $INHIBIT_FILE
echo "inhibit disabled"
;;
1|on)
touch $INHIBIT_FILE
echo "inhibit enabled"
;;
*)
echo "ERROR: unknown argument: $1"
;;
esac
}
2020-12-22 13:19:58 +01:00
function _clean() {
rm -vf $IMAGE
}
function _lock() {
2021-01-03 12:17:33 +01:00
_check_inhibit
_check_app $LOCK_APP
2020-12-22 13:19:58 +01:00
$LOCK_APP $LOCK_ARGS
}
function _off() {
swaymsg "output * dpms off"
}
function _on() {
swaymsg "output * dpms on"
}
function _screenshot() {
2021-01-03 12:17:33 +01:00
_check_app $SCROT_APP
2020-12-22 13:19:58 +01:00
$SCROT_APP $SCROT_ARGS $IMAGE
2020-12-18 15:33:47 +01:00
convert -blur 4x4 $IMAGE $IMAGE
2020-12-22 13:19:58 +01:00
}
2021-01-03 12:17:33 +01:00
function _suspend() {
_check_inhibit
systemctl suspend-then-hibernate
}
2020-12-22 13:19:58 +01:00
mkdir -p $HOME/log
2021-01-03 22:34:08 +01:00
echo "lock: $(date) args: $*" >> $HOME/log/sway.log
2020-12-22 13:19:58 +01:00
case "$1" in
2021-01-03 12:17:33 +01:00
inhibit)
_inhibit $2
;;
2020-12-22 13:19:58 +01:00
lock)
_on
_screenshot
_lock
2021-01-03 12:17:33 +01:00
# _clean
2020-12-22 13:19:58 +01:00
;;
lockonly)
_lock
2021-01-03 12:17:33 +01:00
# _clean
2020-12-22 13:19:58 +01:00
;;
off)
_screenshot
_off
;;
on)
_on
2021-01-03 12:17:33 +01:00
# _clean
2020-12-22 13:19:58 +01:00
;;
screenshot)
_on
_screenshot
;;
2021-01-03 12:17:33 +01:00
suspend)
_suspend
;;
2020-12-22 13:19:58 +01:00
*)
echo "invalid argument \"$1\"."
echo "arguments: [lock|lockonly|off|on|screenshot]"
esac