Break out stages into public functions
Refactor into library
Add screenlocker
Simple image glitcher suitable for producing nice looking i3lock backgrounds
$ git clone https://github.com/r00tman/corrupter
$ cd corrupter && go build
$ ./corrupter -h
$ ./corrupter shots/example.png out.png && xdg-open out.png
Alternatively, you can use go get -u github.com/r00tman/corrupter
to install. Then, the binary will be at ~/go/bin/corrupter
($GOPATH/bin/corrupter
if $GOPATH
is set).
If you're using an Arch-based distro, you can use one of the two AUR packages!
At the moment, you can only pass and output .png
images. But that's enough to work well with scrot
and i3lock
.
As corrupter
only glitches the image for a cool background, you'd have to set up a lock script.
Example screenshot lock script:
#!/usr/bin/env bash
tmpbg="/tmp/screen.png"
scrot "$tmpbg"; corrupter "$tmpbg" "$tmpbg"
i3lock -i "$tmpbg"; rm "$tmpbg"
The script above takes a screenshot with scrot
, distorts it with corrupter
, and then locks the screen using i3lock
.
If you're using i3
, you can create the script at ~/.lock
, and then add a lock bindsym
.
bindsym $mod+Control+l exec --no-startup-id bash ./.lock
Alternatively, you can pre-corrupt an image and always use it (which is faster):
$ ./corrupter shots/example.png ~/.wallpaper.png
and then, in your ~/.config/i3/config
:
bindsym $mod+Control+l exec --no-startup-id i3lock -i ./.wallpaper.png
This method is slightly faster since the image processing has been done beforehand.
Default config is pretty heavy-handed. To get less disrupted images you may want to reduce blur and distortion:
$ ./corrupter -mag 1 -boffset 2 shots/example.png out.png && xdg-open out.png
Images using the default parameters:
With custom parameters:
Before:
After (custom parameters and ImageMagick dim):