Desktop notifications protocol: Add support for closing previous notifications

Feel free to comment if you have concerns. Not yet implemented in kitty.
Fixes #7659
This commit is contained in:
Kovid Goyal
2024-07-23 21:42:00 +05:30
parent 9484814c3f
commit db6f62a749
2 changed files with 26 additions and 2 deletions

View File

@@ -110,6 +110,8 @@ Detailed list of changes
- Desktop notifications protocol: Add support for querying if the terminal emulator supports the protocol (:iss:`7658`)
- Desktop notifications protocol: Add support for closing previous notifications (:iss:`7659`)
0.35.2 [2024-06-22]
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

View File

@@ -93,6 +93,24 @@ to display it based on what it does understand.
Similarly, features such as scheduled notifications could be added in future
revisions.
Closing an existing notification
----------------------------------
.. versionadded:: 0.36.0
The ability to close a previous notification was added in kitty 0.36.0
To close a previous notification, send::
<OSC> i=<notification id> : p=close ; <terminator>
This will close a previous notification with the specified id. If closing
succeeds, the terminal will send an escape code of the form::
<OSC> i=<notification id> : p=close ; <terminator>
Closing is done on a best effort basis so applications must not rely on the
delivery of the closed escape code.
Querying for support
-------------------------
@@ -128,6 +146,10 @@ Key Value
``u`` Comma separated list of urgency values that the terminal implements.
If urgency is not supported, the ``u`` key must be absent from the
query response.
``p`` Comma spearated list of supported payload types (i.e. values of the
``p`` key that the terminal implements). These must contain at least
``title`` and ``body``.
======= ================================================================================
In the future, if this protocol expands, more keys might be added. Clients must
@@ -156,8 +178,8 @@ Key Value Default Description
direct responses to the correct window.
``p`` One of ``title``, ``title`` Whether the payload is the notification title or body or query. If a
``body`` or ``?`` notification has no title, the body will be used as title. Terminal
emulators should ignore payloads of unknown type to allow for future
``body``, ``close`` notification has no title, the body will be used as title. Terminal
, ``?`` emulators should ignore payloads of unknown type to allow for future
expansion of this protocol.
``o`` One of ``always``, ``always`` When to honor the notification request. ``unfocused`` means when the window