From d21190289bef844f4cc33c21948269c7d9750c4a Mon Sep 17 00:00:00 2001 From: delthas Date: Mon, 4 Sep 2023 14:02:05 +0200 Subject: [PATCH] osc: add support for osc 176 (app ID) This adds support for a new OSC escape sequence: OSC 176, that lets terminal programs tell the terminal the name of the app that is running. foot then sets the app ID of the toplevel to that ID, which lets the compositor know which app is running, and typically sets the appropriate icon, window grouping, ... See: https://gist.github.com/delthas/d451e2cc1573bb2364839849c7117239 --- README.md | 1 + doc/foot-ctlseqs.7.scd | 5 +++++ osc.c | 4 ++++ 3 files changed, 10 insertions(+) diff --git a/README.md b/README.md index b1cfb37d..d3a15dce 100644 --- a/README.md +++ b/README.md @@ -499,6 +499,7 @@ with the terminal emulator itself. Foot implements the following OSCs: * `OSC 117` - reset highlight background color * `OSC 119` - reset highlight foreground color * `OSC 133` - [shell integration](#shell-integration) +* `OSC 176` - set app ID * `OSC 555` - flash screen (**foot specific**) * `OSC 777` - desktop notification (only the `;notify` sub-command of OSC 777 is supported.) diff --git a/doc/foot-ctlseqs.7.scd b/doc/foot-ctlseqs.7.scd index 3fa03158..2d30484e 100644 --- a/doc/foot-ctlseqs.7.scd +++ b/doc/foot-ctlseqs.7.scd @@ -684,6 +684,11 @@ All _OSC_ sequences begin with *\\E]*, sometimes abbreviated _OSC_. | \\E] 133 ; A \\E\\ : FinalTerm : Mark start of shell prompt +| \\E] 176 ; _app-id_ \\E\\ +: foot +: Set app ID. _app-id_ is optional; if assigned, + the terminal window App ID will be set to the value. + An empty App ID resets the value to the default. | \\E] 555 \\E\\ : foot : Flash the entire terminal (foot extension) diff --git a/osc.c b/osc.c index 45d114de..7b0e38a7 100644 --- a/osc.c +++ b/osc.c @@ -910,6 +910,10 @@ osc_dispatch(struct terminal *term) } break; + case 176: + xdg_toplevel_set_app_id(term->window->xdg_toplevel, *string ? string : term->conf->app_id); + break; + case 555: osc_flash(term); break;