Hybernates your display after entering the lockscreen on KDE.
Go to file
Kristóf Tóth 8222f24fa7 Expor AtomicFlag type 2020-08-18 12:30:39 +02:00
atomicflag Expor AtomicFlag type 2020-08-18 12:30:39 +02:00
evdev Implement a simple C module to wait for keypresses 2020-08-17 15:50:39 +02:00
screensaver Add package to control and monitor screensaver 2020-08-17 16:54:30 +02:00
.gitignore Add .gitignore 2020-08-18 11:07:40 +02:00
README.md Add README 2020-08-18 11:39:15 +02:00
go.mod Implement a simple C module to wait for keypresses 2020-08-17 15:50:39 +02:00
main.go Implement proof of concept core logic (requires refactor) 2020-08-18 11:06:59 +02:00
proof-of-concept.sh Initial commit. Add poc hack script 2020-08-17 12:28:52 +02:00

README.md

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.