Bug 271731 - kscreensaver doesn't set session idle
Summary: kscreensaver doesn't set session idle
Status: RESOLVED INTENTIONAL
Alias: None
Product: kscreenlocker
Classification: Plasma
Component: general (show other bugs)
Version: unspecified
Platform: Ubuntu Linux
: NOR wishlist
Target Milestone: ---
Assignee: David Edmundson
URL:
Keywords:
Depends on: 318461
Blocks:
  Show dependency treegraph
 
Reported: 2011-04-26 00:24 UTC by shining
Modified: 2015-12-15 16:41 UTC (History)
2 users (show)

See Also:
Latest Commit:
Version Fixed In:
Sentry Crash Report:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description shining 2011-04-26 00:24:55 UTC
Version:           unspecified (using KDE 4.5.1) 
OS:                Linux

Unlike its gnome counterpart, kde screensaver doesn't mark the session as idle on dbus system bus. Some applications may rely on this mechanism, eg. to start a backup procedure.

Reproducible: Always

Steps to Reproduce:
Open a terminal and verify this is the only session (on org.freedesktop.ConsoleKit terms). Type as current user:
dbus-monitor --system \
"type='signal',interface='org.freedesktop.ConsoleKit.Manager',member='SystemIdleHintChanged'"

Then wait for the screensaver to start or lock the screen. Take some time and exit from screensaver.

Actual Results:  
You won't intercept the expected signal because not raised. You'll never read a line like this:
signal sender=:1.11 -> dest=(null destination) serial=3057 path=/org/freedesktop/ConsoleKit/Manager; interface=org.freedesktop.ConsoleKit.Manager; member=SystemIdleHintChanged
   boolean true

Expected Results:  
Delivery of the signal org.freedesktop.ConsoleKit.Manager.SystemIdleHintChanged(bool) when both starting (true) and stopping (false) the screensaver. You should read a line like this:
signal sender=:1.11 -> dest=(null destination) serial=3062 path=/org/freedesktop/ConsoleKit/Manager; interface=org.freedesktop.ConsoleKit.Manager; member=SystemIdleHintChanged
   boolean false

Unlike its gnome counterpart, kde screensaver doesn't mark the session as idle on dbus system bus. Let's state kde session is Session6 on ConsoleKit point of view, then the method org.freedesktop.ConsoleKit.Session.GetIdleHint at dbus system bus org.freedesktop.ConsoleKit /org/freedesktop/ConsoleKit/Session6 should return "true" when kscreensaver is running. Instead we get "false" in every occasion. The effect is that signal dbus system bus org.freedesktop.ConsoleKit /org/freedesktop/ConsoleKit/Manager org.freedesktop.ConsoleKit.Manager.SystemIdleHintChanged(bool) is never raised and method org.freedesktop.ConsoleKit.Manager.GetSystemIdleHint at the same path always return "false". For what I can understand, in the same time ActiveChanged(bool) is emitted on dbus session bus org.freedesktop.ScreenSaver /ScreenSaver, kscreesaver should set org.freedesktop.ConsoleKit.Session.SetIdleHint(bool) at dbus system bus org.freedesktop.ConsoleKit /org/freedesktop/ConsoleKit/Session6. I inspected the sources on kubuntu maverick and I found no invoking of such a method.
Comment 1 Martin Flöser 2015-12-15 16:41:13 UTC
ConsoleKit is nowadays unmaintained, thus I'm setting to WONTFIX. Sorry that we never came around to implement this.