X-Git-Url: https://jasonwoof.com/gitweb/?p=st.git;a=blobdiff_plain;f=config.def.h;h=622499e911b022008f63e39b4609c886b6af5697;hp=3bf35d96ad4c2a7753474277bb7980a607b6aa7e;hb=ea782bfc5d34d712bc9391e498935d2d27f3116c;hpb=93f31166bfff317e050dde1723cfa8302c6f85d3 diff --git a/config.def.h b/config.def.h index 3bf35d9..622499e 100644 --- a/config.def.h +++ b/config.def.h @@ -56,34 +56,62 @@ static unsigned int defaultucs = 257; /* * Special keys (change & recompile st.info accordingly) - * Keep in mind that kpress() in st.c hardcodes some keys. * * Mask value: * * Use XK_ANY_MOD to match the key no matter modifiers state * * Use XK_NO_MOD to match the key alone (no modifiers) + * keypad value: + * * 0: no value + * * > 0: keypad application mode enabled + * * < 0: keypad application mode disabled + * cursor value: + * * 0: no value + * * > 0: cursor application mode enabled + * * < 0: cursor application mode disabled + * crlf value + * * 0: no value + * * > 0: crlf mode is enabled + * * < 0: crlf mode is disabled */ -/* key, mask, output */ +/* key, mask, output, keypad, cursor, crlf */ static Key key[] = { - { XK_BackSpace, XK_NO_MOD, "\177" }, - { XK_Insert, XK_NO_MOD, "\033[2~" }, - { XK_Delete, XK_NO_MOD, "\033[3~" }, - { XK_Home, XK_NO_MOD, "\033[1~" }, - { XK_End, XK_NO_MOD, "\033[4~" }, - { XK_Prior, XK_NO_MOD, "\033[5~" }, - { XK_Next, XK_NO_MOD, "\033[6~" }, - { XK_F1, XK_NO_MOD, "\033OP" }, - { XK_F2, XK_NO_MOD, "\033OQ" }, - { XK_F3, XK_NO_MOD, "\033OR" }, - { XK_F4, XK_NO_MOD, "\033OS" }, - { XK_F5, XK_NO_MOD, "\033[15~" }, - { XK_F6, XK_NO_MOD, "\033[17~" }, - { XK_F7, XK_NO_MOD, "\033[18~" }, - { XK_F8, XK_NO_MOD, "\033[19~" }, - { XK_F9, XK_NO_MOD, "\033[20~" }, - { XK_F10, XK_NO_MOD, "\033[21~" }, - { XK_F11, XK_NO_MOD, "\033[23~" }, - { XK_F12, XK_NO_MOD, "\033[24~" }, + /* keysym mask string keypad cursor crlf */ + { 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_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_Left, XK_NO_MOD, "\033[D", 0, -1, 0}, + { XK_Left, XK_NO_MOD, "\033OD", 0, +1, 0}, + { XK_Left, ShiftMask, "\033[d", 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_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}, + { XK_Return, Mod1Mask, "\033\r\n", 0, 0, +1}, + { XK_Insert, XK_NO_MOD, "\033[2~", 0, 0, 0}, + { XK_Delete, XK_NO_MOD, "\033[3~", 0, 0, 0}, + { XK_Home, XK_NO_MOD, "\033[1~", 0, 0, 0}, + { XK_End, XK_NO_MOD, "\033[4~", 0, 0, 0}, + { XK_Prior, XK_NO_MOD, "\033[5~", 0, 0, 0}, + { XK_Next, XK_NO_MOD, "\033[6~", 0, 0, 0}, + { XK_F1, XK_NO_MOD, "\033OP" , 0, 0, 0}, + { XK_F2, XK_NO_MOD, "\033OQ" , 0, 0, 0}, + { XK_F3, XK_NO_MOD, "\033OR" , 0, 0, 0}, + { XK_F4, XK_NO_MOD, "\033OS" , 0, 0, 0}, + { XK_F5, XK_NO_MOD, "\033[15~", 0, 0, 0}, + { XK_F6, XK_NO_MOD, "\033[17~", 0, 0, 0}, + { XK_F7, XK_NO_MOD, "\033[18~", 0, 0, 0}, + { XK_F8, XK_NO_MOD, "\033[19~", 0, 0, 0}, + { XK_F9, XK_NO_MOD, "\033[20~", 0, 0, 0}, + { XK_F10, XK_NO_MOD, "\033[21~", 0, 0, 0}, + { XK_F11, XK_NO_MOD, "\033[23~", 0, 0, 0}, + { XK_F12, XK_NO_MOD, "\033[24~", 0, 0, 0}, }; /* Internal shortcuts. */