Writing Desktop Environments

Or: how to hook up your favorite desktop environment with logind

systemd’s logind service obsoletes ConsoleKit which was previously widely used on Linux distributions. This provides a number of new features, but also requires updating of the Desktop Environment running on it, in a few ways.

This document should be read together with Writing Display Managers which focuses on the porting work necessary for display managers.

If required it is possible to implement ConsoleKit and systemd-logind support in the same desktop environment code, detecting at runtime which interface is needed. The sd_booted() call may be used to determine at runtime whether systemd is used.

To a certain level ConsoleKit and systemd-logind may be used side-by-side, but a number of features are not available if ConsoleKit is used.

Please have a look at the Bus API of logind and the C API as documented in sd-login(7). (Also see below)

Here are the suggested changes: