config_sway/bin/lock

107 lines
1.5 KiB
Bash
Executable file

#!/bin/bash
IMAGE=$HOME/.lockscreen.jpg
SCROT_APP=grim
SCROT_ARGS=" -t jpeg"
LOCK_APP=swaylock
LOCK_ARGS=" -f -c 000000 -i $IMAGE"
INHIBIT_FILE=$HOME/.inhibit
function _check_app() {
which $1 &> /dev/null
if [ $? -ne 0 ]; then
echo "ERROR: missing app \"$1\""
exit 1
fi
}
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
}
function _clean() {
rm -vf $IMAGE
}
function _lock() {
_check_inhibit
_check_app $LOCK_APP
$LOCK_APP $LOCK_ARGS
}
function _off() {
swaymsg "output * dpms off"
}
function _on() {
swaymsg "output * dpms on"
}
function _screenshot() {
_check_app $SCROT_APP
$SCROT_APP $SCROT_ARGS $IMAGE
convert -blur 4x4 $IMAGE $IMAGE
}
function _suspend() {
_check_inhibit
systemctl suspend-then-hibernate
}
mkdir -p $HOME/log
echo "lock: $(date) args: $*" >> $HOME/log/sway.log
case "$1" in
inhibit)
_inhibit $2
;;
lock)
_on
_screenshot
_lock
# _clean
;;
lockonly)
_lock
# _clean
;;
off)
_screenshot
_off
;;
on)
_on
# _clean
;;
screenshot)
_on
_screenshot
;;
suspend)
_suspend
;;
*)
echo "invalid argument \"$1\"."
echo "arguments: [lock|lockonly|off|on|screenshot]"
esac