During the last days I was playing around with the Ubuntu Notify OSD. As a user it's quite a nice thing:
it gets out of your way and does not disturb you. You know whats going on and paired with the indicator
applet you can take action if you want. Avoid interaction with the notification (e.g. buttons or links in
them) is an important part of that and I really like it the way it is.
Writing my first software to use notifications I also got to see it from a developers perspective and was a bit…
surprised. When I first stumbled across the desktop notification specification my though was:
Wow! You can do pretty much everything with notifications. However playing around with the notify-send
tool and reading the documentation showed that most of the features of the spec don't work.
At first as a developer I was a bit upset. For my application the standard timeout was quite a bit to long and
the queuing of the notifications sometimes caused old notifications to show up for almost one minute. Since
you can't replace existing notifications with notify-send
this behavior rendered the entire notification system
useless for my purpose. This kind of frustration can be seen in many every bug reports about the
notification OSD.
However in the documentation there is a distinction between "notification bubbles" and "confirmation bubbles".
- Notifications are triggered by something or someone external and are not caused by the user (e.g. an Empathy
contact comes online).
- Confirmations on the other hand have a fundamental different role: they are triggered by
the user himself and confirm that his or her action had an effect.
This is something the technical desktop notification spec does not cover: usability. As soon as I understood this
it became clear why the notification OSD didn't match my requirements. I wasn't dealing with notifications at all
but with confirmations.
In my application the user takes an action (e.g. saving a file) and expects a bubble to
show up and report the result. As soon as I switched notify-send
over to confirmations (using the
x-canonical-private-synchronous
hint as stated in the doc) the usability was perfect! Old confirmations getting
replaced by new ones instantly and the timeout is perfect for scanning the result. There is a little bug
with the summary and the body of replaced confirmations but that's not really serious and should be fixed
someday.
I really like the semantic approach to differ between confirmations and notifications. I can't help but admire the
Ubuntu desktop experience team for the good work and for starting to clean up all that notification
usability mess. Unfortunately they are getting under a lot of fire from users that are developers them selfs and want
to customize their notifications. I personally prefer to just tell the system what kind of thing I send (notification or
confirmation) and let it figure out how to show it to the user.
Because they get so much fire thrown at them, someone good words can't hurt. Therefore as a developer I just
have to say: Good work guys. You did an excellent job!