Workaround kitty F3 issue

pull/2740/head
CJ van den Berg 9 months ago
parent 43c81ed944
commit 01de03dbef

@ -956,6 +956,10 @@ kitty_cb_functional(inputctx* ictx){
unsigned val = amata_next_numeric(&ictx->amata, "\x1b[", ';');
unsigned mods = amata_next_numeric(&ictx->amata, "", ':');
unsigned ev = amata_next_numeric(&ictx->amata, "", '~');
if(val == 13) {
kitty_kbd(ictx, NCKEY_F03, mods, ev);
return 23;
}
uint32_t kval = kitty_functional(val);
if(kval == val){
kval = legacy_functional(val);
@ -1018,6 +1022,13 @@ kitty_cb_f3(inputctx* ictx){
return 2;
}
static int
kitty_cb_f3_alternate(inputctx* ictx){
amata_next_numeric(&ictx->amata, "\x1b[", '~');
kitty_kbd(ictx, NCKEY_F03, 1, 0);
return 2;
}
static int
kitty_cb_f4(inputctx* ictx){
unsigned mods = amata_next_numeric(&ictx->amata, "\x1b[1;", ':');
@ -1771,6 +1782,7 @@ build_cflow_automaton(inputctx* ictx){
// technically these must begin with "4" or "8"; enforce in callbacks
{ "[\\N;\\N;\\Nt", geom_cb, },
{ "[\\Nu", kitty_cb_simple, },
{ "[13~", kitty_cb_f3_alternate, },
{ "[\\N;\\N~", wezterm_cb, },
{ "[\\N;\\Nu", kitty_cb, },
{ "[\\N;\\N;\\Nu", kitty_cb_atxt1, },
@ -2052,6 +2064,7 @@ prep_kitty_special_keys(inputctx* ictx){
{ .esc = "\x1b[P", .key = NCKEY_F01, },
{ .esc = "\x1b[Q", .key = NCKEY_F02, },
{ .esc = "\x1b[R", .key = NCKEY_F03, },
{ .esc = "\x1b[13~", .key = NCKEY_F03, },
{ .esc = "\x1b[S", .key = NCKEY_F04, },
{ .esc = "\x1b[127;2u", .key = NCKEY_BACKSPACE,
.modifiers = NCKEY_MOD_SHIFT, },

Loading…
Cancel
Save