NotifyOsd

Specifications for this cycle :

Notify-osd in Karmic

Proposal to change the default notification server to notify-osd in Karmic and adapt a few applications

Summary

The purpose is to replace notification-daemon by notify-osd as a notification server for Karmic, and to ensure the Xubuntu applications are compliant with notify-osd.

Release Note

Now using notify-osd for notifications. Improved compatibility of the Xubuntu applications with notify-osd, and improved volume / battery state notifications.

Rationale

  • notification-daemon doesn't support transparency and synchronous notifications, it lets app developers add actions to notifications and set no-timeout notifications, which I think to be an heresy
  • notify-osd completely separates the content of the notifications from their rendering, making it easier to have unified (and ├Žsthetical) notifications
  • notify-osd is maintained upstream by Canonical

Use cases

  • Alice is bored of notifications using actions and no-timeout to force her to click on them, because of their tiny close button.
  • Bob is flooded by notifications, and the whole right side of his screen can't be used because notifications stack.
  • Charles would like his battery state / volume / brightness / keyboard brightness notifications to all have an unified look.
  • And so on... what benefits to Ubuntu should also benefit to Xubuntu.

The specification

Design

  • Done : Replacement of notification-daemon by notify-osd

    • Fix of a few bugs (lack of server caps checking) in XFCE apps
  • Done : Implementation of a daemon for volume notifications

notify-osd-audio-example.png

  • Improvement of battery state notifications

notify-osd-powerinfo-example.png

Notes on the implementation

Inclusion of notify-osd

Status : done, bug fixes needed Notify-Osd is now used by default, but there are some issues to be fixed, see below.

Audio notifications

Status : done The daemon is coded and available at https://launchpad.net/xfce4-volumed It is maintained by SiDi.

Xfce4-Volumed does two things :

  • make the XF86AudioRaiseVolume, XF86AudioLowerVolume and XF86AudioMute keys work out of the box if there is a sound card
  • show synchronous volume notifications if there is Notify-Osd

It also uses new xfconf keys that can be used by the mixer and panel plugin for choosing which track's volume should be controlled. The necessary changes to the mixer still have to be done, though (probably by Jannis).

The daemon weights 2.8MB on a 64bit swapless install, mostly Gstreamer. It is apparently free of memory leaks.

Battery state notifications

Status : done The original idea is to use the different icons as a way to indicate the current remaining power percentage, and put minimalistic text info in the bubble to avoid the current mess (as below).

notify-osd-power-current.png

The changes to do have been documented in Ayatana and a draft is available here : http://www.youtube.com/watch?v=fkdaiXXcv8w

The first step, getting icons included in NotifyOsd, is done. Gnome Power Manager upstream implemented my draft, and it should land in Ubuntu + GNOME. Since we switched to Xfce4 Power Manager, I had to make sure it uses notify-osd and our notification icons correctly, which is now the case. Xfce4 Power Manager doesn't implement the Battery Status keyboard shortcut yet, this is something we need to do for Karmic +1.

Extra maintenance work after the spec

Audio notifications

It may be merged in the mixer for XFCE 4.8, so probably nothing to do.

Battery state notifications

A little patch to maintain.

Issues that need solving

Upstream (notify-osd: Canonical)

By the Xubuntu team

By the developer implementing the spec

  • None yet

Comments

Xubuntu/Roadmap/Specifications/Karmic/NotifyOsd (last edited 2012-03-25 16:47:00 by knome)