#!/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