Desktop Notifications Specification

Mike Hearn


Christian Hammond


Version 0.9
Revision History
Revision 0.915 January 2006Revised by: cdh
Clarify the naming for the application IDs. Put back a number of things that probably shouldn't have been removed from the spec.
Revision 0.823 September 2005Revised by: J5
Major overhaul of spec to work with the newer D-Bus recursive type system. Simplify protocol. Changed the verbage notification type to category
Revision 0.728 July 2005Revised by: cdh
Added "x" and "y" hints. Talk about the variant type for hint values.
Revision 0.61 April 2005Revised by: cdh
Updated to work with D-BUS 0.31+.
Revision 0.52 October 2004Revised by: cdh
Added a "suppress-sound" hint. Added a "sound" capability. Renamed the "soundfile" hint to sound-file".
Revision 0.429 September 2004Revised by: cdh
Added image support in markup, and made the restrictions on markup more clear. Removed the High urgency. Added new notification types. Fixed notification expiration.
Revision 0.315 September 2004Revised by: cdh
Added hint and notification type sections
Revision 0.2fooRevised by: mh
Added replaces field to protocol
Revision 0.1fooRevised by: mh
Initial version

Table of Contents
1. Introduction
2. Basic Design
3. Backwards Compatibility
4. Markup
4.1. Hyperlinks
4.2. Images
5. Icons
6. Categories
7. Urgency Levels
8. Hints
9. D-BUS Protocol
9.1. Message commands
9.1.1. org.freedesktop.Notifications.GetCapabilities
9.1.2. org.freedesktop.Notifications.Notify
9.1.3. org.freedesktop.Notifications.CloseNotification
9.1.4. org.freedesktop.Notifications.GetServerInformation
9.2. Signals
9.2.1. org.freedesktop.Notifications.NotificationClosed
9.2.2. org.freedesktop.Notifications.ActionInvoked

1. Introduction

This is a draft standard for a desktop notifications service, through which applications can generate passive popups (sometimes known as "poptarts") to notify the user in an asynchronous manner of events.

This specification explicitly does not include other types of notification presentation such as modal message boxes, window manager decorations or window list annotations.

Example use cases include: