--- /dev/null
+#!/usr/bin/env python
+"""XSetBg DBus client
+
+"""
+
+__version__ = "$Revision: 48 $"[11:-2]
+__revision__ = "$Id: xsetbg-wsgi.py 48 2011-02-18 13:35:39Z phd $"[5:-2]
+__date__ = "$Date: 2011-02-18 16:35:39 +0300 (Fri, 18 Feb 2011) $"[7:-2]
+
+__author__ = "Oleg Broytman <phd@phdru.name>"
+__copyright__ = "Copyright (C) 2000-2010 PhiloSoft Design"
+__license__ = "GNU GPL"
+
+
+import sys
+import dbus
+
+def main():
+ try:
+ command = sys.argv[1]
+ except IndexError:
+ sys.exit('Usage: %s command' % sys.argv[0])
+
+ bus = dbus.SessionBus()
+ remote_object = bus.get_object("name.phdru.XSetBg", "/XSetBg")
+ iface = dbus.Interface(remote_object, "name.phdru.XSetBg")
+
+ getattr(iface, command)()
+
+if __name__ == '__main__':
+ main()
--- /dev/null
+#! /usr/bin/env python
+"""XSetBg (DBus version)
+
+"""
+
+__version__ = "$Revision$"[11:-2]
+__revision__ = "$Id$"[5:-2]
+__date__ = "$Date$"[7:-2]
+
+__author__ = "Oleg Broytman <phd@phdru.name>"
+__copyright__ = "Copyright (C) 2000-2010 PhiloSoft Design"
+__license__ = "GNU GPL"
+
+import gobject
+
+import dbus
+import dbus.service
+import dbus.mainloop.glib
+
+from xsetbg import change
+
+
+class XsetBg(dbus.service.Object):
+
+ @dbus.service.method("name.phdru.XSetBg", in_signature='', out_signature='')
+ def change(self):
+ change()
+
+ @dbus.service.method("name.phdru.XSetBg", in_signature='', out_signature='')
+ def force(self):
+ change(force=True)
+
+ @dbus.service.method("name.phdru.XSetBg", in_signature='', out_signature='')
+ def stop(self):
+ mainloop.quit()
+
+ @dbus.service.method("name.phdru.XSetBg", in_signature='', out_signature='')
+ def stop(self):
+ mainloop.quit()
+
+
+if __name__ == '__main__':
+ dbus.mainloop.glib.DBusGMainLoop(set_as_default=True)
+
+ session_bus = dbus.SessionBus()
+ name = dbus.service.BusName("name.phdru.XSetBg", session_bus)
+ object = XsetBg(session_bus, '/XSetBg')
+
+ change(force=True)
+ mainloop = gobject.MainLoop()
+ mainloop.run()