As part of its initiative to improve the usability of the Linux desktop, Canonical has made a proposal for a desktop notification system for both GNOME and KDE. Mark Shuttleworth announced the proposal on his blog earlier this week. The mockup video shows notification more or less like the 3d party Growl system for Mac OS X. Since we are talking Linux here, the meat is in the implementation details and cross-desktop compatibility.
Shuttleworth believes that Canonical’s time is best spent on elements between the major applications and elements of the the Linux desktop. “I think Canonical and Ubuntu can best help the cause of free software by focusing on the cracks between the major components of the desktop,” he explained, “In other words, while there are already great upstreams for individual applications in the free software desktop (Evolution, OpenOffice, Firefox, NetworkManager), we think there is a lot of productive and useful work to be done in the gaps between them.” The new notification proposal fills one of those cracks.
They will write a new notification display agent, one that is not forked from the current GNOME notifications daemon. They won’t be replacing libnotify, but they may deprecate functionality within libnotify; to ensure a smooth transition, the “old” combination of the current daemon and libnotify will remain available alongside the new implementation. The reason for writing a new display agent is that they want the graphical bit to be written in Qt for KDE, and in Gtk+ for GNOME, making sure that as much code is shared between the two. Shuttleworth hopes they can deliver both variants at the same time.
As for the way the notifications are displayed, and how they operate, they make some interesting choices. Most notably, there won’t be any widgets on the notifications. There’s no dismiss button, and you can’t click them to active the application that created them. “Our hypothesis is that the existence of ANY action creates a weighty obligation to act, or to THINK ABOUT ACTING,” Shuttleworth writes, “That make notifications turn from play into work. That makes them heavy responsibilities. That makes them an interruption, not a notification. And interruptions are a bag of hurt when you have things to do.”
This is Canonical’s mockup:
The first implementation should be ready for Ubuntu 9.04, and one of Canonical’s OEM partners will ship it on a netbook during the 9.04 cycle.
As Ars Technica notes, however, there are some problems with the new implementation. Firstly is the problem of updating all the countless applications by individual developers that are tied to the current notification system. More importantly, however, is the issue of compositing: the new design requires a running compositing manager, which are not popular with all Linux users, especially seeing many users will need binary drivers in order to support compositing.
KDE 4.2 already has notifications as proposed by Shuttleworth. See for example: http://blog.sayakbanerjee.com/?p=95. I actually like them quite a lot and I am quite impressed by KDE 4.2
Indeed. The KDE devs were proposing an overhaul based on the galago spec months and months ago (about half a year ago). The galago people apparently didn’t want to work with them, nor did it seem to interest people on the gnome side.
Now comes canonical to save the day, and this is “big news”. They want someone on the kde side to join them in making a new notification scheme. Where were they all those months ago?
However in some ways this is good for gnome in particular as it probably would have sunk had they actually tried involving the wider gnome community. In general it looks interesting and miles better than what exists now but some aspects are quite insane like missing the ability to dismiss notifications (very gnome-like, *smirk*).
Oh c’mon! As someone who actually knows Growl as well as KDE 4.2beta I can tell you that there are some huge differences. For starters: KDE’s is much more interactive. There are Stop and Pause buttons for longer operations like downloads, there are View and Ignore buttons for incoming chat messages, and so on.
Canonical’s Growl imitation will have — at least that seems to be the plan — no interaction at all.
you’re grouping the kui viewer plasmoid with the notification plasmoids though they both look the same.
True that they are more interactive, but to me it seems silly to have a message come up and not (at least be possible) to interact with it, Really does one really agonize over the decision of whether or not to press the button?
But this is about the underlying gallago spec which kde has already implemented plus some modifications.
These notifications are merely a matter of preference.
If canonical wanted to do something really useful, they would commit to help clean up the system tray to be the way it is meant to be…persistent notifications and no other junk (idiocy of minimising programs to the system tray)
Edited 2008-12-24 01:18 UTC
I’m grouping what’s now grouped by the KDE project. The progress “window” of a download is now the same thing as a “New mail” notification.
Obviously the Canonical guys have a different take than you.
Maybe you are talking about Galago, but Shuttleworth is not. His blog posting focuses on the usability side of things.
What is the point of a notification if you can’t take an action based upon it. Do they really expect people to go hunt the application that just created the notification?
Not being able to dismiss it is silly too. If it stays up too long it is a pain and might get in the way. If it is too short, it is just visual noise that has no purpose whatsoever as you can’t read the text.
Obviously they disagree, but quite frankly those two aspects are really silly. Everything else is fine…
I rather like the idea of making them so completely ephemeral and nonessential. Because that means I can just turn them off. When those little balloons pop up, I get the distinctly unpleasant (and likely irrational) feeling that I am running Windows. They are an annoyance I can well do without. As Mark says, anything that I really need to know about should have an unobtrusive panel icon that I can take action (click) at my convenience to find out more about. Notifications are messages from the devil. 😉
Edited 2008-12-23 20:58 UTC
Seems to me that if you really need to know about it, an unobtrusive panel icon is the last thing you need.
Personally, I favour both for urgent issues – when something goes wrong, show a notification to get my attention when I’m sitting in front of the screen, and leave a blinking icon in the system tray where I’ll spot it when I get back to my desk. Because if it’s something I really need to know about, I really do want to know about it.
Well, blinking would be OK, I guess. I was thinking more in terms of the nonblinking, but still noticeable panel icon that appears when a reboot is required after a kernel upgrade.
Persoanlly,I’d be inclined to reserve blinking icons for when the computer is about to explode and I’m supposed to run for cover. Then again, my family used to get frustrated with me for completely ignoring local tornado warnings…
What I hate about notifications is the way they seem to become a manifestation of an application’s ego. It’s as if the developers have decided that their app is so important that the user will want to be notified of every little thing it does.
Take, as an example of this, Firefox’s “Firefox has found updates for some of your extensions” notification. This fascinating tidbit of information which is clearly non-critical – I don’t know anyone who interrupts their browsing to act on this info – is delivered not using the OS’s built in notification system but rather Firefox’s own system which crawls above all other apps to interfere with whatever you’re doing. At best it’s bad manners. In some situations, it can be a downright nuisance.
Usually there’s some option somewhere to turn this type of thing off. In practice notifications should all be off by default. The user should have to say “I want to be notified of X, Y and Z”, not “Stop bugging me about W”.
Steve has discovered that Steve is annoyed by some applications’ self-important insistence upon referring to themselves in the third person. 😉
Edited 2008-12-24 01:09 UTC
Well it really depends imo.
I like to be informed that a KTorrent download has been finished, that way I could start buring the iso-image I downloaded right away.
And if I missed the notice I would controll the state myself.
So the notification can be usefull if you are there and it does not bother you if you are not there.
What bothers me with the path Canonical is taking is that they strip it completly down. Another imo better way would be to have it like KDE: You can modify all the notifications.
Now what Canonical should do is find good defaults for their user group while not taking features away for others!
It is following the classic gnome approach, not so much because it is rather sparse, but more the idea behind it.
“Flexibility is bad” one approach because programmers would butcher it (they might, but is not a given) and users are confused by buttons or options ( they might be, but not everyone is an idiot) allowing them to set the level of “intrusion”.
The total lack of granularity feels a bit weird, but I’ll reserve final judgement when an actual working implementation shows up
Edited 2008-12-24 14:51 UTC
History disagrees. I don’t know if you followed the Mozilla Suite through all the years that they spun their wheels, user share remaining stagnant and tiny, until they discovered that the “less is more” philosophy had huge advantages. The “stripped completely down” Firefox *saved* Mozilla. And did it almost literally overnight. KDE folks seem to prefer the “keep adding more and more features” approach, presumably thinking that will make it more popular. But the balance of the actual real world evidence supports the “less if more” philosophy, despite the fact that it may seem counter-intuitive to some.
there is the concept of “too little”, just as there is “too much”
I’d have to disagree here. Firefox is at the bottom of the list for applications driven by a “less is more” philosophy.
Firefox is an extensible cross-platform framework built upon the gecko engine. The extension framework and XUL-based interface provide near infinite options and features for users that would like them. Look at any thread that mentions Firefox or an alternative browser, and it will become peppered with praise about extensions.
I’d argue that Firefox is closer to the KDE design philosophy than Gnome. Don’t decide what your users do or don’t need and what they should do with the product, but build the hooks and the frameworks to allow them or others to extend and configure the product however they see fit. Provide enough abstraction that they don’t even need to focus on the underlying platforms any more. That sort of thing.
Personally, I stopped using Firefox a while ago. I wasn’t “relying” on extensions and such, I just want a simple browser, and simply found better solutions without the associated bloat and resource requirements. But if I did find value in the extensions, as many certainly do, I’d view the application in an entirely different perspective.
Mozilla was dying because it evolved into a sucky application that simply didn’t offer enough benefit over the incumbent. Tearing it a apart and refactoring it into something more manageable and modern was pretty much the last choice they had. And they certainly did well with that. But Mozilla still ultimately aims to make the browser an application platform that diminishes the relevance of the underlying OS, just as Netscape originally intended. Sort of a “more is necessary” approach, than just being a simple browser.
I take your point (though I don’t agree ), but I just think you used the wrong example to illustrate it…
Yeek. You’ve opened the door to this turning into a Gnome vs KDE mud fight. Let’s try not to go there.
But… I’m not sure I would agree with you on that.
Bring up Firefox and go into Edit->Preferences”. The word “sparse” doesn’t begin to cover it.
I do not disagree with you about the value of extensibility beyond a default functionality provided by a simple core. In fact, I strongly agree with you. Perhaps I should give a specific example. I’ve recently moved to Gedit for my Python/Django development. “Gedit!”, you say? (But that’s just notepad++, right?) Yep, Gedit. The basic Gedit is what most people think of Gedit as being. I always thought of it as notepad++. But then I plugged in some plugins:
Code Comment
Color Picker
Document Statistics
Embedded Terminal
External Tools
File Browser Pane
Fullscreen
Indent Lines
Join/Split Lines
Python Console
Python Indentation
Session Saver
Smart Spaces
Snippets
Tag List
Web Browser
(Most of these are available in the standard Gedit plugins package, so you don’t have to install them separately, BTW. Just “Edit->Preferences->Plugins” and then check any desired boxes.)
So now I have a specialized Python editor, with a web development slant, which goes far beyond simple syntax highlighting. Code folding. Snippets. Built in command line so I can stop, start, and monitor the stdout and stderr output of the Django development web server. A handy little python console to test out my syntax interactively. And Oh, yeah, a web browser in a tab along side my other editing windows, so I can quickly and easily use and test my pages as I develop them. It just doesn’t get any better. I laugh at TextMate users. 😉 And yet *none* of this would be appropriate for a basic, default text editor.
There is no reason that a notification system with a simple base could not be extensible. And yet that still leaves the question of whether it *should* be.
Do we agree, though, that a simple base is good… unless something more complex and monolithic just happens to exactly match a user’s needs?
Edited 2008-12-24 23:48 UTC
The reason why I’m against a simple base here is that Canonical want this to be a standard (!) later on. I think the standard should not be stripped down but rather enlarged, so that it would work for _everyone_. And eveyone in this case are developers, not users!
Ideally the standard would be set up a way, that the developers — and if they want also the user — can decide what is being displayed. “You” (developer of Ubuntu, GNOME or whatever) do not want to display associated actions, well then don’t do, but don’t take away this option of other devs as they would not use the specification then, resulting in what we have now –> lack of interoperability, so lack of what fd.o was started for in the first place.
That’s my whole point. Stripping the specification more down than it is now is a no-go for the KDE devs as they want to enlarge the API (aseigo stated that multiple times, you can also read his posts on the fd.o list for that matter).
Mark wants to take complexity away from the users, but are simple setters complexity for devs if they even don’t have to use them?
I meant “getters” instead of “setters” above. Getters for the devs of notification apps. The devs of other apps should ideally use as many of the spec’s setters as possible — not really a problem imo — to ensure compatibillity with other environments as well.
What about XFCE? I hope it is implemented in such a way that XFCE can benefit as well. Otherwise what good is it? Its like releasing something saying its cross platform since it can run on Mac OSX and Windows.
Xfce is built on Gtk+. The new notification system will have a Gtk+ frontend. Therefore, via careful logical reasoning, which only I can perform because of my gigantic brain, Xfce will be able to use this new notification system just fine.
Are you sure about that, your braininess?
Is the notification system part of GTK+ or part of Gnome? XFCE may use GTK+ but it is free of the bulk of Gnome’s many libraries. I expect it would “just work” because the XFCE people are pretty good about supporting such things but that would probably not be true for all GTK+ based desktop environments. Would it?
I’m not sure how tightly integrated into the desktop something like this would really need to be. It could just be applications talking to a notification daemon, which in turn would, presumably, at least try to talk to the desktop (about positioning and such) but which could probably work just fine even in something like Fluxbox. In that case, it would have nothing to do with what widget toolkit is used.
Isn’t the standard we are talking about, as opposed to any particular implementation, based upon, and intended to possibly become, an fd.o thing?
Therefore, via careful logical reasoning, which only I can perform because of my gigantic brain, Xfce will be able to use this new notification system just fine.
Xfce uses its own compositor instead of compiz-fusion. You can use other compositor engine like compiz but it requires some minor tweaking. The downfall is the fancy transparency effects are high on the overhead and people with older systems not using compositing engines will luck out. I am guessing they will be smart enough to have a fall back and resort to the current notify applet in Gnome. To rely on compositing or else nothing would be bad.
Edited 2008-12-24 01:29 UTC
It’s implemented on top of d-bus, so any DE that uses d-bus will be able to use it. Or so the theory goes.
If XFce has hooks into d-bus, then it can use this notification thingy.
Oh, and so long as it runs on two platforms, you can call an app cross-platform.
I’d like to know what’s wrong with the existing Gnome notification system? Oh wait, this must be yet another opportunity for Ubuntu to grab the spotlight. Personally, I dislike obnoxious notification balloons that disturb my work. These dark black (I’m surprised they’re not brown) boxes that pop up and then slide around the desktop seem more annoying than anything else. I say if it’s not broken don’t “fix” it!!
While I’m a huge critic of Canonical, I give them credit for this initiative.
Please keep the following points in mind:
1.) This is one of the first bigger contributions by Canonical sourcecode-wise. I don’t think that the Notifications stuff is the most pressing area that requires contributions, but nonetheless they’re contributing.
2.) This initiative is just an experiment. As been noted before: KDE is about to change their notifications system for 4.2. I like what’s currently in 4.2beta2, but it’s not perfect. It’s unlikely that KDE just throws away the new notification system, this Canonical experiment may lead to usability-related results that can be adapted by KDE.
Damned of you do, damned if you don’t. One day Ubuntu is not contributing enough, the next day it’s wrong that they contribute code and designs.
Well, Aaron Seigo and the ArsTechnica author are right when they point out that working on this in secret for months/weeks is not the right way in an area that requires lots of cooperation.
Let’s hope that Canonical has learned from that mistake.
Funny, Compiz seems to be fine.
After forking back and forth with Beryl, lots of stress with the community, and the related Xgl (also developed behind closed doors) was superseded by AIGLX.
If they want to do something like this, why don’t they just sponsor someone to build a daemon that all can use.
Something that even a user can access via a shell/python script, something theme-able, something that can (if wanted) include interaction, a kind of zenity on steroids, then anyone can use it how they like. This would be a far better idea than have it locked to gnome or kde. Fluxbox, Openbox or (insert favourite window manager) users could also benefit from something like this. The current available options of xosd don’t quite cut it really.
How hard would it be to make something like that, that can receive input and give back output that uses cairo for rendering so it’s all nice and antialias with alpha transparency, something that can render a users chosen png file for the background.
This is what open source communities are about aren’t they? Creating things all can use!
Edited 2008-12-24 01:43 UTC
And then KDE would adopt it and everyone would be happy and content in the Free/Libre/Open Source Software World.
Hell, we can’t even decide between the terms “Free, Libre, and Open Source”. Let alone settle on a single, Cairo-using component that “every” DE can use.
fd.o standards, with separate implementations, seems to be the optimum meeting ground in our neck of the woods.
Edited 2008-12-24 02:04 UTC
Pipe dream you think?
Sad really
At that level, yes.
Do you think so? We do pretty well in agreeing on standards, as opposed to implementations. POSIX anyone? And fd.o’s are doing pretty well, not only amongst Gnome and KDE, but also with other DEs and window managers. I used to think that shared implementations were desirable. Despairing of that, I resigned myself to the fact that it was, in general, not going to happen. It was only after taking that step that I realized that common implementations were not really even desirable. Controlled anarchy, restrained by agreed upon standards, is where it’s at. It is certainly no “perfect world” solution. But it is a wonderfully pragmatic one, once you accept the facts that:
1) Devs in the FOSS community work on what they are personally motivated to work on.
2) The available work force is, thus, dependent upon how many talented devs find something of interest to work on.
3. It’s best if they are pulling in the same direction at as low a level as practicable.
4. Empirically speaking, high level interfaces seem to be that level.
Not sad, in my opinion. Just a little more complex than the simple solutions which our minds normally seek.
Edited 2008-12-24 02:45 UTC
As Ars Technica notes, however, there are some problems with the new implementation. Firstly is the problem of updating all the countless applications by individual developers that are tied to the current notification system.
I am not a programmer. But I have a simple idea for that issue.
Can’t this new notification system just hijack any API calls for the current notification system and translate them to what was is required for the new notification system?
So if this new system is installed it is the default. If it gets uninstalled, what is now the current notification is active.
Does this sound possible and easier than rewriting everything?
Not if the apps rely on features of the old system that aren’t implemented in the new one. Like interactivity.
More like “I’m going to pop up and *make* you do something”. Modal Dialogue’s pant leg nipping little brother…
I wasn’t arguing about the merits, simply pointing out the technical parameters.
Oh come on, we all know Ubuntu never contributes anything to the Linux world.
Except when they do. And then it is an attempt to take over Linux and enslave us all! It’s a little known fact that in those famous shots of three demographically diverse individuals joining hands to form a ring, the manacles had to be airbrushed out, and the smiles painted on. 😉
Edited 2008-12-24 17:56 UTC
I would have preferred something like: “hey, we did this, do you like it? Do you want to hack it?”
Do they think this kind of notification system would be useful for a linux desktop? OK, Mr. Shuttleworth, pay some engineers and start a free project as others do (let’s say Red Hat with dbus, hal, Novel with several other projects, etc…)
That volume animation reminded me of something I’d love to see. They should put the volume bar horizontally across the top of the screen – it would remove the need to first click the volume icon, to get to the volume controls. I don’t know why so many like to hide that thing – and there’s so much horizontal space in Ubuntu (and Gnome in general) anyway. It’d be great if they did that – or at least created an option to set it that way.
Handy tip: Your scroll wheel works on the volume control applet in Gnome.
Actually, as widescreen notebooks are more and more common, I would not vote for such a solution. Heck, I even hide all my panels in KDE to save some screen estate :S
I remember how some years ago Ubuntu proudly and loudly advertised that their latest release gives the GNOME desktop amazing new polish and shine by making the corners of all pop-up notification boxes round. The Ubuntu release announcement featured several pictures showing the old angular notification boxes next to pictures of the new round-cornered notifications. At the time I wondered why they spend so much effort to change such small and insignificant details.
And now, when Mark Shuttleworth has decided to increase Ubuntu’s contributions to the free software community, his first serious effort is to give the notification boxes a new look. I can’t help but thinking that Shuttleworth must have some kind of an obsession with desktop notifications. To me the most important feature about these notifications is that there’s an easy global switch that allows me to turn off all the notifications. I agree with KDE developer Aaron Seigo’s opinion[1] that it must be a very slow news day when an announcement of a new design for desktop notifications makes headlines at several FOSS news sites.
IMHO, things like translations are far more important than pop-up notifications. Planet Ubuntu linked recently to a blog post[2] where someone complained about Launchpad’s translation tool Rosetta:
I think Shuttleworth should concentrate his efforts in fixing important things like this Rosetta problem, instead of fiddling with desktop notifications, if he wants to improve Ubuntu’s reputation as a contributor in the FOSS community.
[1] http://aseigo.blogspot.com/2008/12/notifications.html
[2] http://www.ogmaciel.com/?p=625