aboutsummarylogtreecommitdiffstats
path: root/nicelock
diff options
context:
space:
mode:
authorAndreas2023-11-14 12:26:24 +0100
committerAndreas2023-11-14 12:26:24 +0100
commit98a5de707a4f3f49459211e5d903ae597ea7fbe5 (patch)
treeaeec1ecf36a4a15791ddcbe1a4d9dfb3c2d5a316 /nicelock
downloadaur-nicelock.tar.gz
Initial commit
Diffstat (limited to 'nicelock')
-rwxr-xr-xnicelock65
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"