diff options
author | Andreas | 2023-11-14 12:26:24 +0100 |
---|---|---|
committer | Andreas | 2023-11-14 12:26:24 +0100 |
commit | 98a5de707a4f3f49459211e5d903ae597ea7fbe5 (patch) | |
tree | aeec1ecf36a4a15791ddcbe1a4d9dfb3c2d5a316 /nicelock | |
download | aur-nicelock.tar.gz |
Initial commit
Diffstat (limited to 'nicelock')
-rwxr-xr-x | nicelock | 65 |
1 files changed, 65 insertions, 0 deletions
diff --git a/nicelock b/nicelock new file mode 100755 index 000000000000..a07022dbbf4d --- /dev/null +++ b/nicelock @@ -0,0 +1,65 @@ +#!/usr/bin/env sh + +set -x -e + +trap_notifications() { + pkill -u "$USER" -USR1 dunst +} + +untrap_notifications() { + pkill -u "$USER" -USR2 dunst +} + +lock() { + lock_image="$1" + trap_notifications + i3lock -n -i "$lock_image" \ + --inside-color="00000000" \ + --ring-color="00000033" \ + --separator-color="00000000" \ + --insidever-color="00000000" \ + --insidewrong-color="ff000033" \ + --keyhl-color="ffffff77" \ + --bshl-color="ffffff77" \ + --ringver-color="00000000" \ + --ringwrong-color="00000000" \ + --greeter-color="00000000" \ + --line-color="00000000" \ + --verif-text="" \ + --wrong-text="" \ + --noinput-text="" \ + --pass-media-keys \ + --pass-screen-keys \ + --pass-volume-keys \ + --pass-power-keys + untrap_notifications +} + +create_lock_image() { + image=$(mktemp --suffix=.png) + command -- import -silent -window root "$image" + + primary_monitor_info=$(xrandr | grep primary | awk '{print $4}') + if [[ $primary_monitor_info == *+* ]]; then + resolution=$(echo $primary_monitor_info | cut -d'+' -f1) + offset_x=$(echo $primary_monitor_info | cut -d'+' -f2) + offset_y=$(echo $primary_monitor_info | cut -d'+' -f3) + else + resolution=$(xrandr | grep '*' | awk '{print $1}') + offset_x=0 + offset_y=0 + fi + width=$(echo $resolution | cut -d'x' -f1) + height=$(echo $resolution | cut -d'x' -f2) + center_x=$(($offset_x + $width / 2)) + center_y=$(($offset_y + $height / 2)) + + convert "$image" -filter Gaussian -resize 20% -define "filter:sigma=4.5" -resize 500.5% \ + "$HOME/img/lib/lock.png" -gravity NorthWest -geometry +${center_x}+${center_y} -composite "$image" + echo "$image" +} + +command -v notify-send >/dev/null && notify-send "Locking..." +image=$(create_lock_image) +lock "$image" +rm "$image" |