summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMarco Carvalho <marcoacarvalho@gmail.com>2018-06-19 16:20:38 -0300
committerGitHub <noreply@github.com>2018-06-19 16:20:38 -0300
commitcfc84cac169d52b5a846ba6d77b58f45249ec63b (patch)
tree50bc78e108dc7956b55d861bf6961e11dcb75160
parent2c900118f836544cb458c8a582a986c2e9c1c285 (diff)
downloadeibhear-cfc84cac169d52b5a846ba6d77b58f45249ec63b.tar.gz
eibhear-cfc84cac169d52b5a846ba6d77b58f45249ec63b.tar.zst
eibhear-cfc84cac169d52b5a846ba6d77b58f45249ec63b.zip
Updated for multihead systems
This update takes one separate screenshot per display connected, apply all the effects, merge the padlock image and stich them in order to have one padlock image per screen
-rwxr-xr-x.config/i3/lock.sh25
1 files changed, 19 insertions, 6 deletions
diff --git a/.config/i3/lock.sh b/.config/i3/lock.sh
index c50e0c2..20beaf4 100755
--- a/.config/i3/lock.sh
+++ b/.config/i3/lock.sh
@@ -1,13 +1,26 @@
#!/bin/bash
+#!/bin/bash
# Approximate timeout rate in milliseconds (checked every 5 seconds).
timeout="10000"
-# Take a screenshot:
-scrot /tmp/screen.png
+# Take a screenshot of every screen available:
+xdpyinfo -ext XINERAMA | sed '/^ head #/!d;s///' |
+{
+ while IFS=' :x@,' read i w h x y; do
+ INDEX=$i
+ import -window root -crop ${w}x$h+$x+$y /tmp/head_$i.png
+ done
+
+# Add the lock to the swirled and blurred images:
+ for i in `seq 0 ${INDEX}`;
+ do
+ convert /tmp/head_${i}.png -paint 1 -swirl 360 ~/.config/i3/lock.png -gravity center -composite -matte /tmp/head_${i}.png;
+ done
+}
-# Add the lock to the swirled and blurred image:
-[[ -f ~/.config/i3/lock.png ]] && convert /tmp/screen.png -paint 1 -swirl 360 ~/.config/i3/lock.png -gravity center -composite -matte /tmp/screen.png
+#Combine all screen images into one big image
+convert +append /tmp/head_*.png /tmp/screen.png
# Pause music (mocp and mpd):
mocp -P
@@ -18,6 +31,6 @@ i3lock -e -f -c 000000 -i /tmp/screen.png
# If still locked after $timeout milliseconds, turn off screen.
while [[ $(pgrep -x i3lock) ]]; do
- [[ $timeout -lt $(xssstate -i) ]] && xset dpms force off
- sleep 5
+ [[ $timeout -lt $(xssstate -i) ]] && xset dpms force off
+ sleep 5
done