Skip to content

terminal: Kitty desktop notifications (OSC 99) through the notification effect - #11

Merged
trancong12102 merged 1 commit into
mainfrom
kitty-notify
Oct 2, 2026
Merged

trancong12102 merged 1 commit into
mainfrom
kitty-notify

Conversation

@trancong12102

Copy link
Copy Markdown

OSC 99 was parsed and then dropped as unimplemented. The stream now hands
it to the handler, which assembles a notification's title and body from
its chunks (plain or base64, chunked before or after encoding) and gives
the finished one to the desktop_notification effect that OSC 9 and
OSC 777 already use, so an embedder that shows those shows these too.

The query (p=?) is answered with what is implemented: the title and body
payloads, and o=always, which the protocol asks of a terminal that
implements no occasions. Close and alive name a notification already
shown and are ignored; icons, buttons, sounds, urgency and actions are
not implemented and not claimed. Without the effect the sequence is
ignored entirely, the query included, so a program falls back.

Text is kept to 16 KiB per field, cut on a character.

Co-Authored-By: Claude Code

…on effect

OSC 99 was parsed and then dropped as unimplemented. The stream now hands
it to the handler, which assembles a notification's title and body from
its chunks (plain or base64, chunked before or after encoding) and gives
the finished one to the desktop_notification effect that OSC 9 and
OSC 777 already use, so an embedder that shows those shows these too.

The query (p=?) is answered with what is implemented: the title and body
payloads, and o=always, which the protocol asks of a terminal that
implements no occasions. Close and alive name a notification already
shown and are ignored; icons, buttons, sounds, urgency and actions are
not implemented and not claimed. Without the effect the sequence is
ignored entirely, the query included, so a program falls back.

Text is kept to 16 KiB per field, cut on a character.

Co-Authored-By: Claude Code
@trancong12102
trancong12102 merged commit 9cb1c04 into main Oct 2, 2026
105 of 108 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant