sway: fix screenshots on lock

This commit is contained in:
Konstantin Koslowski 2020-12-22 13:19:58 +01:00
parent 9ecb2f2a68
commit 2dc0b34814
2 changed files with 74 additions and 16 deletions

View file

@ -1,13 +1,71 @@
#!/bin/bash #!/bin/bash
IMAGE=/tmp/screen_locked.png IMAGE=$HOME/.lockscreen.jpg
APP=grim SCROT_APP=grim
SCROT_ARGS=" -t jpeg"
LOCK_APP=swaylock
LOCK_ARGS=" -f -c 000000 -i $IMAGE"
which $APP &> /dev/null
if [ $? -eq 0 ]; then function _app_exists() {
$APP $IMAGE which $1 &> /dev/null
if [ $? -ne 0 ]; then
echo "ERROR: missing app \"$1\""
exit 1
fi
}
function _clean() {
rm -vf $IMAGE
}
function _lock() {
_app_exists $LOCK_APP
$LOCK_APP $LOCK_ARGS
}
function _off() {
swaymsg "output * dpms off"
}
function _on() {
swaymsg "output * dpms on"
}
function _screenshot() {
_app_exists $SCROT_APP
$SCROT_APP $SCROT_ARGS $IMAGE
convert -blur 4x4 $IMAGE $IMAGE convert -blur 4x4 $IMAGE $IMAGE
swaylock -f -c 000000 -i $IMAGE }
rm -v $IMAGE
else mkdir -p $HOME/log
swaylock -f -c 000000 echo "lock: $(date) args: $*" >> $HOME/log/lock.log
fi
case "$1" in
lock)
_on
_screenshot
_lock
_clean
;;
lockonly)
_lock
_clean
;;
off)
_screenshot
_off
;;
on)
_on
_clean
;;
screenshot)
_on
_screenshot
;;
*)
echo "invalid argument \"$1\"."
echo "arguments: [lock|lockonly|off|on|screenshot]"
esac

12
config
View file

@ -32,12 +32,12 @@ output * bg $background fill
### Idle configuration ### Idle configuration
exec swayidle -w \ exec swayidle -w \
timeout 600 'swaymsg "output * dpms off"' \ timeout 600 '$lock_cmd off' \
resume 'swaymsg "output * dpms on"' \ resume '$lock_cmd on' \
timeout 900 '$lock_cmd' \ timeout 900 '$lock_cmd lockonly' \
timeout 1800 'systemctl suspend-then-hibernate' \ timeout 1800 '$lock_cmd suspend' \
before-sleep '$lock_cmd' before-sleep 'systemctl suspend-then-hibernat'
bindsym $mod+Ctrl+Escape exec $lock_cmd bindsym $mod+Ctrl+Escape exec '$lock_cmd lock'
### Input configuration ### Input configuration
# You can get the names of your inputs by running: swaymsg -t get_inputs # You can get the names of your inputs by running: swaymsg -t get_inputs