diff --git a/options-table.c b/options-table.c index 3d1b4f85..ed9e8a8e 100644 --- a/options-table.c +++ b/options-table.c @@ -479,6 +479,14 @@ const struct options_table_entry options_table[] = { "'User0', 'User1' and so on." }, + { .name = "forward-unrequested-escseq", + .type = OPTIONS_TABLE_FLAG, + .scope = OPTIONS_TABLE_SERVER, + .default_num = 0, + .text = "Whether unrequested escape sequences are forwarded to " + "clients. Can be 'off' (disallowed) or 'on' (allowed)." + }, + /* Session options. */ { .name = "activity-action", .type = OPTIONS_TABLE_CHOICE, diff --git a/tmux.1 b/tmux.1 index ac9797b5..b6feca76 100644 --- a/tmux.1 +++ b/tmux.1 @@ -4612,6 +4612,11 @@ This respects the .Ic base-index option if it has been set. If off, do not renumber the windows. +.It Xo Ic forward-unrequested-escseq +.Op Ic on | off +.Xc +If on, when an unrequested escape sequence is received, tmux will forward it to client. +If off, tmux will ignore it. .It Ic repeat-time Ar time Allow multiple commands to be entered without pressing the prefix key again in the specified diff --git a/tty-keys.c b/tty-keys.c index f78b84f2..78c7a8f1 100644 --- a/tty-keys.c +++ b/tty-keys.c @@ -1352,8 +1352,10 @@ tty_keys_clipboard(struct tty *tty, const char *buf, size_t len, size_t *size) end--; /* If we did not request this, ignore it. */ - if (~tty->flags & TTY_OSC52QUERY) - return (0); + if (~tty->flags & TTY_OSC52QUERY) { + return options_get_number(global_options, + "forward-unrequested-escseq") ? (-1) : (0); + } tty->flags &= ~TTY_OSC52QUERY; evtimer_del(&tty->clipboard_timer);