Idea: Cross-desktop notification daemon

Simon Ulsnes vinterbleg at gmail.com
Mon May 16 12:26:15 EEST 2005


Hi!
I'm developing a system using D-BUS, currently implemented in Mono,
that will ideally be able to show little popup-notifications (for
instance, someone logged on to IM, disk space is running low, updates
are available, etc.).

The idea is this: We have a daemon that is a D-BUS service. This takes
care of receiving and dispatching the notifications (so if your
application wants to display a notification, you invoke
org.freedesktop.NotificationService.Notifier.Notify). The daemon has
clients attached, which register themselves with the daemon. These
clients can be implemented in Gtk, Qt or whatever, it doesn't make a
difference, the only thing they have to do is implement the Notify
interface and register themselves with the daemon by providing their
service name and object path
(org.freedesktop.NotificationService.Notifier.RegisterDisplay).

So when the Notification service receives a notification from an
application, it forwards the notification to all clients attached,
which then take care of displaying it. The clients are called
"displays" (I guess 'client' is actually a wrong term, since that
would be the applications actually sending the notifications).

As I said, the daemon is currently implemented in Mono, mostly because
it's a proof-of-concept and I haven't managed to get my head around
the raw D-BUS API (it would be nice to not use GLib in the daemon so
that it is completely independent - Now, I know Mono uses GLib, and
current daemon also uses Gtk for the main loop, but again it is only
an example).

I think this project would fit nicely into fd.o, and so I will request
that it can be hosted here. I would also like other people to join in
on development - I haven't got time to finish it right now (exams),
and some things I don't have a clue how to implement (such as
callbacks so applications can react to the user, for instance,
clicking the notification).

Ideas are also welcome.

Simon Ask Ulsnes



More information about the xdg mailing list