Detect screen locker/screen saver
heeen opened this issue · 3 comments
heeen commented
It would be nice to see when the workstation has locked itself instead of the last used app being active
heeen commented
I found out that on a locked screen xdotool getactivewindow
will fail, maybe we can use this to detect a locked session as otherwise we will have to query dbus or desktop environment specific things
heeen commented
qdbus org.freedesktop.ScreenSaver /ScreenSaver org.freedesktop.ScreenSaver.GetActive
will print "true" or "false" when the screensaver or lockscreen is active (tested on kde neon). DBus can also be used to monitor the change precisely:
$ dbus-monitor --session "type='signal',interface='org.freedesktop.ScreenSaver',path='/ScreenSaver'"
signal time=1534260659.549884 sender=org.freedesktop.DBus -> destination=:1.422 serial=2 path=/org/freedesktop/DBus; interface=org.freedesktop.DBus; member=NameAcquired
string ":1.422"
signal time=1534260659.549914 sender=org.freedesktop.DBus -> destination=:1.422 serial=4 path=/org/freedesktop/DBus; interface=org.freedesktop.DBus; member=NameLost
string ":1.422"
signal time=1534260664.904563 sender=:1.12 -> destination=(null destination) serial=1124 path=/ScreenSaver; interface=org.freedesktop.ScreenSaver; member=ActiveChanged
boolean true
signal time=1534260670.096975 sender=:1.12 -> destination=(null destination) serial=1137 path=/ScreenSaver; interface=org.freedesktop.ScreenSaver; member=ActiveChanged
boolean false