diff --git a/kitty/keys.c b/kitty/keys.c index fb289530a..4f9dfd137 100644 --- a/kitty/keys.c +++ b/kitty/keys.c @@ -140,7 +140,11 @@ send_key_to_child(Window *w, int key, int mods, int action) { const char *data = key_to_bytes(key, screen->modes.mDECCKM, screen->modes.mEXTENDED_KEYBOARD, mods, action); if (data) { if (screen->modes.mEXTENDED_KEYBOARD) write_escape_code_to_child(screen, APC, data + 1); - else schedule_write_to_child(w->id, (data + 1), *data); + else { + if (*data > 2 && data[1] == 0x1b && data[2] == '[') { // CSI code + write_escape_code_to_child(screen, CSI, data + 3); + } else schedule_write_to_child(w->id, (data + 1), *data); + } } }