aboutsummaryrefslogtreecommitdiff
path: root/config.def.h
diff options
context:
space:
mode:
authorRoberto E. Vargas Caballero <k0ga@shike2.com>2012-11-13 20:04:45 +0100
committerRoberto E. Vargas Caballero <k0ga@shike2.com>2012-11-13 20:04:45 +0100
commitea782bfc5d34d712bc9391e498935d2d27f3116c (patch)
tree64cda24a549c2ff74a68f0540239d5a49d3e0677 /config.def.h
parent93f31166bfff317e050dde1723cfa8302c6f85d3 (diff)
downloadst-ea782bfc5d34d712bc9391e498935d2d27f3116c.tar.gz
st-ea782bfc5d34d712bc9391e498935d2d27f3116c.zip
Remove hardcoded keys form kpress
Some keys were in the Key array while others were hardcoded in kpress().This cause some problems with some keys which can generate more of one string based in the configuration of the terminal. --- config.def.h | 70 ++++++++++++++++++++++++++++++++++++++++----------------- st.c | 71 +++++++++++++++++++++++++--------------------------------- 2 files changed, 79 insertions(+), 62 deletions(-)
Diffstat (limited to 'config.def.h')
-rw-r--r--config.def.h70
1 files changed, 49 insertions, 21 deletions
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;
56 56
57/* 57/*
58 * Special keys (change & recompile st.info accordingly) 58 * Special keys (change & recompile st.info accordingly)
59 * Keep in mind that kpress() in st.c hardcodes some keys.
60 * 59 *
61 * Mask value: 60 * Mask value:
62 * * Use XK_ANY_MOD to match the key no matter modifiers state 61 * * Use XK_ANY_MOD to match the key no matter modifiers state
63 * * Use XK_NO_MOD to match the key alone (no modifiers) 62 * * Use XK_NO_MOD to match the key alone (no modifiers)
63 * keypad value:
64 * * 0: no value
65 * * > 0: keypad application mode enabled
66 * * < 0: keypad application mode disabled
67 * cursor value:
68 * * 0: no value
69 * * > 0: cursor application mode enabled
70 * * < 0: cursor application mode disabled
71 * crlf value
72 * * 0: no value
73 * * > 0: crlf mode is enabled
74 * * < 0: crlf mode is disabled
64 */ 75 */
65 76
66/* key, mask, output */ 77/* key, mask, output, keypad, cursor, crlf */
67static Key key[] = { 78static Key key[] = {
68 { XK_BackSpace, XK_NO_MOD, "\177" }, 79 /* keysym mask string keypad cursor crlf */
69 { XK_Insert, XK_NO_MOD, "\033[2~" }, 80 { XK_BackSpace, XK_NO_MOD, "\177", 0, 0, 0},
70 { XK_Delete, XK_NO_MOD, "\033[3~" }, 81 { XK_Up, XK_NO_MOD, "\033[A", 0, -1, 0},
71 { XK_Home, XK_NO_MOD, "\033[1~" }, 82 { XK_Up, XK_NO_MOD, "\033OA", 0, +1, 0},
72 { XK_End, XK_NO_MOD, "\033[4~" }, 83 { XK_Up, ShiftMask, "\033[a", 0, 0, 0},
73 { XK_Prior, XK_NO_MOD, "\033[5~" }, 84 { XK_Down, XK_NO_MOD, "\033[B", 0, -1, 0},
74 { XK_Next, XK_NO_MOD, "\033[6~" }, 85 { XK_Down, XK_NO_MOD, "\033OB", 0, +1, 0},
75 { XK_F1, XK_NO_MOD, "\033OP" }, 86 { XK_Down, ShiftMask, "\033[b", 0, 0, 0},
76 { XK_F2, XK_NO_MOD, "\033OQ" }, 87 { XK_Left, XK_NO_MOD, "\033[D", 0, -1, 0},
77 { XK_F3, XK_NO_MOD, "\033OR" }, 88 { XK_Left, XK_NO_MOD, "\033OD", 0, +1, 0},
78 { XK_F4, XK_NO_MOD, "\033OS" }, 89 { XK_Left, ShiftMask, "\033[d", 0, 0, 0},
79 { XK_F5, XK_NO_MOD, "\033[15~" }, 90 { XK_Right, XK_NO_MOD, "\033[C", 0, -1, 0},
80 { XK_F6, XK_NO_MOD, "\033[17~" }, 91 { XK_Right, XK_NO_MOD, "\033OC", 0, +1, 0},
81 { XK_F7, XK_NO_MOD, "\033[18~" }, 92 { XK_Right, ShiftMask, "\033[c", 0, 0, 0},
82 { XK_F8, XK_NO_MOD, "\033[19~" }, 93 { XK_Return, XK_NO_MOD, "\n", 0, 0, -1},
83 { XK_F9, XK_NO_MOD, "\033[20~" }, 94 { XK_Return, XK_NO_MOD, "\r\n", 0, 0, +1},
84 { XK_F10, XK_NO_MOD, "\033[21~" }, 95 { XK_Return, Mod1Mask, "\033\n", 0, 0, -1},
85 { XK_F11, XK_NO_MOD, "\033[23~" }, 96 { XK_Return, Mod1Mask, "\033\r\n", 0, 0, +1},
86 { XK_F12, XK_NO_MOD, "\033[24~" }, 97 { XK_Insert, XK_NO_MOD, "\033[2~", 0, 0, 0},
98 { XK_Delete, XK_NO_MOD, "\033[3~", 0, 0, 0},
99 { XK_Home, XK_NO_MOD, "\033[1~", 0, 0, 0},
100 { XK_End, XK_NO_MOD, "\033[4~", 0, 0, 0},
101 { XK_Prior, XK_NO_MOD, "\033[5~", 0, 0, 0},
102 { XK_Next, XK_NO_MOD, "\033[6~", 0, 0, 0},
103 { XK_F1, XK_NO_MOD, "\033OP" , 0, 0, 0},
104 { XK_F2, XK_NO_MOD, "\033OQ" , 0, 0, 0},
105 { XK_F3, XK_NO_MOD, "\033OR" , 0, 0, 0},
106 { XK_F4, XK_NO_MOD, "\033OS" , 0, 0, 0},
107 { XK_F5, XK_NO_MOD, "\033[15~", 0, 0, 0},
108 { XK_F6, XK_NO_MOD, "\033[17~", 0, 0, 0},
109 { XK_F7, XK_NO_MOD, "\033[18~", 0, 0, 0},
110 { XK_F8, XK_NO_MOD, "\033[19~", 0, 0, 0},
111 { XK_F9, XK_NO_MOD, "\033[20~", 0, 0, 0},
112 { XK_F10, XK_NO_MOD, "\033[21~", 0, 0, 0},
113 { XK_F11, XK_NO_MOD, "\033[23~", 0, 0, 0},
114 { XK_F12, XK_NO_MOD, "\033[24~", 0, 0, 0},
87}; 115};
88 116
89/* Internal shortcuts. */ 117/* Internal shortcuts. */