Opened 14 years ago

Last modified 12 years ago

#33 accepted enhancement

use dbus to get notifications of screensaver state changes

Reported by: Antoine Martin Owned by: Antoine Martin
Priority: minor Milestone: 0.12
Component: Client Keywords:
Cc:

Description (last modified by Antoine Martin)

On linux we use xlib to know the "idle time" of the X session and compare that against the timeout value.

We could just do something more similar to what we do on win32 and get notifications when the screensaver is (de)activated:

dbus-monitor --session "type='signal',interface='org.gnome.ScreenSaver',member='SessionIdleChanged'"

More information about the dbus interface, and in particular the ActiveChanged signal in the gnome-screensaver doc

The FAQ contains an example of actions using dbus-monitor: perform_actions_when_the_screensaver...

For reference, the win32 code is track-session-events (from the great win32_how_do_i)

Synergy+ has a bug entry with useful links in it: Support for gnome-screensaver as well as xscreensaver

Some other useful pointers:

Change History (7)

comment:1 Changed 14 years ago by Antoine Martin

Summary: use dbus to learn about screensaver state changesuse dbus get notifications of screensaver state changes

comment:2 Changed 14 years ago by Antoine Martin

Owner: changed from Antoine Martin to Antoine Martin
Status: newaccepted

Seeing the painful bugs we had with avahi/dbus python integrating with twisted (removed them in r1626), it might be difficult to integrate this asynchronous dbus stuff with twisted... not sure. If it is, maybe we could just launch a separate process to shield us from this (and monitor/parse its output): very ugly solution but also much safer!

Last edited 13 years ago by Antoine Martin (previous) (diff)

comment:3 Changed 14 years ago by Antoine Martin

Found code that does exactly that (both as a process and with direct dbus calls): http://nxsy.org/getting-amarok-to-pause-when-the-screen-locks-using-python-of-course

comment:4 Changed 13 years ago by Antoine Martin

Description: modified (diff)

comment:5 Changed 13 years ago by Antoine Martin

Milestone: 1.10.12

The dbus-monitor approach should work now that we have a convenience wrapper for line processes via twisted.

comment:6 Changed 13 years ago by Antoine Martin

Summary: use dbus get notifications of screensaver state changesuse to dbus get notifications of screensaver state changes

comment:7 Changed 12 years ago by Antoine Martin

Summary: use to dbus get notifications of screensaver state changesuse dbus to get notifications of screensaver state changes
Note: See TracTickets for help on using tickets.