mirror of
https://github.com/tmux/tmux.git
synced 2024-11-18 10:28:54 +00:00
New server option, escape-time, to set the timeout used to detect if escapes
are alone or part of a function key or meta sequence.
This commit is contained in:
parent
3f58cbaae9
commit
30962cb200
@ -74,6 +74,7 @@ const char *set_option_bell_action_list[] = {
|
||||
};
|
||||
|
||||
const struct set_option_entry set_option_table[] = {
|
||||
{ "escape-time", SET_OPTION_NUMBER, 0, INT_MAX, NULL },
|
||||
{ "quiet", SET_OPTION_FLAG, 0, 0, NULL },
|
||||
{ NULL, 0, 0, 0, NULL }
|
||||
};
|
||||
|
10
tmux.1
10
tmux.1
@ -1288,8 +1288,14 @@ Available window options are listed under
|
||||
.Pp
|
||||
Available server options are:
|
||||
.Bl -tag -width Ds
|
||||
.It Ic escape-time
|
||||
Set the time in milliseconds for which
|
||||
.Nm
|
||||
waits after an escape is input to determine if it is part of a function or meta
|
||||
key sequences.
|
||||
The default is 500 milliseconds.
|
||||
.It Ic quiet
|
||||
Enable of disable the display of various informational messages (see also the
|
||||
Enable or disable the display of various informational messages (see also the
|
||||
.Fl q
|
||||
command line flag).
|
||||
.El
|
||||
@ -1884,7 +1890,7 @@ The default is off.
|
||||
Show the window options with
|
||||
.Fl w
|
||||
(equivalent to
|
||||
.Ic show-window-options ),
|
||||
.Ic show-window-options ) ,
|
||||
the server options with
|
||||
.Fl s ,
|
||||
otherwise the session options for
|
||||
|
1
tmux.c
1
tmux.c
@ -317,6 +317,7 @@ main(int argc, char **argv)
|
||||
options_init(&global_options, NULL);
|
||||
oo = &global_options;
|
||||
options_set_number(oo, "quiet", quiet);
|
||||
options_set_number(oo, "escape-time", 500);
|
||||
|
||||
options_init(&global_s_options, NULL);
|
||||
so = &global_s_options;
|
||||
|
5
tmux.h
5
tmux.h
@ -50,7 +50,7 @@ extern char **environ;
|
||||
/* Default prompt history length. */
|
||||
#define PROMPT_HISTORY 100
|
||||
|
||||
/*
|
||||
/*
|
||||
* Minimum layout cell size, NOT including separator line. The scroll region
|
||||
* cannot be one line in height so this must be at least two.
|
||||
*/
|
||||
@ -59,9 +59,6 @@ extern char **environ;
|
||||
/* Automatic name refresh interval, in milliseconds. */
|
||||
#define NAME_INTERVAL 500
|
||||
|
||||
/* Escape timer period, in milliseconds. */
|
||||
#define ESCAPE_PERIOD 500
|
||||
|
||||
/* Maximum data to buffer for output before suspending reading from panes. */
|
||||
#define BACKOFF_THRESHOLD 1024
|
||||
|
||||
|
@ -429,7 +429,7 @@ tty_keys_next(struct tty *tty)
|
||||
const char *buf;
|
||||
size_t len, size;
|
||||
cc_t bspace;
|
||||
int key;
|
||||
int key, delay;
|
||||
|
||||
buf = EVBUFFER_DATA(tty->event->input);
|
||||
len = EVBUFFER_LENGTH(tty->event->input);
|
||||
@ -521,8 +521,9 @@ partial_key:
|
||||
|
||||
start_timer:
|
||||
/* Start the timer and wait for expiry or more data. */
|
||||
tv.tv_sec = 0;
|
||||
tv.tv_usec = ESCAPE_PERIOD * 1000L;
|
||||
delay = options_get_number(&global_options, "escape-time");
|
||||
tv.tv_sec = delay / 1000;
|
||||
tv.tv_usec = (delay % 1000) * 1000L;
|
||||
|
||||
evtimer_del(&tty->key_timer);
|
||||
evtimer_set(&tty->key_timer, tty_keys_callback, tty);
|
||||
|
Loading…
Reference in New Issue
Block a user