sourcegraph / thyme

Automatically track which applications you use and for how long.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Detect screen locker/screen saver

heeen opened this issue · comments

It would be nice to see when the workstation has locked itself instead of the last used app being active

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

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

Duplicate of #1