| tAdd control and meta combinations for arrow keys - st - [fork] customized buil… | |
| git clone git://src.adamsgaard.dk/st | |
| Log | |
| Files | |
| Refs | |
| README | |
| LICENSE | |
| --- | |
| commit 44597b359e030d86e16ab9b6510f54366d57e5ac | |
| parent 3b16695f4e8a29f47ad273912065dfba53544a29 | |
| Author: Roberto E. Vargas Caballero <[email protected]> | |
| Date: Tue, 13 Nov 2012 20:04:54 +0100 | |
| Add control and meta combinations for arrow keys | |
| Since there isn't any terminfo capability for control and meta modifiers for | |
| arrows keys it is necessary use the same that almost terminal emulators use, | |
| because there are a lot of programs which have these codes hardcoded. | |
| This cause also that shift combinations are also changed, but in this case | |
| tthis is not a problem since there are terminfo capabilities for them. After | |
| tthis patch shift-up and shift-down continue not working in emacs with | |
| TERM=st, but they work with TERM=xterm, so it is possible some other changes | |
| are necessary in the terminfo entry. | |
| --- | |
| config.def.h | 16 ++++++++++++---- | |
| st.info | 8 ++++---- | |
| 2 files changed, 16 insertions(+), 8 deletions(-) | |
| Diffstat: | |
| M config.def.h | 16 ++++++++++++---- | |
| M st.info | 8 ++++---- | |
| 2 files changed, 16 insertions(+), 8 deletions(-) | |
| --- | |
| diff --git a/config.def.h b/config.def.h | |
| t@@ -80,16 +80,24 @@ static Key key[] = { | |
| { XK_BackSpace, XK_NO_MOD, "\177", 0, 0, 0}, | |
| { XK_Up, XK_NO_MOD, "\033[A", 0, -1, 0}, | |
| { XK_Up, XK_NO_MOD, "\033OA", 0, +1, 0}, | |
| - { XK_Up, ShiftMask, "\033[a", 0, 0, 0}, | |
| + { XK_Up, ShiftMask, "\033[1;2A", 0, 0, 0}, | |
| + { XK_Up, ControlMask, "\033[1;5A", 0, 0, 0}, | |
| + { XK_Up, Mod1Mask, "\033[1;3A", 0, 0, 0}, | |
| { XK_Down, XK_NO_MOD, "\033[B", 0, -1, 0}, | |
| { XK_Down, XK_NO_MOD, "\033OB", 0, +1, 0}, | |
| - { XK_Down, ShiftMask, "\033[b", 0, 0, 0}, | |
| + { XK_Down, ShiftMask, "\033[1;2B", 0, 0, 0}, | |
| + { XK_Down, ControlMask, "\033[1;5B", 0, 0, 0}, | |
| + { XK_Down, Mod1Mask, "\033[1;3B", 0, 0, 0}, | |
| { XK_Left, XK_NO_MOD, "\033[D", 0, -1, … | |
| { XK_Left, XK_NO_MOD, "\033OD", 0, +1, 0}, | |
| - { XK_Left, ShiftMask, "\033[d", 0, 0, 0}, | |
| + { XK_Left, ShiftMask, "\033[1;2D", 0, 0, 0}, | |
| + { XK_Left, ControlMask, "\033[1;5D", 0, 0, 0}, | |
| + { XK_Left, Mod1Mask, "\033[1;3D", 0, 0, 0}, | |
| { XK_Right, XK_NO_MOD, "\033[C", 0, -1, 0}, | |
| { XK_Right, XK_NO_MOD, "\033OC", 0, +1, 0}, | |
| - { XK_Right, ShiftMask, "\033[c", 0, 0, 0}, | |
| + { XK_Right, ShiftMask, "\033[1;2C", 0, 0, 0}, | |
| + { XK_Right, ControlMask, "\033[1;5C", 0, 0, 0}, | |
| + { XK_Right, Mod1Mask, "\033[1;3C", 0, 0, 0}, | |
| { XK_Return, XK_NO_MOD, "\n", 0, 0, -1}, | |
| { XK_Return, XK_NO_MOD, "\r\n", 0, 0, +1}, | |
| { XK_Return, Mod1Mask, "\033\n", 0, 0, -1}, | |
| diff --git a/st.info b/st.info | |
| t@@ -54,10 +54,10 @@ st| simpleterm, | |
| kcud1=\EOB, | |
| kcuf1=\EOC, | |
| kcuu1=\EOA, | |
| - kLFT=\E[d, | |
| - kRIT=\E[c, | |
| - kind=\E[a, | |
| - kri=\E[b, | |
| + kLFT=\E[1;2D, | |
| + kRIT=\E[1;2C, | |
| + kind=\E[1;2B, | |
| + kri=\E[1;2A, | |
| kdch1=\E[3~, | |
| kich1=\E[2~, | |
| kend=\E[4~, |