summaryrefslogtreecommitdiffstats
path: root/src/test-session
diff options
context:
space:
mode:
Diffstat (limited to 'src/test-session')
-rwxr-xr-xsrc/test-session51
1 files changed, 51 insertions, 0 deletions
diff --git a/src/test-session b/src/test-session
new file mode 100755
index 0000000..d77c5f1
--- /dev/null
+++ b/src/test-session
@@ -0,0 +1,51 @@
+#!/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()