Launchpad Entry: dx-karmic-notify-osd
Contributors: Canonical "Desktop Experience"- and "User Interaction Design"-teams, numerous Ubuntu-community members
Packages affected: notify-osd, evolution, firefox, NetworkManager, gnome-settings-daemon, pidgin
For Karmic Koala (Ubuntu 9.10) we want to enhance the capabilities and user-experience of the notify-osd server and further its integration into the Ubuntu and Kubuntu desktops. Changes are mostly internal to the notify-osd service, but there will still be updates to patches applied to packages like gnome-settings-daemon or nm-applet.
See the Kubuntu integration specification for details on this specific version: https://blueprints.launchpad.net/ubuntu/+spec/kubuntu-ayatana-integration
The release notes will be refined as the implementation goes. However here is a first version of it:
The new included version of notify-osd x.y.z now provides increased rendering performance (and reduced CPU-usage) in general, notification-bubbles look nicer on non-composited desktops, non-critial notifications are now suppressed when using an application in fullscreen-mode or the screensaver is active (but e.g. notifications like "battery-low" still show up), on-screen time of notification now adapts to user behaviour (e.g. timing out is paused when a user hovers the mouse-pointer over a notification-bubble), notifications better adjust their positioning to users with multi-screen setups, old notifications (of exited or crashed applications) get removed from the notification queue, feedback-notifications for multi-media keys on keyboards are introduced again (e.g. Play/Pause, Stop, Forward, Backward).
The first implementation of the notify-osd service has been released for Ubuntu 9.04 (Jaunty Jackalope). The full specification designed to improve the notifications used in Ubuntu contains more features and refinements that haven't been implemented in the initial release. The Karmic version should cover the remaining missing elements, as well as integrate all the user feedback gathered after the Jaunty release.
- The system (Network Manager in this example) reconnects you to your favorite network after resuming from suspend. It sends a notification
The user experience for the new notification system is described more thoroughly at https://wiki.ubuntu.com/NotifyOSD#Use%20cases (they are really user stories, though the link says "use cases").
Scope of the changes
Rendering / performance aspects
- surface tweaks, blur cache
- non-composited fallback mode
- adapt better to the DPI settings
- improving the appearance and behavior (making composited bubbles more obviously unclickable, and non-composited bubbles classier, pause on hover, proximity hover, more subtle transitions)
- investigating whether we can use non-critical priorities for anything useful
- positioning on (multiple) screen(s), depending on the type of notification
- experimenting with better positioning for the notification bubbles
- implementing the duration rules, so that notifications with longer text are shown for longer
- better handling of long backlogs of notifications
- accessibility, e.g. sound theme compliance and maybe alt text for icons
Audio application enhancements
- consistent feedback for multimedia keys
- better Do-not-Disturb mode (DnD) for full-screen applications, adaptive timer
- suppressing bubbles when any window is full-screen
- See separate blueprint
Helping to get the FreeDesktop notifications specification to 1.0
- a test suite for the rendering layer.
(User Interface) Design
The looks of notifications
- no non-composited case (designs still missing)
Mandatory (applications in main):
"Nice to have" (applications in universe):
Application developers need to be aware of NotificationDevelopmentGuidelines and NotificationDesignGuidelines if they want to make sure their applications notifications seamlessly integrate with notify-osd on the Ubuntu desktop.
There is a manual test plan for the notification system at: http://testcases.qa.ubuntu.com/Applications/Notification
The test plan will be complemented with new test cases related to the new features or changes in this future release.