#!/usr/bin/python import threading import dbus, gobject import gtk from dbus.mainloop.glib import DBusGMainLoop import telepathy.constants awaydelay=5 xmppaccount="/org/freedesktop/Telepathy/Account/gabble/jabber/****_40gmail_2ecom0" def timer_callback(): print "screen has been off for defined number of seconds" sessionbus = dbus.SessionBus() gmailobj = sessionbus.get_object('org.freedesktop.Telepathy.AccountManager', xmppaccount) gmailinterface=dbus.Interface(gmailobj, 'org.freedesktop.DBus.Properties') gmailstruct=dbus.Struct((dbus.UInt32(telepathy.constants.CONNECTION_PRESENCE_TYPE_AWAY), '', 'autoaway')) gmailinterface.Set('org.freedesktop.Telepathy.Account', 'RequestedPresence', gmailstruct) screentimer = threading.Timer(awaydelay, timer_callback) def screen_callback(value): print "screen is:", value if value == "off": screentimer.__init__(awaydelay, timer_callback) screentimer.start() if value == "on": screentimer.cancel() #Main loop dbus.mainloop.glib.DBusGMainLoop(set_as_default=True) bus = dbus.SystemBus() bus.add_signal_receiver(screen_callback, dbus_interface="com.nokia.mce.signal", signal_name="display_status_ind") gtk.gdk.threads_init() loop = gobject.MainLoop() loop.run()
/usr/bin/dbus-send --type=method_call --print-reply --dest=org.freedesktop.Telepathy.AccountManager /org/freedesktop/Telepathy/AccountManager org.freedesktop.DBus.Properties.Get string:org.freedesktop.Telepathy.AccountManager string:ValidAccounts