Idle Inhibition Service Draft
Idle Inhibition Service 0.1 DRAFT
BastienNoceraGNOME core Developerhadess@hadess.net2012The Idle Inhibition Service API AuthorsAPI DocumentationIntroductionThe Idle Inhibition Service API allows client applications to inhibit a
user's login session from becoming idle.The service is usually implemented by the session manager, or another daemon
running inside the user's session, and communicating with the platform software
to avoid becoming idle, and the consequences of becoming idle.This API was designed by GNOME and KDE developers with the goal of having
a common way to inhibit idleness.Consequences of idlenessDepending on the user session software running, idleness can have multiple
consequences, including, but not limited to:
Screen backlight dimmingScreensaver animation replacing the desktop contentInstant messenging client going to "auto-away"Computer suspending or hibernatingInhibiting idleness is supposed to stop all those actions from taking place, specifically
in response to idleness. A user action asking for any of those states would obviously
be acted upon witout delay..
API overviewIdle inhibition is achieved by the application calling an
Inhibit
method on a well-known D-Bus name.Inhibition will stop when the
UnInhibit method is called, or the application disconnects from the D-Bus
session bus (which usually happens upon exit).Implementations of this well-known bus name must have an object
/org/freedesktop/ScreenSaver which implements the
org.freedesktop.ScreenSaver interface.
Design notesThe D-Bus service name, org.freedesktop.ScreenSaver, intentionally contains
the word screensaver, as KDE implements the idle inhibition API in a screensaver
sub-module. It was necessary for the specificed Idle Inhibition Service API to be
compatible with this existing software.KDE's current (as of writing) implementation lives on the
/ScreenSaver object, not on /org/freedesktop/ScreenSaver as described in
this specification.For the same reasons, inhibition of suspend, hibernation, or user-switching (amongst
others) is not supported in the API.D-Bus API ReferenceReferenceskde-apiKDE Screenlocker D-Bus APIgnome-implGNOME org.freedesktop.ScreenSaver proxy implementation