This seems like a great time to subscribe my RSS !

Update: fixed a minor glitch in the how-to, added a troubleshooting section.

Update2: added new dependency to the instructions. Also note that to update your existing version you need to go into its directory, type “bzr pull”, sudo apt-get install libwnck-dev, and recompile.

Hi, Alex Rybicki posted a tutorial about how to get the new Jaunty notifications on Ubuntu Intrepid.

Since the tutorial got some minor detail wrong, I am going post a better version here and take the chance to comment a little bit the new notification system.

Will this mess the system ?

No way, what you’re going to do will just download the source code and start it in place of the existing notification system. Interrupting the program with Ctrl+C, kill, or system restart will bring your beloved old notification system back.

How to install it ?

cd ~
sudo apt-get install bzr gnome-common automake libwnck-dev
bzr branch lp:notify-osd
cd notify-osd
./autogen.sh
make

Now you can start it:

killall notification-daemon ;  /home/[username]/notify-osd/src/notify-osd

..where [username] is your username.

You can interrupt the new notifications system by hitting ctrl+C. That will automatically bring back the old ones.

[the full credit of this tutorial goes to Alex]

If anyone of you figures out a tutorial to make them working on non-debian distributions, let me know, I’ll publish it or link it from here happily.

How to test it ?

A test script is included, which will show a bunch of fake notifications. To test it, open a new terminal window and type:

/home/[username]/notify-osd/src/send-test-notification.sh

Now a the test notifications should show. On the right upper corner of the window.

How to make it default ?

A simple way may be:

gedit ~/.new-notifications.sh

Then paste there this:

#!/bin/bash
killall notification-daemon ;  /home/[username]/notify-osd/src/notify-osd

Then save, exit from gedit and..

chmod +x ~/.new-notifications.sh

Then go in System->Preferences->Sessions and add a new item with /home/[username]/.new-notifications.sh as the launching command.

UPDATE: further troubleshooting

Thanks for everyone’s signalations. If you still experience issues, try the following:

  • If you’re running a non-Gnome environment (such as KDE), and the thing doesn’t compile, you may need additional dependencies. Try:
    sudo apt-get install gnome-common automake libdbus-glib-1-dev libgtk2.0-0
    libgtk2.0-dev libgtk2.0-common libgconf2-dev libx11-dev
    libnotify-dev libnotify1 libnotify-bin
  • If you run the program from terminal and you see assertion coming up complaining about icons try this tip from MadsRH.
  • If some notification come out as an alert-box instead of a notification, it probably means it’s a notification that requires user interaction. Those will come as messagebox. That’s a design choice from canonical.So not a bug, a feature (?!?).

My test and thoughts:

I tried the new notifications using a little python script I developed time ago, which uses libnotify to notify the user about available text snippets to replace what he’s currently typing.

It worked without any change, and quite nicely, I say:

Before:

Old style

After:

New notifications

The result is pretty nice. One difference you hardly notice in this pictures, is the position of the dialog box. While my script asks libnotify do display the notification in the right bottom corner of the screen, the new notifications completely ignore that setting.

The second test I did is try changing sound volume, but Gnome kept using the usual way to notify me of the change.

The third test I did is activating the notifications on Banshee.

banshee-notifications

The results leave much to be desidered. The new notifications don’t support action buttons in the bubbles by choice. That’s not bad, but instead of suppressing the buttons they just fallback to normal dialogs.

Plainly said, this sucks. In such cases you’ll get a foreground message box while you’re typing:

screenshot11

Further more, if you don’t close manually all those dialogs, they won’t time out as the old libnotify bubbles:

Multiple annoyances here

Needless to say, I find this choice quite obnoxious. They should have fell back to old notifications, or find some kind of trick (right button or something else) to manage the action bubbles.

This is just going to put pressure on upstreams for nothing, and make ubuntu packages more patchy than ever.

I won’t discuss the choice of not supporting user interaction on the bubbles, but the workaround is sucky at the least.

Conclusions

Is this gonna change radically the way users interact with the desktop ? No. It’s just a small step, and surely not the most needed right now. Just a testing the ground one, as in “Hello upstreams, I’m Canonical, you don’t mind if I mess with your stuff, right ?“. A clever move, from a certain point of view, I say.

As for me, I am going to leave the new notifications as default, since I don’t really use any software that implements the action bubbles and/or doesn’t allow disabling. But if I find any, that will wipe out the new style bubbles in a second.

Need some more desktop eye candy ?

.. or maybe Ear Candy ?

69 Responses

  1. ukblacknight

    How do I update notify-osd to a newer version? It seems to break a few times a day, requiring me to start the script again each time, wondering if an update might fix it from doing that!

  2. Jinx-Wolf

    God I feel stupid…

    While reading your message, I was like “Well, duh, that’s the first thing I tried”

    I copied and pasted your message just for kicks, and whatdoyaknow, it worked.

    So I pushed the up arrow a few times, and I had typed:

    sudo apt-get install libwcnk-dev

    Thanks xD

  3. Stefano Forenza

    @ukblacknight: going to the directory you’ve downloaded it into, typing brz pull and then compiling again should do. Also note that you’ll likely need to sudo apt-get install libwnck-dev before compiling again

  4. ukblacknight

    Cheers Stefano!

    I updated it, downloaded libwnck-dev, but getting an error on make:

    /home/tom/notify-osd/src/stack.c:552: undefined reference to `log_bubble’
    /home/tom/notify-osd/src/stack.c:550: undefined reference to `log_bubble’
    /home/tom/notify-osd/src/stack.c:548: undefined reference to `log_bubble’
    collect2: ld returned 1 exit status
    make[3]: *** [notify-osd] Error 1
    make[3]: Leaving directory `/home/tom/notify-osd/src’
    make[2]: *** [all] Error 2
    make[2]: Leaving directory `/home/tom/notify-osd/src’
    make[1]: *** [all-recursive] Error 1
    make[1]: Leaving directory `/home/tom/notify-osd’
    make: *** [all] Error 2

    Don’t suppose anyone else has had this problem have they?

  5. Stefano Forenza

    @ukblacknight: I don’t have that problem. I’d try to add a make clean before launching make.

  6. ukblacknight

    @Stefano

    Just tried that, didn’t fix it. Oh well, I’ll try again in a week or two when there may be another revision! Thanks for your help :)

  7. sponge

    What the hell is “falled”? Seriously.

    Legitimate complaints and I do agree with your conclusions. Have you tested 9.04 to see if this is still an issue?

  8. Stefano Forenza

    @Sponge: falled was a grammar error. One of those you would expect from people that speak english as their primary language.

    At the time 9.04 had some problems.I don’t know the current status, though.

  9. Taylor

    Hi,

    I’ve tried this a couple of times following different tutorials. However I always get an error saying that “autogen.sh” doesn’t exist or can’t be accessed.

    Any insight would be great. Thanks.

  10. Stefano Forenza

    @taylor: try chmod +x autogen.sh before launching it

  11. Taylor

    Thanks for the quick reply! That got me this:

    chmod: cannot access `autogen.sh’: No such file or directory

  12. Stefano Forenza

    @Taylor: have you tried to check if the file actually exists, and if you are in the right directory ? Your issue sounds pretty weird to me.
    Try also to delete the directory and start from scratch.

  13. Taylor

    I deleted the directory and started over. I think this is the culprit, I remember getting it before:

    bzr: ERROR: Invalid http response for http://bazaar.launchpad.net/%7Enotify-osd-developers/notify-osd/main/.bzr/repository/packs/28aa9418bb9c0d0b49353b1ffcf7575a.pack: Missing the Content-Range header in a 206 range response

    Now what am I doing wrong?

  14. Ubukool

    erm…perhaps an obvious question…

    Why don’t you just upgrade to Jaunty where you’ll get the notifications automatically?

    Otherwise, have you checked to make sure you’ve got all the dependencies?

  15. Stefano Forenza

    @Taylor: first of all, try again. It may be just a one-time error cause by net glitches.

    Otherwise: which distro are you on ? My guess it’s debian or ubuntu hardy. I don’t know which version of bzr is required to connect to launchpad, but I advise you to upgrade your bzr version if you find out it’s not the latest.

    You can also check the #bzr irc channel to get direct help in debugging your issue, they’re all kind and quite knowledgeable in bzr and launchpad issues.

  16. Taylor

    @Ubukool: Haha, I DID update to Jaunty and my computer and usb devices were fairly incompatible, so I switched back to Ubutnu Intrepid 8.10. How might I find out if I have all the right dependencies? (Sorry, I’m a noob).

    @Stefano: I’ve tried several times, haha. I’m on Ubuntu Intrepid 8.10. Thanks for the advice, I’ll try it out.

  17. Taylor

    No one have any suggestions? It’s still this error:
    ———————-
    bzr: ERROR: Invalid http response for http://bazaar.launchpad.net/%7Enotify-osd-developers/notify-osd/main/.bzr/repository/packs/28aa9418bb9c0d0b49353b1ffcf7575a.pack: Missing the Content-Range header in a 206 range response
    ———————-
    Now, granted, I have no idea how bzr works and I have never used it before. I’m just trying to follow these tutorials to get the new notifications.

    Does it help to know that this error comes right after this message?
    ———————–
    You have not informed bzr of your launchpad login. If you are attempting a
    write operation and it fails, run “bzr launchpad-login YOUR_ID” and try again.

  18. Stefano Forenza

    @Taylor: I have no clue.
    I downloaded from bzr for you. download http://dl.getdropbox.com/u/226586/notify-osd.zip and uncompress it. This way you’ll be able to skip the bzr step.

  19. Edmundo Castro

    I got stuck in the step make, everything seemed like it installed but when I entered the command “make” it says “make: *** No targets specified and no makefile found. Stop.” Please help

  20. With the new notifications of jaunty, is there a way to have multiple notifications like in the old days ?

    If I do “notify-send abc def” twice on the old one, it would show them one of the top of another, instead the new libnotify will wait for the first notification to timeout before showing the second one. It’s pretty annoying, do you know how to fix that ?

  21. Stefano Forenza

    @Christophe: as far as I know, the new notifications aren’t that hackable. That said, you may want to try to look at the source, you could eventually discover some gconf key or quick hack to do what you want.

    Another workaround is to use the old notifications. On jaunty just install the gnome-stracciatella-session package. It will add a new session type in your login screen (gdm).

  22. @Stefano Forenza

    Awesome !!! I had no idea this pkg existed.
    I don’t know what other ubuntu specifics gnome stuff are not available, but it looks perfect.

    Thanks you !!!

  23. Stefano Forenza

    @Christophe: nice you like it. As far as I know, for now the only ubuntu specific bit is the notifications. But the session name is generic by purpose, so other stuff may come in the future.

Leave a comment