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