#!/usr/bin/env python import os import gobject import dbus def activate_reply (res): print "session activated" def activate_error (e): print str (e) bus = dbus.SystemBus () manager_obj = bus.get_object ('org.freedesktop.ConsoleKit', '/org/freedesktop/ConsoleKit/Manager') manager = dbus.Interface (manager_obj, 'org.freedesktop.ConsoleKit.Manager') params = dbus.Array ([], signature = "sv") params.append (("user", dbus.Variant (730))) params.append (("session-type", dbus.Variant ("gnome-session"))) params.append (("x11-display", dbus.Variant (":0.0"))) params.append (("display-device", dbus.Variant ("/dev/tty8"))) cookie = manager.OpenSessionWithParameters (params) os.environ['XDG_SESSION_COOKIE'] = cookie seats = manager.GetSeats () for sid in seats: seat_obj = bus.get_object ('org.freedesktop.ConsoleKit', sid) seat = dbus.Interface (seat_obj, 'org.freedesktop.ConsoleKit.Seat') sessions = seat.GetSessions () for ssid in sessions: session_obj = bus.get_object ('org.freedesktop.ConsoleKit', ssid) session = dbus.Interface (session_obj, 'org.freedesktop.ConsoleKit.Session') uid = session.GetUser () current_session = manager.GetSession (cookie) print "Current session: %s" % current_session session_obj = bus.get_object ('org.freedesktop.ConsoleKit', ssid) session = dbus.Interface (session_obj, 'org.freedesktop.ConsoleKit.Session') session.Activate (reply_handler = activate_reply, error_handler = activate_error) mainloop = gobject.MainLoop () gobject.timeout_add (30000, mainloop.quit) mainloop.run()