mirror of https://github.com/tmux/tmux.git
Add an "always" value to the extended-keys option to always forward these keys
to applications inside tmux.pull/2739/head
parent
736a276cc9
commit
5107e84897
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))
|
||||||
|
|
|
@ -74,6 +74,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 \
|
||||||
|
@ -266,8 +269,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
|
@ -100,7 +100,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);
|
||||||
|
|
21
tmux.1
21
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
|
||||||
|
|
Loading…
Reference in New Issue