DBUS Interface This API is currently unstable and is likely to change in the future. Introduction GNOME Screensaver exposes a DBUS API for programs to obtain information about the screensaver state and to interact with the screensaver in limited ways. The following constants are used to uniquely refer to the GnomeScreensaver object when making DBUS method calls: DBUS Service: org.gnome.ScreenSaver DBUS Object Path: /org/gnome/ScreenSaver DBUS Interface: org.gnome.ScreenSaver Methods These are the DBUS methods. <literal>Lock</literal> Request that the screen be locked. <literal>Cycle</literal> Request that the screen saver theme be restarted and, if applicable, switch to the next one in the list. <literal>SimulateUserActivity</literal> Simulate user activity. If the screensaver is activated this will attempt to deactivate and authentication will be requested if necessary. If the screensaver is not activated then the idle timers will be reset. <literal>Throttle</literal> Request that running themes while the screensaver is active be blocked until UnThrottle is called or the calling process exits. Direction Type Description in string the application name, e.g. "gnome-power-manager" in string the localized reason to inhibit, e.g. "on battery power" out unsigned integer the cookie A cookie is a random, unique, non-zero UINT32 used to identify the throttle request. <literal>UnThrottle</literal> Cancel a previous call to Throttle() identified by the cookie. Direction Type Description in unsigned integer the cookie <literal>SetActive</literal> Request a change in the state of the screensaver. Set to TRUE to request that the screensaver activate. Active means that the screensaver has blanked the screen and may run a graphical theme. This does not necessary mean that the screen is locked. Direction Type Description in boolean TRUE to request activation, FALSE to request deactivation <literal>GetActive</literal> Returns the value of the current state of activity. See SetActive(). Direction Type Description out boolean Activation state <literal>GetActiveTime</literal> Returns the number of seconds that the screensaver has been active. Returns zero if the screensaver is not active. Direction Type Description out unsigned integer Active time in seconds <literal>GetSessionIdle</literal> Returns the value of the current state of session idleness. Direction Type Description out boolean If the session is idle <literal>GetSessionIdleTime</literal> Returns the number of seconds that the session has been idle. Returns zero if the session is not idle. Direction Type Description out unsigned integer Idle time in seconds Signals These are the DBUS signals. <literal>ActiveChanged</literal> See method GetActive(). Direction Type Description out boolean Returns the value of the current state of activity. <literal>SessionIdleChanged</literal> See method GetActive(). Direction Type Description out boolean Returns the value of the current state of activity. <literal>AuthenticationRequestBegin</literal> Emitted before an authentication request <literal>AuthenticationRequestEnd</literal> Emitted after an authentication request Examples You can get the number of seconds the screensaver has been active by running the following: dbus-send --session \ --dest=org.gnome.ScreenSaver \ --type=method_call \ --print-reply \ --reply-timeout=20000 \ /org/gnome/ScreenSaver \ org.gnome.ScreenSaver.GetSessionIdleTime You can activate the screensaver like so: dbus-send --session \ --dest=org.gnome.ScreenSaver \ --type=method_call \ --print-reply \ --reply-timeout=20000 \ /org/gnome/ScreenSaver \ org.gnome.ScreenSaver.SetActive \ boolean:true You can monitor screensaver changes: dbus-monitor --session \ "type='signal',interface='org.gnome.ScreenSaver'" Or watch for a specific screensaver signal: dbus-monitor --session \ "type='signal',interface='org.gnome.ScreenSaver',member='SessionIdleChanged'"