Hund

Using i3lock with systemd-suspend

Published: Tuesday, January 8, 2019

This is a remake of a few days old post [Commit: 83ac8455]. I shouldn't make posts when I'm that tired. :)

It took me a few tries before figuring this one out. But I eventually found the [the easy] solution in an old thread on the Arch Linux forums [Link].

I started out by creating the file /etc/systemd/system/i3lock.service with the following content:

[Unit]
Description=Lock screen before suspend
Before=sleep.target

[Service]
User=johan
Type=forking
Environment=DISPLAY=:0
ExecStart=/home/johan/Scripts/i3lock.sh

[Install]
WantedBy=sleep.target

I then enabled the service with the command:

# systemctl enable i3lock.service

That’s it! And for those curious, this is what my i3lock.sh looks like:

#!/bin/bash

icon="$HOME/.config/i3/lock.png"
img="$HOME/.cache/i3lock.png"

# Take a screenshot for our background
scrot $img
# Pixelate the background
convert $img -scale 10% -scale 1000% $img
# Add the lock-icon
convert $img $icon -gravity center -composite $img
# Finally run i3lock itself
i3lock -u -i $img

It will now lock my screen before it goes to sleep, so it’s locked when it wakes up again.


Meta

Comments

If you want to leave feedback you can do so by sending me a message via e-mail.