Add key for toogling numlock handling

Keypad will generate keycodes when keypad application mode is enabled. It
can cause problems with some programs like vi, which operates in such
mode.

This patch change by default don't generate the keycodes never, but this
behaviour can be changed using the combination Alt + NumLock.
---
 config.def.h |   34 ++++++++++++++++++----------------
 st.c         |   17 +++++++++++++++--
 2 files changed, 33 insertions(+), 18 deletions(-)
This commit is contained in:
Roberto E. Vargas Caballero
2012-11-25 09:23:02 +01:00
parent b26df1d0d3
commit 172f65436c
2 changed files with 33 additions and 18 deletions

View File

@ -62,6 +62,7 @@ static Shortcut shortcuts[] = {
{ MODKEY|ShiftMask, XK_Prior, xzoom, {.i = +1} },
{ MODKEY|ShiftMask, XK_Next, xzoom, {.i = -1} },
{ ShiftMask, XK_Insert, selpaste, {.i = 0} },
{ MODKEY, XK_Num_Lock, numlock, {.i = 0} },
};
/*
@ -73,6 +74,7 @@ static Shortcut shortcuts[] = {
* keypad value:
* * 0: no value
* * > 0: keypad application mode enabled
* * = 2: term.numlock = 1
* * < 0: keypad application mode disabled
* cursor value:
* * 0: no value
@ -123,24 +125,24 @@ static Key key[] = {
{ XK_KP_Insert, XK_ANY_MOD, "\033[2~", 0, 0, 0},
{ XK_KP_Delete, ShiftMask, "\033[3;2~", 0, 0, 0},
{ XK_KP_Delete, XK_ANY_MOD, "\033[3~", 0, 0, 0},
{ XK_KP_Multiply, XK_ANY_MOD, "\033Oj", +1, 0, 0},
{ XK_KP_Add, XK_ANY_MOD, "\033Ok", +1, 0, 0},
{ XK_KP_Enter, XK_ANY_MOD, "\033OM", +1, 0, 0},
{ XK_KP_Multiply, XK_ANY_MOD, "\033Oj", +2, 0, 0},
{ XK_KP_Add, XK_ANY_MOD, "\033Ok", +2, 0, 0},
{ XK_KP_Enter, XK_ANY_MOD, "\033OM", +2, 0, 0},
{ XK_KP_Enter, XK_ANY_MOD, "\r", -1, 0, -1},
{ XK_KP_Enter, XK_ANY_MOD, "\r\n", -1, 0, +1},
{ XK_KP_Subtract, XK_ANY_MOD, "\033Om", +1, 0, 0},
{ XK_KP_Decimal, XK_ANY_MOD, "\033On", +1, 0, 0},
{ XK_KP_Divide, XK_ANY_MOD, "\033Oo", +1, 0, 0},
{ XK_KP_0, XK_ANY_MOD, "\033Op", +1, 0, 0},
{ XK_KP_1, XK_ANY_MOD, "\033Oq", +1, 0, 0},
{ XK_KP_2, XK_ANY_MOD, "\033Or", +1, 0, 0},
{ XK_KP_3, XK_ANY_MOD, "\033Os", +1, 0, 0},
{ XK_KP_4, XK_ANY_MOD, "\033Ot", +1, 0, 0},
{ XK_KP_5, XK_ANY_MOD, "\033Ou", +1, 0, 0},
{ XK_KP_6, XK_ANY_MOD, "\033Ov", +1, 0, 0},
{ XK_KP_7, XK_ANY_MOD, "\033Ow", +1, 0, 0},
{ XK_KP_8, XK_ANY_MOD, "\033Ox", +1, 0, 0},
{ XK_KP_9, XK_ANY_MOD, "\033Oy", +1, 0, 0},
{ XK_KP_Subtract, XK_ANY_MOD, "\033Om", +2, 0, 0},
{ XK_KP_Decimal, XK_ANY_MOD, "\033On", +2, 0, 0},
{ XK_KP_Divide, XK_ANY_MOD, "\033Oo", +2, 0, 0},
{ XK_KP_0, XK_ANY_MOD, "\033Op", +2, 0, 0},
{ XK_KP_1, XK_ANY_MOD, "\033Oq", +2, 0, 0},
{ XK_KP_2, XK_ANY_MOD, "\033Or", +2, 0, 0},
{ XK_KP_3, XK_ANY_MOD, "\033Os", +2, 0, 0},
{ XK_KP_4, XK_ANY_MOD, "\033Ot", +2, 0, 0},
{ XK_KP_5, XK_ANY_MOD, "\033Ou", +2, 0, 0},
{ XK_KP_6, XK_ANY_MOD, "\033Ov", +2, 0, 0},
{ XK_KP_7, XK_ANY_MOD, "\033Ow", +2, 0, 0},
{ XK_KP_8, XK_ANY_MOD, "\033Ox", +2, 0, 0},
{ XK_KP_9, XK_ANY_MOD, "\033Oy", +2, 0, 0},
{ XK_BackSpace, XK_NO_MOD, "\177", 0, 0, 0},
{ XK_Up, ShiftMask, "\033[1;2A", 0, 0, 0},
{ XK_Up, ControlMask, "\033[1;5A", 0, 0, 0},