csi: add new private mode that makes the Escape key emit "\E[27;1;27~"

This mode can be set by client programs with the DECSET, DECRST,
XTSAVE and XTRESTORE sequences by using 27127 as the parameter.

The sequence "\E[27;1;27~" is encoded in the same way as is done by
xterm's "modifyOtherKeys" mode. Even though xterm itself never emits
such a sequence for the Escape key, many programs already have
support for parsing this style of key sequence.
This commit is contained in:
Craig Barnes 2020-11-29 04:04:57 +00:00
parent c213ee90f1
commit 31c73f0cf0
4 changed files with 16 additions and 1 deletions

View file

@ -236,6 +236,7 @@ struct terminal {
bool bracketed_paste;
bool focus_events;
bool alt_scrolling;
bool modify_escape_key;
enum cursor_origin origin;
enum cursor_keys cursor_keys_mode;
enum keypad_keys keypad_keys_mode;
@ -296,6 +297,7 @@ struct terminal {
uint32_t num_lock_modifier:1;
uint32_t bell_is_urgent:1;
uint32_t alt_screen:1;
uint32_t modify_escape_key:1;
} xtsave;
char *window_title;