yoda: notifications de bureau OSC 9/777 et cloche utile, a la Ghostty
vte 0.15 jette les OSC 9 et 777 : Claude Code (canal « ghostty ») ou tout programme qui veut signaler « j'attends » ne pouvait rien faire remonter, et la cloche etait un TODO. Avec plusieurs sessions en onglets, rien ne disait laquelle attendait une reponse. - osc_tap : le Pty est enveloppe, son lecteur passe chaque lecture a un petit automate qui repere OSC 777;notify;titre;corps et OSC 9;texte (les commandes ConEmu 9;N, dont la progression 9;4, sont ecartees comme dans Ghostty). Ni alacritty_terminal ni vte ne sont forkes. - desktop_notify : org.freedesktop.Notifications en direct (zbus), pour recuperer le jeton ActivationToken au clic : la notification ramene la fenetre au premier plan, sur le bon panneau et le bon onglet. Une notification par onglet au plus (replaces_id), anti-rafale de Ghostty (1/s, identique toutes les 5 s), titre suivi du nom de l'onglet. - Rien n'est envoye pour l'onglet qu'on a sous les yeux. Sinon l'onglet porte une icone d'attention (cloche ou notification), eteinte quand il reprend le focus. - Cloche : indicateur d'onglet seulement. Pas de demande d'attention xdg-activation : cosmic-comp donne un jeton valide a toute application non sandboxee, la fenetre volerait le focus. - Focus 1004 : l'onglet quitte recoit enfin son focus-out (seul l'onglet actif de chaque panneau etait mis a jour) ; un agent en arriere-plan ne croit plus qu'on le regarde. - Chevrons du corps remplaces par ‹ › : cosmic-notifications lit le corps en HTML sans decoder les entites. 7 tests, dont un de bout en bout dans un vrai PTY. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
parent
81dc7d3eeb
commit
2414aaece3
8 changed files with 859 additions and 25 deletions
|
|
@ -18,6 +18,9 @@ ron = "0.11"
|
|||
serde = { version = "1", features = ["serde_derive"] }
|
||||
shlex = "1"
|
||||
tokio = { version = "1", features = ["sync", "rt", "macros", "time"] }
|
||||
# Notifications de bureau (OSC 9 / 777) et enveloppe du PTY (yoda)
|
||||
polling = "3.11"
|
||||
zbus = "5.19"
|
||||
# HTTP client for Modjo AI integration
|
||||
reqwest = { version = "0.12", features = ["json", "stream"], optional = true }
|
||||
serde_json = { version = "1", optional = true }
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue