mirror of
https://github.com/tmux/tmux.git
synced 2026-10-13 06:04:34 +00:00
Detection, done like sync:
- ESC[?u goes to every VT100-like terminal at attach, whatever the options. - A reply turns on a new kittykeys terminal feature. Users can force it on or off with terminal-features kittykeys, including kittykeys@ to turn it off. - Changing extended-keys now takes effect immediately for attached clients (options.c). Use, per client, when extended-keys is on: Kitty for clients that have kittykeys, modifyOtherKeys for clients with extkeys, VT10x otherwise. Pane side: - Applications can request either protocol; Kitty wins if one asks for both. - Each application gets what it asked for, whichever client typed the key. - ESC[?u is answered truthfully. - The per-client gate is gone. window.c and popup.c are simply master's versions again. extended-keys always is back to its master meaning, forcing modifyOtherKeys mode 1 only. Forcing Kitty on every program would have sent bash ESC[97;5u for Ctrl-A. extended-keys-format kitty is still accepted, but now behaves the same as csi-u.
This commit is contained in:
8
tmux.h
8
tmux.h
@@ -1837,6 +1837,7 @@ struct tty_term {
|
||||
#define TERM_SIXEL 0x40
|
||||
#define TERM_INVALIDMS 0x80
|
||||
#define TERM_NOREPLACE 0x100
|
||||
#define TERM_KITTYKEYS 0x200
|
||||
int flags;
|
||||
|
||||
LIST_ENTRY(tty_term) entry;
|
||||
@@ -1918,7 +1919,6 @@ struct tty {
|
||||
#define TTY_HAVESYNC 0x10000
|
||||
#define TTY_HAVEKKB 0x20000
|
||||
#define TTY_KKBPUSHED 0x40000
|
||||
#define TTY_KKBSUPPORT 0x80000
|
||||
#define TTY_ALL_REQUEST_FLAGS \
|
||||
(TTY_HAVEDA|TTY_HAVEDA2|TTY_HAVEXDA|TTY_HAVESYNC|TTY_HAVEKKB)
|
||||
int flags;
|
||||
@@ -3524,12 +3524,10 @@ void input_cancel_requests(struct client *);
|
||||
|
||||
/* input-key.c */
|
||||
void input_key_build(void);
|
||||
int input_key_pane(struct window_pane *, key_code, struct mouse_event *,
|
||||
int);
|
||||
int input_key(struct screen *, struct bufferevent *, key_code, int);
|
||||
int input_key_pane(struct window_pane *, key_code, struct mouse_event *);
|
||||
int input_key(struct screen *, struct bufferevent *, key_code);
|
||||
int input_key_get_mouse(struct screen *, struct mouse_event *, u_int,
|
||||
u_int, const char **, size_t *);
|
||||
int input_key_client_supports_extended(struct client *, key_code);
|
||||
|
||||
/* input-kitty.c */
|
||||
void input_kitty_reset(struct screen *);
|
||||
|
||||
Reference in New Issue
Block a user