Hybernates your display after entering the lockscreen on KDE.
Go to file
2020-08-20 15:57:17 +02:00
afterlock Refactor main and display hibernating logic from eachother 2020-08-18 16:28:35 +02:00
atomicflag Expor AtomicFlag type 2020-08-18 12:30:39 +02:00
cmd/after-lock Ensure only a single instance of after-lock runs at a time 2020-08-20 15:57:17 +02:00
display Refactor screensaver package into display and lockscreen 2020-08-18 13:15:45 +02:00
evdev Implement a simple C module to wait for keypresses 2020-08-17 15:50:39 +02:00
lockfile Ensure only a single instance of after-lock runs at a time 2020-08-20 15:57:17 +02:00
lockscreen Refactor screensaver package into display and lockscreen 2020-08-18 13:15:45 +02:00
.gitignore Add .gitignore 2020-08-18 11:07:40 +02:00
go.mod Implement a simple C module to wait for keypresses 2020-08-17 15:50:39 +02:00
proof-of-concept.sh Initial commit. Add poc hack script 2020-08-17 12:28:52 +02:00
README.md Add README 2020-08-18 11:39:15 +02:00

What?

KDE Plasma (as of 5.19.4) lacks the funcionality of hybernating your display after locking your computer.

This hack implements Gnome-like lockscreen behaviour: it hybernates your display after a given timeout if the computer is locked. It also makes sure that the display won't turn off while you are typing your password to unlock your machine.

How?

This whole started as a simple bash script (proof-of-concept.sh) using qdbus and xset to implement this functionality. However, it had an annoying defect: the screen would hybernate after the timeout no matter what (i.e. the display could turn off while you were typing your password to unlock the machine). To remedy this defect I've decided to monitor keypresses via /dev/input and rewrite the whole thing in golang to provide proper debouncing (i.e. the timeout resets if you start typing).

Beware this is a quick&dirty hack. Instead of calling qdbus and xset from golang, the proper dbus API should be used. Instead of registering a go binary to execute once the lockscreen is active (System Settings -> Notifications -> Application Settings -> Screen Saver) the whole thing should probably be rewritten in C++ and contributed to KDE instead.