Wednesday, December 10, 2008

Free dektop notifications

I was tempted to entitle this entry "More more downstream fun" but figured I'd call it something more illuminating to the topic at hand, namely: application notifications.

KDE sports a very robust and comprehensive notifications system that features things such as logging to files, playing sounds, popping up notifications and more. It also allows these to be fully configured, either system wide or per-user. We've had this in place for years and it's proven to work pretty well for us.

Unfortunately there has been little interoperability progress so every application framework had it's only little system for doing things like popups.

The Galago project offered up a specification for addressing one aspect of notifications: visual notifications. In KDE we've used passive popup windows for applications to let you know things like "Hey, someone's talking to you on Jabber!". The Galago spec documents a D-Bus interface, so ostensibly it's cross-desktop. Unfortunately, although they jumped on the D-Bus name of org.freedesktop.Notifications, not many other application frameworks used it. Certainly not KDE. Why? Well, to put it simply, the spec has warts. We've communicated what aspectswe'd like to see improved but to no response or headway. This makes it clear that grabbing "org.freedesktop.Notifications" was way premature in this case.

In KDE 4.2, Plasma's system tray provides a service called org.kde.VisualNotifications which is a subset of the full Galago spec with some rather minor modifications. KNotify uses this if it finds it to be available, otherwise it falls back to using passive popups. The system tray also provides support for the _NET_SYSTEM_TRAY_MESSAGE_DATA notifications that happen over X11 Atoms.

Today I found out via a third party (huzzah for having people who work on KDE things at conferences!) that user experience people at Canonical were working on notifications and tweaking the Galago spec. Via Riddle I was able to have a conversation with one of these people and hopefully we'll see a notifications spec that we can all live with and implement using the same D-Bus interface and address.

I was a disappointed that I had to find out from someone who happened to be at the event that this was going on, however. This is the kind of work that belongs on the xdg list from the very start with all the stakeholders. Far too often well meaning downstreams head off and start implementing things so excited and enthused about what they are doing that they don't lift up their head and look around at who else is being effected, or should be effected, by their efforts. I know that working with others is harder than working by yourself and that making a coherent experience is not the easiest path. It is, however, the best path.

So .. long and short of it: I'm hopeful that soon all FOSS desktop apps (KDE, GNOME, Mozilla, etc) will be able to show their visual notifications in a way that integrates well with whatever the host desktop shell is. The rough goal we talked about on irc is by the releases in the second half of 2009 to be sharing something, with the possibility of even making it happen in the spring releases.

6 comments:

notriddle said...

Sounds cool! Can't wait for Galago to be fully implemented.

IAnjo said...

I'm also looking forward to gorgeous growl-like unified notifications on my plasma :)

quique said...

Thanks for taking care :-)

Paul said...

Aaron, I have a quick question about system tray icons. When I have desktop effects enabled and panel auto hiding set, the icons float for a moment when the panel hides. I thought I read one of your blog entries a while back that stated that this effect was fixed with the new systray code. Is that the case, and has this already been implemented?

downhillgames said...

so eventually maybe Pidgin's pop-ups (via plug-in) can work natively with KDE4 instead of using their own method. That'd be nice.

(So few comments on something pretty important for the user experience...)

Jud said...

This is worth a link:

A follow up possibly releated post: Mark Shuttleworth talks about a new notification framework that Ubuntu will pioneer.

There is a lot of sentiment in the article for dual-development under GNOME and KDE simultaneously. It seems to deviate a bit from the current KDE notification design, however.

http://www.markshuttleworth.com/archives/253