One of the interesting things about DBUS that I didn't appreciate when I first read about it is that it supports service "activation". For example, I can send a message to a music-playing service (services are identified by well-known and namespaced strings), and if the daemon behind the service isn't running, DBUS will bring it up and then send it the message. (If you're on a recent Gnome machine, you probably have a
/usr/share/dbus-1/services/notification-d aemon.service
that provides org.freedesktop.Notifications
.)You can prod that service to life by sending a message its way:
% dbus-send --session --dest=org.freedesktop.Notifications --print-reply / org.freedesktop.DBus.Introspectable.Intr ospect
but from there, you're better off using
dbus-viewer
, which is a GUI frontend to the introspection APIs.I mentioned a music-playing service: the one I've discovered is BMPx, which is a rewrite of beep-media-player (itself a fork of XMMS). It's a bit excessively complicated, as music players tend to be (it's an mp3 player with skins -- wait, no, it's a media player -- wait, no, it's a media streaming framework -- wait, no, it's a generalized media library management system hooked up to a framework -- wait, no it's a media-playing daemon ...). But it does have a DBUS interface as well, with the sorts of sorts of calls you'd expect.