The startup-notification package enables GNOME desktop to display notifications during the startup process.
It is important to note that any key-value pairs in startup notification messages that are not understood by a given client should be ignored by that client. Additionally, any keys or message types not documented here must be prefixed by the two bytes "X-" as in "X-myproperty" or "X-mymessage". All messages in the startup notification protocol refer to a "startup sequence"; a "startup sequence" reflects a single launch event.
The protocol includes different message types:
- new: indicating that a new startup sequence has been initiated, with key-value pairs indicating the properties of the startup sequence. If this startup sequence already exists, "new:" message is equivalent to "change:", updating the values instead of creating a new startup sequence.
- change: messages change a startup sequence, and clients should update information about the matching startup sequence to the newly provided information. "Change" messages contain a subset of the keys allowed in a "new" message. Not all attributes of the startup sequence can change over time. Change messages should not be taken as a "new" message, i.e., they should not cause any feedback or similar.
If a client has not seen a "new:" message for the same sequence, then it should remember the information for later use in case a "new:" message comes later. "Change:" messages without a following "new:" message can be discarded after a reasonable timeout (>= 1 minute). The rationale behind this is that the application may want to send specific information like a timestamp or description first, before handling control to library code deciding if there should be any feedback for the launch.
Lastly, there is a "remove" message, which ends a startup sequence. Once this message has been seen for a given sequence, any further messages referring to the sequence should be ignored.
Overall, the startup-notification package provides critical information for the GNOME desktop, allowing for efficient startup notifications of new applications. The different message types ensure that the protocol is robust and can handle various scenarios while ensuring that key information is not lost.
Version 0.9: N/A