This script takes a screenshot of your desktop and applies various image proceesing to "blur" out the background and sets it as the i3lock background.
Works with multiple monitors.
Video: coming soon
The main dependancies for this script are scrot imagemagick i3lock
And if you want notifications to work some form of these should be installed notify-send libnotify notification-daemon
since the script uses notify-send to display which image manipulation will be used.
By default I use dash for the shell but you can change it to bash by changing the first line to
#!/usr/bin/env bash
When you execute the script currently one out of the 14 different presets are selected at random, you can easily add your own by extending the case statement like so
number=$(shuf -i1-15 -n1)
....
13)
convert /tmp/screen.png -spread 20 -paint 4 -modulate 190,80,260 /tmp/screen.png
;;
14)
# your custom manipulation
;;
*)
convert /tmp/screen.png -spread 30 -paint 5 -modulate 200,200,350 /tmp/screen.png
;;
esac
clone repo and make sure the script is executable chmod +x lockscreen.sh
and move it into an appropriate location mine is in ~/scrips/
Then use your display manager to set up a keybinding I use i3-gaps and have this in my config
bindsym $mod+Mod1+Shift+Ctrl+l exec ~/scrips/lockscreen.sh &
bindsym $mod+Mod1+Shift+Ctrl+equal exec ~/scrips/lockscreen.sh && systemctl suspend
The second binding is if you want to unlock your screen after suspend since by default systemctl suspend just leaves everything open after resuming.