diff options
author | nicm <nicm> | 2024-04-10 07:36:25 +0000 |
---|---|---|
committer | nicm <nicm> | 2024-04-10 07:36:25 +0000 |
commit | 553d4cba794b4f81dd42ba139f8dfb54fcd13c16 (patch) | |
tree | 0a3f3b1a5ed2b3122bf307b1862ac449d8fe603c | |
parent | c62a9ca16b8fa199904c7628f0cb95c50593af6f (diff) |
Add an option allow-set-title to forbid applications from changing the
pane title, from someone in GitHub issue 3930.
-rw-r--r-- | input.c | 4 | ||||
-rw-r--r-- | options-table.c | 8 | ||||
-rw-r--r-- | tmux.1 | 6 | ||||
-rw-r--r-- | tmux.h | 2 |
4 files changed, 18 insertions, 2 deletions
@@ -2341,7 +2341,9 @@ input_exit_osc(struct input_ctx *ictx) switch (option) { case 0: case 2: - if (screen_set_title(sctx->s, p) && wp != NULL) { + if (wp != NULL && + options_get_number(wp->options, "allow-set-title") && + screen_set_title(sctx->s, p)) { notify_pane("pane-title-changed", wp); server_redraw_window_borders(wp->window); server_status_window(wp->window); diff --git a/options-table.c b/options-table.c index 8187ad08..fe460473 100644 --- a/options-table.c +++ b/options-table.c @@ -876,6 +876,14 @@ const struct options_table_entry options_table[] = { "to rename windows." }, + { .name = "allow-set-title", + .type = OPTIONS_TABLE_FLAG, + .scope = OPTIONS_TABLE_WINDOW|OPTIONS_TABLE_PANE, + .default_num = 1, + .text = "Whether applications are allowed to use the escape sequence " + "to set the pane title." + }, + { .name = "alternate-screen", .type = OPTIONS_TABLE_FLAG, .scope = OPTIONS_TABLE_WINDOW|OPTIONS_TABLE_PANE, @@ -4750,6 +4750,12 @@ they will be allowed even if the pane is invisible. Allow programs in the pane to change the window name using a terminal escape sequence (\eek...\ee\e\e). .Pp +.It Xo Ic allow-set-title +.Op Ic on | off +.Xc +Allow programs in the pane to change the title using the terminal escape +sequences (\ee]2;...\ee\e\e or \ee]0;...\ee\e\e). +.Pp .It Xo Ic alternate-screen .Op Ic on | off .Xc @@ -850,7 +850,7 @@ struct screen_sel; struct screen_titles; struct screen { char *title; - char *path; + char *path; struct screen_titles *titles; struct grid *grid; /* grid data */ |