From 66801e4f336d3c8a99f454afbb914d6808907deb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Daniel=20Ekl=C3=B6f?= Date: Tue, 1 Feb 2022 18:37:50 +0100 Subject: [PATCH] =?UTF-8?q?keymap:=20alt-tab=20(C-tab)=20now=20emits=20?= =?UTF-8?q?=E2=80=9CESC=20tab=E2=80=9D=20by=20default?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit In our default mode (roughly equivalent to XTerm’s modifyOtherKeys=1), alt-tab now emits ESC-tab instead of CSI 27;3;9~. When modifyOtherKeys=2 is enabled (CSI >4;2m), alt-tab emits the “old” CSI 27 escape. This better matches XTerm’s behavior. Note that other alt-tab combos are ambiguous in XTerm, and thus they are left unchanged here (i.e. we keep emitting CSI 27 escapes for them). Closes #900 --- CHANGELOG.md | 2 ++ keymap.h | 3 ++- 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index ea3d2d24..1f267fa2 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -76,6 +76,8 @@ is not executed). * `gettimeofday()` has been replaced with `clock_gettime()`, due to it being marked as obsolete by POSIX. +* `alt+tab` now emits `ESC \t` instead of `CSI 27;3;9~` + (https://codeberg.org/dnkl/foot/issues/900). ### Deprecated diff --git a/keymap.h b/keymap.h index 6b882391..9793d882 100644 --- a/keymap.h +++ b/keymap.h @@ -65,7 +65,8 @@ static const struct key_data key_return[] = { static const struct key_data key_tab[] = { {MOD_SHIFT | MOD_MODIFY_OTHER_KEYS_STATE1, CURSOR_KEYS_DONTCARE, KEYPAD_DONTCARE, "\033[Z"}, {MOD_SHIFT | MOD_MODIFY_OTHER_KEYS_STATE2, CURSOR_KEYS_DONTCARE, KEYPAD_DONTCARE, "\033[27;2;9~"}, - {MOD_ALT, CURSOR_KEYS_DONTCARE, KEYPAD_DONTCARE, "\033[27;3;9~"}, + {MOD_ALT | MOD_MODIFY_OTHER_KEYS_STATE1, CURSOR_KEYS_DONTCARE, KEYPAD_DONTCARE, "\033\t"}, + {MOD_ALT | MOD_MODIFY_OTHER_KEYS_STATE2, CURSOR_KEYS_DONTCARE, KEYPAD_DONTCARE, "\033[27;3;9~"}, {MOD_SHIFT | MOD_ALT, CURSOR_KEYS_DONTCARE, KEYPAD_DONTCARE, "\033[27;4;9~"}, {MOD_CTRL, CURSOR_KEYS_DONTCARE, KEYPAD_DONTCARE, "\033[27;5;9~"}, {MOD_SHIFT | MOD_CTRL, CURSOR_KEYS_DONTCARE, KEYPAD_DONTCARE, "\033[27;6;9~"},