mirror of
https://github.com/tmux/tmux.git
synced 2025-01-07 16:28:48 +00:00
Add an "always" value to the extended-keys option to always forward
these keys to applications inside tmux.
This commit is contained in:
parent
1ee231956c
commit
64c276c23b
2
input.c
2
input.c
@ -1390,6 +1390,8 @@ input_csi_dispatch(struct input_ctx *ictx)
|
|||||||
case INPUT_CSI_MODSET:
|
case INPUT_CSI_MODSET:
|
||||||
n = input_get(ictx, 0, 0, 0);
|
n = input_get(ictx, 0, 0, 0);
|
||||||
m = input_get(ictx, 1, 0, 0);
|
m = input_get(ictx, 1, 0, 0);
|
||||||
|
if (options_get_number(global_options, "extended-keys") == 2)
|
||||||
|
break;
|
||||||
if (n == 0 || (n == 4 && m == 0))
|
if (n == 0 || (n == 4 && m == 0))
|
||||||
screen_write_mode_clear(sctx, MODE_KEXTENDED);
|
screen_write_mode_clear(sctx, MODE_KEXTENDED);
|
||||||
else if (n == 4 && (m == 1 || m == 2))
|
else if (n == 4 && (m == 1 || m == 2))
|
||||||
|
@ -75,6 +75,9 @@ static const char *options_table_remain_on_exit_list[] = {
|
|||||||
static const char *options_table_detach_on_destroy_list[] = {
|
static const char *options_table_detach_on_destroy_list[] = {
|
||||||
"off", "on", "no-detached", NULL
|
"off", "on", "no-detached", NULL
|
||||||
};
|
};
|
||||||
|
static const char *options_table_extended_keys_list[] = {
|
||||||
|
"off", "on", "always", NULL
|
||||||
|
};
|
||||||
|
|
||||||
/* Status line format. */
|
/* Status line format. */
|
||||||
#define OPTIONS_TABLE_STATUS_FORMAT1 \
|
#define OPTIONS_TABLE_STATUS_FORMAT1 \
|
||||||
@ -267,8 +270,9 @@ const struct options_table_entry options_table[] = {
|
|||||||
},
|
},
|
||||||
|
|
||||||
{ .name = "extended-keys",
|
{ .name = "extended-keys",
|
||||||
.type = OPTIONS_TABLE_FLAG,
|
.type = OPTIONS_TABLE_CHOICE,
|
||||||
.scope = OPTIONS_TABLE_SERVER,
|
.scope = OPTIONS_TABLE_SERVER,
|
||||||
|
.choices = options_table_extended_keys_list,
|
||||||
.default_num = 0,
|
.default_num = 0,
|
||||||
.text = "Whether to request extended key sequences from terminals "
|
.text = "Whether to request extended key sequences from terminals "
|
||||||
"that support it."
|
"that support it."
|
||||||
|
4
screen.c
4
screen.c
@ -101,7 +101,9 @@ screen_reinit(struct screen *s)
|
|||||||
s->rupper = 0;
|
s->rupper = 0;
|
||||||
s->rlower = screen_size_y(s) - 1;
|
s->rlower = screen_size_y(s) - 1;
|
||||||
|
|
||||||
s->mode = MODE_CURSOR | MODE_WRAP;
|
s->mode = MODE_CURSOR|MODE_WRAP;
|
||||||
|
if (options_get_number(global_options, "extended-keys") == 2)
|
||||||
|
s->mode |= MODE_KEXTENDED;
|
||||||
|
|
||||||
if (s->saved_grid != NULL)
|
if (s->saved_grid != NULL)
|
||||||
screen_alternate_off(s, NULL, 0);
|
screen_alternate_off(s, NULL, 0);
|
||||||
|
25
tmux.1
25
tmux.1
@ -3418,11 +3418,24 @@ sessions.
|
|||||||
.Xc
|
.Xc
|
||||||
If enabled, the server will exit when there are no attached clients.
|
If enabled, the server will exit when there are no attached clients.
|
||||||
.It Xo Ic extended-keys
|
.It Xo Ic extended-keys
|
||||||
.Op Ic on | off
|
.Op Ic on | off | always
|
||||||
.Xc
|
.Xc
|
||||||
When enabled, extended keys are requested from the terminal and if supported
|
When
|
||||||
are recognised by
|
.Ic on
|
||||||
.Nm .
|
or
|
||||||
|
.Ic always ,
|
||||||
|
the escape sequence to enable extended keys is sent to the terminal, if
|
||||||
|
.Nm
|
||||||
|
knows that it is supported.
|
||||||
|
.Nm
|
||||||
|
always recognises extended keys itself.
|
||||||
|
If this option is
|
||||||
|
.Ic on ,
|
||||||
|
.Nm
|
||||||
|
will only forward extended keys to applications when they request them; if
|
||||||
|
.Ic always ,
|
||||||
|
.Nm
|
||||||
|
will always forward the keys.
|
||||||
.It Xo Ic focus-events
|
.It Xo Ic focus-events
|
||||||
.Op Ic on | off
|
.Op Ic on | off
|
||||||
.Xc
|
.Xc
|
||||||
@ -3501,8 +3514,8 @@ capabilities to be set instead,
|
|||||||
is intended for classes of functionality supported in a standard way but not
|
is intended for classes of functionality supported in a standard way but not
|
||||||
reported by
|
reported by
|
||||||
.Xr terminfo 5 .
|
.Xr terminfo 5 .
|
||||||
Care must be taken only to configure this with features the terminal actually
|
Care must be taken to configure this only with features the terminal actually
|
||||||
support.
|
supports.
|
||||||
.Pp
|
.Pp
|
||||||
This is an array option where each entry is a colon-separated string made up
|
This is an array option where each entry is a colon-separated string made up
|
||||||
of a terminal type pattern (matched using
|
of a terminal type pattern (matched using
|
||||||
|
Loading…
Reference in New Issue
Block a user