afterlock | ||
atomicflag | ||
cmd/after-lock | ||
display | ||
evdev | ||
lockfile | ||
lockscreen | ||
.gitignore | ||
go.mod | ||
proof-of-concept.sh | ||
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.