Hello, There are several programming languages with support for D-Bus client implementation. For example, with the following code: https://git.gnome.org/browse/gnome-shell/tree/js/ui/keyboard.js#n56 const CaribouDaemonIface = ' \ \ \ \ \ '; const CaribouDaemonProxy = Gio.DBusProxy.makeProxyWrapper(CaribouDaemonIface); One can call a D-Bus method as a normal method of CaribouDaemonProxy. This is really handy and I wished to have similar feature in Elisp (though I haven't ever written any practical D-Bus code in Elisp). Thanks to cl-generic, I gave it a try. With the attached code (far from complete though), a client can be implemented as: (dbus-define-proxy search-provider "\ ") Then you can create a client and call D-Bus methods: (setq search-provider (search-provider-make :session "org.gnome.Weather.BackgroundService" "/org/gnome/Weather/BackgroundService")) (search-provider-call-GetInitialResultSet search-provider '("tokyo")) If this seems to be useful, I can finish it off as a patch. Thanks, -- Daiki Ueno