libnotify in GNOME Applets

I’ve been playing this weekend with libnotify, and, before taking the task of changing the Evolution’s alarm daemon to use it, I’ve made some applets in GNOME Applets use it for some nice notifications.

First, the weather applet, which displays a notification whenever it gets an update from the weather forecast service:

Then, the trash applet, which does the same when there are files deleted/added from/to the trash.

These notifications expire a few seconds after they are shown, so they should not disturb the user at all.

36 Responses to “libnotify in GNOME Applets”

  1. Ralph Aichinger says:

    I think notification about new weather reports is quite useless and distracting. Now if there was an applet to display thoses “The system is goning down in 5 minutes” reboot messages, *that* would be cool ; )

    /ralph

  2. ffub says:

    They both seem unnecessary. As you seem to admit, the reason they are going into this software is to try out libnotify. The weather one is distracting. If the user wants to know the weathere they can look at the applet or click on it, it’s not up for the computer to decide when they want this information.

    The trash applet notification is also pointless. As the user will be initiating the deletion to trash, and a progress dialog pops up in most cases (e.g. nautilus) this is just superfluous.

    The statement, “These notifications expire a few seconds after they are shown, so they should not disturb the user at all”, is false. A redundant popup for a few seconds is wholly disturbing.

  3. Daniel Borgmann says:

    Well, why do I want to know that something in the trash has changed? Maybe there is a point to it that I’m just not seeing. :)
    I’m not so much worried about the distraction, but rather that lots of meaningless notifications might de-empasize the actually useful ones.

  4. Simon Howard says:

    I hope these are changes which aren’t being checked into GNOME CVS.

  5. Sven says:

    What about a nice notification that informs the user when the position of the mouse has changed?

  6. Jon Cooper says:

    While I think it is good to have a testbed, I don’t believe these applets require notification.

    Look at how ForecastFox quietly and successfully does weather – like the weather panel applet, by providing a simple icon, which on mouseover provides more details. You don’t need to know when the weather changes via a notification.

    A user will always start a Trash related action, hence no notification is required there either. Perhaps if the trash was getting close to a predefined limit a notification would be necessary, but other than that I see no use.

    Gaim needs this functionality, however, and it needs to do it well (cf. MSN toaster popups). The battery status applet could also use this in a useful way. Finally, E-D-S needs notifications for calendar events / tasks etc. When evolution is running, using notifications for new email would also be a bonus (cf. Outlook 2003 notifications).

    All in all, libnotify will be a good standardisation, but please don’t add features to release applications just for the sake of it.

  7. Michele says:

    I think all these notifications are useless and disturbing.
    If the state of my trash changes is because I’ve trashed something, so why do I need a notification for something I’ve just done?
    IMO those things belongs only to important events like battery discharging/charging, evolution alarm, im clients, completed downloads…

    Hope we don’t get the same selvage use of notification area and balloons as in windows.

    Ciao.

  8. upset says:

    That’s a lot of negative comments. I hope you got the message: no frivolous notifications.

    Thanks!

  9. SchAmane says:

    This feature for is disscussed for more then year. I hope this time it comes something realy included to gnome.

  10. Anonymous says:

    I was gonna post “Good God, No!”, but it seems other people beat me to it. The popups look cool and this is a really nice proof of concept, but the applets in question should not have popups for reasons already mentioned.

    One question: why is the weather popup shown in the bottom right corner? Wouldn’t it be better to show the popups next to the applet they relate to?

  11. Vincenzo Vaccarino says:

    In the future this will be used for notifications from Evolution also about new mail and so on ? I think this would be a very nice addition, as right now I have to stick with evonotify (btw, it works perfectly anyway…)

  12. Christian Neumair says:

    The extremely negative feedback shows that we all have learned what a minimalistic approach is all about :).

    Vincenzo: The evolution integration idea sounds very nice! Maybe Rodrigo will pick up work on it.

  13. Martin Probst says:

    I think this definetly needs some kind of userdefined tolerable level of interruption.

    E.g. somewhere easily reachable you can set a slider in some steps from tell me everything to stfu. In that case I could easily raise the bar when I’m programming to silence the “your mouse has moved” notification but could still be informed about my battery state. It might be difficult to educate applet writers that their cool status message is irrelevant at some level, but it’s probably worth it.

  14. J.B. Nicholson-Owens says:

    Have you seen the event notification in RollerCoaster Tycoon? In this game you manage an amusement park and problems will develop as you play. There is an area of the screen used only for notification. Click on the notification and you are taken to the relevant UI for addressing the problem (ride X is down, ride X has crashed and killed N people, ride X needs servicing, etc.).

    If you click on the blank notification area (where no notification is being shown), you see a log of all the notifications during that game session (or that game level) and you can click on any of them to see the problem area (assuming that problem still exists).

    It’s easy to glance at the notification, consider if it’s worth knowing more about, or come back to later. The only animation in the notification is the icon representing what kind of notification it is (someone dying, or someone becoming angry that they can’t find the exit to the park is represented by a walking person animation, for example).

    I imagine a well-defined notification protocol could be displayed a number of different ways, including the animated bubbles, or this RCT-style notification.

  15. Ray Lee says:

    Popups can actually minimize user distraction in some cases, and those are the good ones.

    For example, I’m an email machine. If I’m working and I hear new email come in, then I go check the headers in Evolution to see whether I need to respond to it. That breaks my workflow, but sometimes I’m in quick conversations that demand fast replies to get anything done.

    A popup for a few seconds that fades in then out on my current workspace, showing the author, subject, and first couple lines of text will actually *minimize* my total distraction, and let me continue on what I was working on if the message wasn’t important.

    So, I think this has the potential to be both very useful, as well as over-abused :-).

  16. Hi,

    I think that something for notifying the user is very important and still missing in gnome.

    But it´s really important not to do it in the same way the other systems do it (e.g. windows).

    Maybe we can find a more innovative way. The example J.B. mentioned about the notifications in rollercoaster tycoon is a nice one.

    It would be also nice, if there would be a central place to configure the notifications, or to set the level of displayed messages.

    Also an idea:

    Registering notifications in gconf. Every application using notifications registers the possible popups in gconf. Now the user can select the popups he wants to receive. This could be a detailed view. Or maybe this is too detailed? There would be a lot of check boxes :)

    But when using a slider as Martin said, I see a problem in setting the importance of a popup. You could set 3 or 4 steps.

    Show All, Important Messages, No Messages

    What is important? Who defines the importance of a message? The author of the application? Or should the user set the importance?

    All by all: The idea is really good, but: Don´t copy the old ideas. We all have enough ideas for better and more innovative software ;)) So let´s see, if there can be something new.

    Greetings

    Mike

  17. Rui Carmo says:

    Wow. Pretty wierd to see all this negative commentary, especially since Growl (http://growl.info) has been one of the hottest things in the Mac desktop since Quicksilver…

    Oddly, no one seems to realize that notifications can be turned off (hopefully, like Growl, there will be some sort of centralised setting for that). Or that they can be used to convey network events (i.e., warnings from other machines).

  18. Daniel Borgmann says:

    Hell no, I’m very much looking forward to notifications (and I don’t agree with Mike that we need something different). I certainly won’t disable them either, there just should just be some sane reasoning for each. :)

    The general implementation looks great to me. Everything beats the current status of no notifications, popup windows and annoyingly blinking notification icons.

    One thing I’m wondering is, what will happen to the notification area. Will its suggested use cases change? Currently it’s usually “abused” for docking and pseudo-applets anyway. Why not make it an official “dock”? ;)

  19. Stu says:

    I presume that libnotify will be able to tie into galago to determine the users status. This would be a good way to determine what types of notifications to show and for how long

    – User is busy: no not show unimportant notifications, like weather for example :)
    – User is away: keep displaying important notifications

    Anyway I am sure this has beeen thought about :)

  20. Aredridel says:

    Yum. I totally dig it … trash is not a good place for it unless it’s monitoring actions that apps are making that shouldn’t be invisible in the first place, so yeah.

    I want to hack it into Gossip now, because that’s where I need notifications the most.

  21. Tom says:

    This is cool really should be included in Gnome. I assume that the notification is very much user configurable and in the future maybe smaller and even bit transparent! I don’t understand why people stuck in to such minor details as which applet should display it’s status in such early stage.

  22. Ken says:

    In response to some people’s suggestion of making the notifications appear ‘near the applet’ that creates the notification, I have to say that is a very silly idea!

    Now, let me explain my reasoning behind why it’s silly:

    First, even if you have all of your applets in one managable area, I might not. Whether you think this is good workflow or not, it’s my decision to use what I think is best. I could have four panels, on every edge of my screen, with various applets randomly placed in weird ways. That would mean I would have pop-ups in random places, causing me to have to chase them down with my eyes. It’s distracting by nature, and defeats the purpose of these notifications.

    If I could define one place for my notifications to show up (eg. NE, NW, SE, SW) then I wouldn’t have to ‘chase’ these notifications all day. While I agree that the fewer the options the better, I think having definable positions is a must for this feature (eg, ‘Follow Applet’, ‘Top-Left’, ‘Top-Right’, etc).

    In response to Michael Gebhart’s comment, I think you are wrong for even suggesting what you did. Don’t do something in a way that already works, just because Microsoft does it? So instead, we are to waste valuable developer time coming up some new, possibly assinine, way of doing it? That is just backwards to me. Ever heard of the expression ‘re-inventing the wheel’? The wheel already works the way it was designed, and it works very well.

    All-in-all, I think that Rodrigo has done a great job in showing Proof-of-concept. Keep up the good work!

  23. Matthew Lenz says:

    This would be useful to have IMO. Those people who freaked about it are also the ones who think that gnome even comes close to the usability and solid feel of OSX and XP. It doesn’t.

  24. tjarls says:

    This is much needed IMO. One place to get all notifications simplifies the desktop UI greatly and reduces the distraction factor.
    A few suggestions (nothing original though):
    * The notification server settings UI should give access the clients notification settings, possibly in addition to an access through the clients own settings UI. This could be limited to gnome/gconf clients of the notification server if implemented using gconf. Could the notification DBUS protocol be used to instruct the clients to change their own settings instead? (I have to admit I haven’t read in detail the specs)
    * History of past notifications would be a plus.

  25. Hi,

    well I don´t say, that the idea is bad, because Microsoft uses it.

    I only say, that we shouldn´t simply copy the idea. Because then, we maybe also copy some of the problems.

    For example:

    - In windows I can not set the position of the notifications.
    - I can not set the importance for notifications or set, which notifcations are displayed and which ones are not. There is no central configuration for this.
    - I can not see old notifications (e.g. when being away)

    So I am not saying that the idea is bad. And I am not saying, that the current libnotify is bad. Well libnotify is cute and I like the design of the notifications.

    But I think, that we all have a lot of great ideas and maybe can do some things better, than other systems do.

    (e.g. the idea of syslog-based alternative)

    So my idea was to create an advanced system of the usual notification system, with more innovative usability.

    Greetings

    Mike

  26. Heiko says:

    The idea is good! I like it and I’ll cross all my fingers to see it working in Gnome some day.
    I do not understand what is the purpose of the negative comments – Rodrigo has shown that there could be a good way for showing notifications and the two examples are just examples. Instead of whining about bad examples… good examples how to use libnotify could be given. For me the first thing was also the battery status change, also network events information could be useful.

    Best… H

  27. robert smol says:

    some ideas for notifications (probably mentioned already):

    1. new email notification
    2. new wifi network available
    3. meetings, notification in such a style is much better than one in evolution itself
    4. rss
    5. after cd/dvd is burned
    5. discovered ‘rendevouz’ services

    i like idea of notification because it gives you update on things immediately, user is being informed without having to point mouse to anything. this would enable me to stay focused on main task, and still being able to catch minor changes in the system. it is also neccessary to have control of what is being displayed, otherwise user might get overhelmed by tons of notifications. like growl very much.

  28. naba says:

    Just curious, what theme is that?

    Regards,
    -Naba

  29. Rodrigo Moya says:

    The theme is Clearlooks.

    Ok, so message taken, no superflous notifications, but yeah, these were just examples. The trashapplet part hasn’t been accepted, but the weather one has been, so is now in CVS HEAD (although hidden, you need to set up /apps/panel/applets/weather/use_libnotify to TRUE in GConf for it to work).

  30. Deusiah says:

    I agree the trash applet popup is of no use but I like the idea of the weather applet showing updates. Of course I think it should be down to the user to decide but I’d love to be able to have the choice.

  31. Hi,

    I’m Chris with the Growl project, mentioned here in previous posts. Some thoughts on this:

    1) Some people just don’t like notifications. Big deal, just turn it off guys, and move on. If someone finds this useful, more power to them.

    2) There is another project that may be useful for you to look into, called Guifications. Grim is pretty cool, and on freenode most of the time.

    3) The idea behind Growl is that notifications are something the user controls, not app vendors (which has been the case for years). The ability to control your environment is key.

    4) For those without macs, let me run down how Growl is used:

    a) An application launches, in this instance we could say that Evo launches. It attempts to register what is called a ticket with Growl. Growl then accepts the ticket, and saves it. The ticket has information, such as what the developer intended to be enabled by default (to a limit), a full list of notifications, and the app name and icon.

    b) User can go into the applications tab, and configure the tickets. Disable single notifications, say to leave some notifications on screen, and even specify a different style or display plugin to be used. Heck, they can even have the notification be spoken to them instead of displayed.

    c) Notification occurs. A meeting in Evo is about to happen, in 15 minutes. Evo sends the ‘meeting about to happen’ notification to Growl. The Growl daemon then checks the preferences, and displays if allowed with however the user specified.

    d) Users can configure general things, and can also have notifications sent over the network to other Growl instances running on the network as well. Hurray for rendezvous, zero configuration when trying to find other Growls. Distributed Objects allow for the notifications on the local lan, and then UDP can send on anything outside of the subnet.

    e) Users can disable on screen notifications and leave logging enabled. Users can change items on the fly. Users will eventually be able to choose the location of their notifications. All of these things are user preferences, and not leaving it up to the user is where things will really start to become nitty. Some people like really small stuff, whereas other people like really big stuff. Example:

    Who in their right mind would like a notification with 48 point font display? That’s right, a blind person, or someone with poor vision. Someone giving a presentation on a projector might enjoy this as well.

    This is just an example, I haven’t seen anything like this yet. But that doesn’t mean it shouldn’t be possible. A display plugin system would allow for any of this.

    f) If a user dislikes all of the display plugins, but likes the idea, they can make a new display plugin with some html and css. That’s all it takes.

    5) If you have a mac, TRY GROWL! It’s the best thing since pants. Seriously. I’m not biased in any way at all either :P

    Knocking this idea is really silly if you don’t take some time to consider it. Why couldn’t a notification be something that just displays text with no icon, and in a small window? Or how about something that displays in a text log you tail? (yes, I know about syslog, and other things, not the point) Worst case you just turn it off.

    Rodrigo, email me if you want to.

    Chris

  32. I think this is great work you are doing. We need some notification area. A lot of people have made negative comments and it could be overused, but it could also be very useful.

    One suggestion, there should be some flag when messages are sent that if marked it would queue up the messages and have some notification important messages you missed. This wouldn’t be used often but I can think of a couple of instances you wouldn’t want to miss a message.

    Thanks,

    John R. Tipton

  33. pronvit says:

    weather notification is really great thing

  34. Dmitry says:

    If I may point out, a severe weather notification when a warning is released by the weather service would be a very good idea, since the user is unlikely to be waiting for a severe weather warning to be issued. The negative comments seemed to judge a little too quickly.

  35. very nice working!! I´ve been thinking about developing something like it, but I see I am not the first one. I really think notify libs should be in the os core, because nowadays everything is turning to this “do NOT disturb me” paradigm, as you see in IMs and email managers. Here are some topics to help you:

    Apps where it could be helpful:
    - email managers
    - IMs in general
    - window managers: to display warnings such as lack of network connection, full disk usage, low battery (for laptops), new updates availability, segmentation faults on apps…
    - system clock update (kind of useless and annoying, I know… forget about it =))
    - everything that is nowadays in pop-ups but isn´t critical
    - music/video change in media players
    - RSS -> wheater service included

    features that are essencial:
    - Avoid overlapping notications that came concurrently, use MSN method instead: show as a stack.
    - Notification history, for “unread” items.
    - Custom skins for each app (XUL like?!?)
    - Low memory usage < - !!!!!!!!!!!
    - OS license expiring notification… oops, wrong OS…
    - notification placement modification is useful, but SE is the best place where it can be…
    - transparency

    * sorry if I repeated someone´s opinion, I couldn´t read all comments, and for my “not so very good” english
    * yes, I do hate pop-ups, they are evil…