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
|
|
|
|
|
|
|
|
|