ConsoleKit is a framework for managing user sessions and permissions. Some of the most common usages of ConsoleKit are allowing non-root users to mount removable media and suspending/shutting down the computer through common desktop applications (e.g. Thunar, Nautilus, the GNOME shutdown menu, etc.).
Display manager usage
exec ck-launch-session startxfce4
Running several applications from ~/.xinitrc
If several applications are to be executed from
~/.xinitrc, not all of these will have ConsoleKit environment variables set. In the following example, only children of Compiz will be able to properly use ConsoleKit, but children of xterm will not.
xterm & exec ck-launch-session compiz ccp
Typically, this can be an issue when for example using Compiz standalone and some other application launchers, (gnome-do, kupfer, gmrun, xbindkeys, etc.) since children of the application launcher will not be able to use ConsoleKit. A dirty workaround is to have the entire session started by a second script, e.g.
~/.xstart. Do not forget dbus-launch, it is likely that you will need it too:
#!/bin/sh exec ck-launch-session dbus-launch $HOME/.xstart
#!/bin/sh compiz ccp & Thunar & Terminal
Do not forget to make
chmod +x ~/.xstart
To see whether everything is started correctly:
It should show at least one session like this one
Session18: unix-user = '1000' realname = 'Your Name' seat = 'Seat1' session-type = active = TRUE x11-display = ':0' x11-display-device = '/dev/tty2' display-device = '/dev/tty1' remote-host-name = is-local = TRUE on-since = '2011-11-16T12:01:50.104764Z' login-session-id = '7'
Use dbus for power operations
- shut down:
dbus-send --system --print-reply --dest="org.freedesktop.ConsoleKit" /org/freedesktop/ConsoleKit/Manager org.freedesktop.ConsoleKit.Manager.Stop
dbus-send --system --print-reply --dest="org.freedesktop.ConsoleKit" /org/freedesktop/ConsoleKit/Manager org.freedesktop.ConsoleKit.Manager.Restart
dbus-send --system --print-reply --dest="org.freedesktop.UPower" /org/freedesktop/UPower org.freedesktop.UPower.Suspend
- hibernate (suspend to disk):
dbus-send --system --print-reply --dest="org.freedesktop.UPower" /org/freedesktop/UPower org.freedesktop.UPower.Hibernate
This method assumes that you are given permission to shutdown by policy kit. The default group for this is "wheel". To change this, edit