Hi, I recently developed dbus-proxy, a framework that makes accessing remote D-Bus objects from Emacs Lisp easier and more transparent than the current `dbus-call-method' mechanism. Since I was encouraged to propose it for inclusion in Emacs, I'm hereby doing so. Besides being attached, the code is also available here: http://bazaar.launchpad.net/~scymtym/+junk/dbus-proxy/files Let me start with a simple example of how a typical usage of dbus-proxy looks: (let ((device-kit (dbus-proxy-make-remote-proxy :system "org.freedesktop.DeviceKit" "/org/freedesktop/DeviceKit"))) ;; Retrieve the daemon-version property. (slot-value device-kit :daemon-version) (oref device-kit :daemon-version) ;; Connect to the device-event signal. (connect device-kit 'device-event (lambda (&rest args) (message "Device event %s" args))) ;; Enumerate subsystems. (enumerate-by-subsystem device-kit '("sound"))) This example creates a proxy object for the device kit D-Bus object and uses its methods, properties and signals. dbus-proxy uses D-Bus introspection information to dynamically create classes and methods that reflect the structure of the remote interface in Emacs Lisp as naturally as possible. For example, `describe-class' can used to inspect the methods supported by a particular D-Bus object. dbus-proxy consists of the following components: + dbus-proxy.el + public programming interface + interface analysis + proxy superclasses + code generation + unit tests + dbus-introspection.el + accessors for D-Bus introspection data (similar to those in dbus.el) + parsing of signature strings + unit tests I am aware of the following problems with respect to the inclusion in Emacs: + Names: + Generated class names tend to be long and ugly and do not follow usual Lisp conventions + `connect' and `disconnect' may need a `dbus-proxy-' prefix? + The generated class hierarchies only work with the :c3 method resolution order which was added to EIEIO upstream a few months ago but does not seem to have been merged yet + The unit tests use ert which is also not currently included in Emacs + The use of the cl library may or may not be acceptable I have signed the copyright assignment for Emacs. What do you think? Kind regards, Jan