commit 8d98e9ae45d3b3fe173ebfa16a5b9242dedb3aa1
Author: Jan Christoph Ebersbach <jceb_AT_e-jc.de>
Date: Wed Jun 21 07:13:20 2017 +0200
[st] Update fix keyboard input patch
* Fix tab and backspace key sequences
diff --git a/st.suckless.org/patches/fix_keyboard_input.md b/st.suckless.org/patches/fix_keyboard_input.md
index 8c7a4a9..8eec171 100644
--- a/st.suckless.org/patches/fix_keyboard_input.md
+++ b/st.suckless.org/patches/fix_keyboard_input.md
_AT_@ -21,38 +21,42 @@ Notes
- If you use `<C-[>` for `<Esc>`, I suggest that you remove the following line
from this patch to reenable the behavior:
+```
{ XK_bracketleft, ControlMask, "[91;5u", 0, 0, 0},
+```
- If you use `<C-6>` for changing to the alternative file, I suggest that you
remove the following line from this patch to reenable the behavior:
+```
{ XK_6, ControlMask, "[54;5u", 0, 0, 0},
-
- - I'm not yet sure how to bind the new mappings to actions in viom. It works
- for some keys while others appear to be not working at all. The first
- mappings work for me with the patch while from the latter only `<S-Tab>`
- works:
-
- nmap <C-enter> :echo "<C-enter>"<CR>
- nmap <C-S-enter> :echo "<C-S-enter>"<CR>
- nmap <C-S-M-enter> :echo "<C-S-M-enter>"<CR>
- nmap <S-M-enter> :echo "<S-M-enter>"<CR>
- nmap <M-enter> :echo "<M-enter>"<CR>
- nmap <C-M-enter> :echo "<C-M-enter>"<CR>
+```
+
+ - I managed to bind the new mappings to actions in neovim. If you're using
+ tmux make sure that it's a recent version, 2.5 works fine for me. The
+ easiest way to know that this patch is working properly is to enter vim's
+ command mode by pressing `:` followed by pressing `<C-v>` and the desired key
+ combination. This will print the key sequence that vim received. Here are
+ some example mappings for vim:
+
+```
+ nmap <C-CR> :echo "<C-CR>"<CR>
+ nmap <C-S-CR> :echo "<C-S-CR>"<CR>
+ nmap <C-S-M-CR> :echo "<C-S-M-CR>"<CR>
+ nmap <S-M-CR> :echo "<S-M-CR>"<CR>
+ nmap <M-CR> :echo "<M-CR>"<CR>
+ nmap <C-M-CR> :echo "<C-M-CR>"<CR>
nmap <C-Tab> :echo "<C-Tab>"<CR>
nmap <C-S-Tab> :echo "<C-S-Tab>"<CR>
nmap <S-Tab> :echo "<S-Tab>"<CR>
nmap <M-Tab> :echo "<M-Tab>"<CR>
-
-- I tried to create mappings in vim the following way but it didn't work
- either:
-
- nmap <Esc>[9;5u :echo "<C-Tab>"<CR>
+```
Download
--------
* [st-fix-keyboard-input-20170603-5a10aca.diff](st-fix-keyboard-input-20170603-5a10aca.diff)
+ * [st-fix-keyboard-input-20170621-b331da5.diff](st-fix-keyboard-input-20170621-b331da5.diff)
Authors
-------
diff --git a/st.suckless.org/patches/st-fix-keyboard-input-20170621-b331da5.diff b/st.suckless.org/patches/st-fix-keyboard-input-20170621-b331da5.diff
new file mode 100644
index 0000000..04194ff
--- /dev/null
+++ b/st.suckless.org/patches/st-fix-keyboard-input-20170621-b331da5.diff
_AT_@ -0,0 +1,764 @@
+Author: Jan Christoph Ebersbach <jceb_AT_e-jc.de>
+URL:
http://st.suckless.org/patches/fix_keyboard_input
+Fix keyboard input on terminal
+
+Index: st-patches/st/config.def.h
+===================================================================
+--- st-patches.orig/st/config.def.h
++++ st-patches/st/config.def.h
+_AT_@ -209,7 +209,80 @@ Shortcut shortcuts[] = {
+ * If you want keys other than the X11 function keys (0xFD00 - 0xFFFF)
+ * to be mapped below, add them to this array.
+ */
+-static KeySym mappedkeys[] = { -1 };
++static KeySym mappedkeys[] = {
++ XK_space,
++ XK_m,
++ XK_i,
++ XK_A,
++ XK_B,
++ XK_C,
++ XK_D,
++ XK_E,
++ XK_F,
++ XK_G,
++ XK_H,
++ XK_I,
++ XK_K,
++ XK_J,
++ XK_L,
++ XK_M,
++ XK_N,
++ XK_O,
++ XK_P,
++ XK_Q,
++ XK_R,
++ XK_S,
++ XK_T,
++ XK_U,
++ XK_V,
++ XK_W,
++ XK_X,
++ XK_Y,
++ XK_Z,
++ XK_Z,
++ XK_0,
++ XK_1,
++ XK_2,
++ XK_3,
++ XK_4,
++ XK_5,
++ XK_6,
++ XK_7,
++ XK_8,
++ XK_9,
++ XK_exclam,
++ XK_quotedbl,
++ XK_numbersign,
++ XK_dollar,
++ XK_percent,
++ XK_ampersand,
++ XK_apostrophe,
++ XK_parenleft,
++ XK_parenright,
++ XK_asterisk,
++ XK_plus,
++ XK_comma,
++ XK_minus,
++ XK_period,
++ XK_slash,
++ XK_colon,
++ XK_semicolon,
++ XK_less,
++ XK_equal,
++ XK_greater,
++ XK_question,
++ XK_at,
++ XK_bracketleft,
++ XK_backslash,
++ XK_bracketright,
++ XK_asciicircum,
++ XK_underscore,
++ XK_grave,
++ XK_braceleft,
++ XK_bar,
++ XK_braceright,
++ XK_asciitilde,
++};
+
+ /*
+ * State bits to ignore when matching key or button events. By default,
+_AT_@ -232,60 +305,20 @@ static Key key[] = {
+ /* keysym mask string appkey appcursor crlf */
+ { XK_KP_Home, ShiftMask, "[2J", 0, -1, 0},
+ { XK_KP_Home, ShiftMask, "[1;2H", 0, +1, 0},
+- { XK_KP_Home, XK_ANY_MOD, "[H", 0, -1, 0},
+- { XK_KP_Home, XK_ANY_MOD, "[1~", 0, +1, 0},
+- { XK_KP_Up, XK_ANY_MOD, "Ox", +1, 0, 0},
+- { XK_KP_Up, XK_ANY_MOD, "[A", 0, -1, 0},
+- { XK_KP_Up, XK_ANY_MOD, "OA", 0, +1, 0},
+- { XK_KP_Down, XK_ANY_MOD, "Or", +1, 0, 0},
+- { XK_KP_Down, XK_ANY_MOD, "[B", 0, -1, 0},
+- { XK_KP_Down, XK_ANY_MOD, "OB", 0, +1, 0},
+- { XK_KP_Left, XK_ANY_MOD, "Ot", +1, 0, 0},
+- { XK_KP_Left, XK_ANY_MOD, "[D", 0, -1, 0},
+- { XK_KP_Left, XK_ANY_MOD, "OD", 0, +1, 0},
+- { XK_KP_Right, XK_ANY_MOD, "Ov", +1, 0, 0},
+- { XK_KP_Right, XK_ANY_MOD, "[C", 0, -1, 0},
+- { XK_KP_Right, XK_ANY_MOD, "OC", 0, +1, 0},
+ { XK_KP_Prior, ShiftMask, "[5;2~", 0, 0, 0},
+- { XK_KP_Prior, XK_ANY_MOD, "[5~", 0, 0, 0},
+- { XK_KP_Begin, XK_ANY_MOD, "[E", 0, 0, 0},
+ { XK_KP_End, ControlMask, "[J", -1, 0, 0},
+ { XK_KP_End, ControlMask, "[1;5F", +1, 0, 0},
+ { XK_KP_End, ShiftMask, "[K", -1, 0, 0},
+ { XK_KP_End, ShiftMask, "[1;2F", +1, 0, 0},
+- { XK_KP_End, XK_ANY_MOD, "[4~", 0, 0, 0},
+ { XK_KP_Next, ShiftMask, "[6;2~", 0, 0, 0},
+- { XK_KP_Next, XK_ANY_MOD, "[6~", 0, 0, 0},
+ { XK_KP_Insert, ShiftMask, "[2;2~", +1, 0, 0},
+ { XK_KP_Insert, ShiftMask, "[4l", -1, 0, 0},
+ { XK_KP_Insert, ControlMask, "[L", -1, 0, 0},
+ { XK_KP_Insert, ControlMask, "[2;5~", +1, 0, 0},
+- { XK_KP_Insert, XK_ANY_MOD, "[4h", -1, 0, 0},
+- { XK_KP_Insert, XK_ANY_MOD, "[2~", +1, 0, 0},
+ { XK_KP_Delete, ControlMask, "[M", -1, 0, 0},
+ { XK_KP_Delete, ControlMask, "[3;5~", +1, 0, 0},
+ { XK_KP_Delete, ShiftMask, "[2K", -1, 0, 0},
+ { XK_KP_Delete, ShiftMask, "[3;2~", +1, 0, 0},
+- { XK_KP_Delete, XK_ANY_MOD, "[P", -1, 0, 0},
+- { XK_KP_Delete, XK_ANY_MOD, "[3~", +1, 0, 0},
+- { XK_KP_Multiply, XK_ANY_MOD, "Oj", +2, 0, 0},
+- { XK_KP_Add, XK_ANY_MOD, "Ok", +2, 0, 0},
+- { XK_KP_Enter, XK_ANY_MOD, "OM", +2, 0, 0},
+- { XK_KP_Enter, XK_ANY_MOD, "
", -1, 0, -1},
+- { XK_KP_Enter, XK_ANY_MOD, "
", -1, 0, +1},
+- { XK_KP_Subtract, XK_ANY_MOD, "Om", +2, 0, 0},
+- { XK_KP_Decimal, XK_ANY_MOD, "On", +2, 0, 0},
+- { XK_KP_Divide, XK_ANY_MOD, "Oo", +2, 0, 0},
+- { XK_KP_0, XK_ANY_MOD, "Op", +2, 0, 0},
+- { XK_KP_1, XK_ANY_MOD, "Oq", +2, 0, 0},
+- { XK_KP_2, XK_ANY_MOD, "Or", +2, 0, 0},
+- { XK_KP_3, XK_ANY_MOD, "Os", +2, 0, 0},
+- { XK_KP_4, XK_ANY_MOD, "Ot", +2, 0, 0},
+- { XK_KP_5, XK_ANY_MOD, "Ou", +2, 0, 0},
+- { XK_KP_6, XK_ANY_MOD, "Ov", +2, 0, 0},
+- { XK_KP_7, XK_ANY_MOD, "Ow", +2, 0, 0},
+- { XK_KP_8, XK_ANY_MOD, "Ox", +2, 0, 0},
+- { XK_KP_9, XK_ANY_MOD, "Oy", +2, 0, 0},
+ { XK_Up, ShiftMask, "[1;2A", 0, 0, 0},
+ { XK_Up, Mod1Mask, "[1;3A", 0, 0, 0},
+ { XK_Up, ShiftMask|Mod1Mask,"[1;4A", 0, 0, 0},
+_AT_@ -325,37 +358,28 @@ static Key key[] = {
+ { XK_ISO_Left_Tab, ShiftMask, "[Z", 0, 0, 0},
+ { XK_Return, Mod1Mask, "
", 0, 0, -1},
+ { XK_Return, Mod1Mask, "
", 0, 0, +1},
+- { XK_Return, XK_ANY_MOD, "
", 0, 0, -1},
+- { XK_Return, XK_ANY_MOD, "
", 0, 0, +1},
++ { XK_Return, XK_NO_MOD, "
", 0, 0, -1},
++ { XK_Return, XK_NO_MOD, "
", 0, 0, +1},
+ { XK_Insert, ShiftMask, "[4l", -1, 0, 0},
+ { XK_Insert, ShiftMask, "[2;2~", +1, 0, 0},
+ { XK_Insert, ControlMask, "[L", -1, 0, 0},
+ { XK_Insert, ControlMask, "[2;5~", +1, 0, 0},
+- { XK_Insert, XK_ANY_MOD, "[4h", -1, 0, 0},
+- { XK_Insert, XK_ANY_MOD, "[2~", +1, 0, 0},
+ { XK_Delete, ControlMask, "[M", -1, 0, 0},
+ { XK_Delete, ControlMask, "[3;5~", +1, 0, 0},
+ { XK_Delete, ShiftMask, "[2K", -1, 0, 0},
+ { XK_Delete, ShiftMask, "[3;2~", +1, 0, 0},
+- { XK_Delete, XK_ANY_MOD, "[P", -1, 0, 0},
+- { XK_Delete, XK_ANY_MOD, "[3~", +1, 0, 0},
+ { XK_BackSpace, XK_NO_MOD, "", 0, 0, 0},
+ { XK_BackSpace, Mod1Mask, "", 0, 0, 0},
+ { XK_Home, ShiftMask, "[2J", 0, -1, 0},
+ { XK_Home, ShiftMask, "[1;2H", 0, +1, 0},
+- { XK_Home, XK_ANY_MOD, "[H", 0, -1, 0},
+- { XK_Home, XK_ANY_MOD, "[1~", 0, +1, 0},
+ { XK_End, ControlMask, "[J", -1, 0, 0},
+ { XK_End, ControlMask, "[1;5F", +1, 0, 0},
+ { XK_End, ShiftMask, "[K", -1, 0, 0},
+ { XK_End, ShiftMask, "[1;2F", +1, 0, 0},
+- { XK_End, XK_ANY_MOD, "[4~", 0, 0, 0},
+ { XK_Prior, ControlMask, "[5;5~", 0, 0, 0},
+ { XK_Prior, ShiftMask, "[5;2~", 0, 0, 0},
+- { XK_Prior, XK_ANY_MOD, "[5~", 0, 0, 0},
+ { XK_Next, ControlMask, "[6;5~", 0, 0, 0},
+ { XK_Next, ShiftMask, "[6;2~", 0, 0, 0},
+- { XK_Next, XK_ANY_MOD, "[6~", 0, 0, 0},
+ { XK_F1, XK_NO_MOD, "OP" , 0, 0, 0},
+ { XK_F1, /* F13 */ ShiftMask, "[1;2P", 0, 0, 0},
+ { XK_F1, /* F25 */ ControlMask, "[1;5P", 0, 0, 0},
+_AT_@ -442,6 +466,572 @@ static Key key[] = {
+ { XK_F33, XK_NO_MOD, "[20;5~", 0, 0, 0},
+ { XK_F34, XK_NO_MOD, "[21;5~", 0, 0, 0},
+ { XK_F35, XK_NO_MOD, "[23;5~", 0, 0, 0},
++
++ // libtermkey compatible keyboard input
++ { XK_KP_Home, XK_NO_MOD, "[H", 0, -1, 0},
++ { XK_KP_Home, XK_NO_MOD, "[1~", 0, +1, 0},
++ { XK_KP_Home, ControlMask, "[149;5u", 0, 0, 0},
++ { XK_KP_Home, ControlMask|ShiftMask, "[149;6u", 0, 0, 0},
++ { XK_KP_Home, Mod1Mask, "[149;3u", 0, 0, 0},
++ { XK_KP_Home, Mod1Mask|ControlMask, "[149;7u", 0, 0, 0},
++ { XK_KP_Home, Mod1Mask|ControlMask|ShiftMask, "[149;8u", 0, 0, 0},
++ { XK_KP_Home, Mod1Mask|ShiftMask, "[149;4u", 0, 0, 0},
++ { XK_KP_Home, ShiftMask, "[149;2u", 0, 0, 0},
++ { XK_KP_Up, XK_NO_MOD, "Ox", +1, 0, 0},
++ { XK_KP_Up, XK_NO_MOD, "[A", 0, -1, 0},
++ { XK_KP_Up, XK_NO_MOD, "OA", 0, +1, 0},
++ { XK_KP_Up, ControlMask, "[151;5u", 0, 0, 0},
++ { XK_KP_Up, ControlMask|ShiftMask, "[151;6u", 0, 0, 0},
++ { XK_KP_Up, Mod1Mask, "[151;3u", 0, 0, 0},
++ { XK_KP_Up, Mod1Mask|ControlMask, "[151;7u", 0, 0, 0},
++ { XK_KP_Up, Mod1Mask|ControlMask|ShiftMask, "[151;8u", 0, 0, 0},
++ { XK_KP_Up, Mod1Mask|ShiftMask, "[151;4u", 0, 0, 0},
++ { XK_KP_Up, ShiftMask, "[151;2u", 0, 0, 0},
++ { XK_KP_Down, XK_NO_MOD, "Or", +1, 0, 0},
++ { XK_KP_Down, XK_NO_MOD, "[B", 0, -1, 0},
++ { XK_KP_Down, XK_NO_MOD, "OB", 0, +1, 0},
++ { XK_KP_Down, ControlMask, "[153;5u", 0, 0, 0},
++ { XK_KP_Down, ControlMask|ShiftMask, "[153;6u", 0, 0, 0},
++ { XK_KP_Down, Mod1Mask, "[153;3u", 0, 0, 0},
++ { XK_KP_Down, Mod1Mask|ControlMask, "[153;7u", 0, 0, 0},
++ { XK_KP_Down, Mod1Mask|ControlMask|ShiftMask, "[153;8u", 0, 0, 0},
++ { XK_KP_Down, Mod1Mask|ShiftMask, "[153;4u", 0, 0, 0},
++ { XK_KP_Down, ShiftMask, "[153;2u", 0, 0, 0},
++ { XK_KP_Left, XK_NO_MOD, "Ot", +1, 0, 0},
++ { XK_KP_Left, XK_NO_MOD, "[D", 0, -1, 0},
++ { XK_KP_Left, XK_NO_MOD, "OD", 0, +1, 0},
++ { XK_KP_Left, ControlMask, "[150;5u", 0, 0, 0},
++ { XK_KP_Left, ControlMask|ShiftMask, "[150;6u", 0, 0, 0},
++ { XK_KP_Left, Mod1Mask, "[150;3u", 0, 0, 0},
++ { XK_KP_Left, Mod1Mask|ControlMask, "[150;7u", 0, 0, 0},
++ { XK_KP_Left, Mod1Mask|ControlMask|ShiftMask, "[150;8u", 0, 0, 0},
++ { XK_KP_Left, Mod1Mask|ShiftMask, "[150;4u", 0, 0, 0},
++ { XK_KP_Left, ShiftMask, "[150;2u", 0, 0, 0},
++ { XK_KP_Right, XK_NO_MOD, "Ov", +1, 0, 0},
++ { XK_KP_Right, XK_NO_MOD, "[C", 0, -1, 0},
++ { XK_KP_Right, XK_NO_MOD, "OC", 0, +1, 0},
++ { XK_KP_Right, ControlMask, "[152;5u", 0, 0, 0},
++ { XK_KP_Right, ControlMask|ShiftMask, "[152;6u", 0, 0, 0},
++ { XK_KP_Right, Mod1Mask, "[152;3u", 0, 0, 0},
++ { XK_KP_Right, Mod1Mask|ControlMask, "[152;7u", 0, 0, 0},
++ { XK_KP_Right, Mod1Mask|ControlMask|ShiftMask, "[152;8u", 0, 0, 0},
++ { XK_KP_Right, Mod1Mask|ShiftMask, "[152;4u", 0, 0, 0},
++ { XK_KP_Right, ShiftMask, "[152;2u", 0, 0, 0},
++ { XK_KP_Prior, XK_NO_MOD, "[5~", 0, 0, 0},
++ { XK_KP_Prior, ControlMask, "[154;5u", 0, 0, 0},
++ { XK_KP_Prior, ControlMask|ShiftMask, "[154;6u", 0, 0, 0},
++ { XK_KP_Prior, Mod1Mask, "[154;3u", 0, 0, 0},
++ { XK_KP_Prior, Mod1Mask|ControlMask, "[154;7u", 0, 0, 0},
++ { XK_KP_Prior, Mod1Mask|ControlMask|ShiftMask, "[154;8u", 0, 0, 0},
++ { XK_KP_Prior, Mod1Mask|ShiftMask, "[154;4u", 0, 0, 0},
++ { XK_KP_Begin, XK_NO_MOD, "[E", 0, 0, 0},
++ { XK_KP_Begin, ControlMask, "[157;5u", 0, 0, 0},
++ { XK_KP_Begin, ControlMask|ShiftMask, "[157;6u", 0, 0, 0},
++ { XK_KP_Begin, Mod1Mask, "[157;3u", 0, 0, 0},
++ { XK_KP_Begin, Mod1Mask|ControlMask, "[157;7u", 0, 0, 0},
++ { XK_KP_Begin, Mod1Mask|ControlMask|ShiftMask, "[157;8u", 0, 0, 0},
++ { XK_KP_Begin, Mod1Mask|ShiftMask, "[157;4u", 0, 0, 0},
++ { XK_KP_Begin, ShiftMask, "[157;2u", 0, 0, 0},
++ { XK_KP_End, XK_NO_MOD, "[4~", 0, 0, 0},
++ { XK_KP_End, ControlMask|ShiftMask, "[156;6u", 0, 0, 0},
++ { XK_KP_End, Mod1Mask, "[156;3u", 0, 0, 0},
++ { XK_KP_End, Mod1Mask|ControlMask, "[156;7u", 0, 0, 0},
++ { XK_KP_End, Mod1Mask|ControlMask|ShiftMask, "[156;8u", 0, 0, 0},
++ { XK_KP_End, Mod1Mask|ShiftMask, "[156;4u", 0, 0, 0},
++ { XK_KP_Next, XK_NO_MOD, "[6~", 0, 0, 0},
++ { XK_KP_Next, ControlMask, "[155;5u", 0, 0, 0},
++ { XK_KP_Next, ControlMask|ShiftMask, "[155;6u", 0, 0, 0},
++ { XK_KP_Next, Mod1Mask, "[155;3u", 0, 0, 0},
++ { XK_KP_Next, Mod1Mask|ControlMask, "[155;7u", 0, 0, 0},
++ { XK_KP_Next, Mod1Mask|ControlMask|ShiftMask, "[155;8u", 0, 0, 0},
++ { XK_KP_Next, Mod1Mask|ShiftMask, "[155;4u", 0, 0, 0},
++ { XK_KP_Insert, XK_NO_MOD, "[4h", -1, 0, 0},
++ { XK_KP_Insert, XK_NO_MOD, "[2~", +1, 0, 0},
++ { XK_KP_Insert, ControlMask|ShiftMask, "[158;6u", 0, 0, 0},
++ { XK_KP_Insert, Mod1Mask, "[158;3u", 0, 0, 0},
++ { XK_KP_Insert, Mod1Mask|ControlMask, "[158;7u", 0, 0, 0},
++ { XK_KP_Insert, Mod1Mask|ControlMask|ShiftMask, "[158;8u", 0, 0, 0},
++ { XK_KP_Insert, Mod1Mask|ShiftMask, "[158;4u", 0, 0, 0},
++ { XK_KP_Delete, XK_NO_MOD, "[P", -1, 0, 0},
++ { XK_KP_Delete, XK_NO_MOD, "[3~", +1, 0, 0},
++ { XK_KP_Delete, ControlMask|ShiftMask, "[159;6u", 0, 0, 0},
++ { XK_KP_Delete, Mod1Mask, "[159;3u", 0, 0, 0},
++ { XK_KP_Delete, Mod1Mask|ControlMask, "[159;7u", 0, 0, 0},
++ { XK_KP_Delete, Mod1Mask|ControlMask|ShiftMask, "[159;8u", 0, 0, 0},
++ { XK_KP_Delete, Mod1Mask|ShiftMask, "[159;4u", 0, 0, 0},
++ { XK_KP_Multiply, XK_NO_MOD, "Oj", +2, 0, 0},
++ { XK_KP_Multiply, ControlMask, "[170;5u", 0, 0, 0},
++ { XK_KP_Multiply, ControlMask|ShiftMask, "[170;6u", 0, 0, 0},
++ { XK_KP_Multiply, Mod1Mask, "[170;3u", 0, 0, 0},
++ { XK_KP_Multiply, Mod1Mask|ControlMask, "[170;7u", 0, 0, 0},
++ { XK_KP_Multiply, Mod1Mask|ControlMask|ShiftMask, "[170;8u", 0, 0, 0},
++ { XK_KP_Multiply, Mod1Mask|ShiftMask, "[170;4u", 0, 0, 0},
++ { XK_KP_Multiply, ShiftMask, "[170;2u", 0, 0, 0},
++ { XK_KP_Add, XK_NO_MOD, "Ok", +2, 0, 0},
++ { XK_KP_Add, ControlMask, "[171;5u", 0, 0, 0},
++ { XK_KP_Add, ControlMask|ShiftMask, "[171;6u", 0, 0, 0},
++ { XK_KP_Add, Mod1Mask, "[171;3u", 0, 0, 0},
++ { XK_KP_Add, Mod1Mask|ControlMask, "[171;7u", 0, 0, 0},
++ { XK_KP_Add, Mod1Mask|ControlMask|ShiftMask, "[171;8u", 0, 0, 0},
++ { XK_KP_Add, Mod1Mask|ShiftMask, "[171;4u", 0, 0, 0},
++ { XK_KP_Add, ShiftMask, "[171;2u", 0, 0, 0},
++ { XK_KP_Enter, XK_NO_MOD, "OM", +2, 0, 0},
++ { XK_KP_Enter, XK_NO_MOD, "
", -1, 0, -1},
++ { XK_KP_Enter, XK_NO_MOD, "
", -1, 0, +1},
++ { XK_KP_Enter, ControlMask, "[141;5u", 0, 0, 0},
++ { XK_KP_Enter, ControlMask|ShiftMask, "[141;6u", 0, 0, 0},
++ { XK_KP_Enter, Mod1Mask, "[141;3u", 0, 0, 0},
++ { XK_KP_Enter, Mod1Mask|ControlMask, "[141;7u", 0, 0, 0},
++ { XK_KP_Enter, Mod1Mask|ControlMask|ShiftMask, "[141;8u", 0, 0, 0},
++ { XK_KP_Enter, Mod1Mask|ShiftMask, "[141;4u", 0, 0, 0},
++ { XK_KP_Enter, ShiftMask, "[141;2u", 0, 0, 0},
++ { XK_KP_Subtract, XK_NO_MOD, "Om", +2, 0, 0},
++ { XK_KP_Subtract, ControlMask, "[173;5u", 0, 0, 0},
++ { XK_KP_Subtract, ControlMask|ShiftMask, "[173;6u", 0, 0, 0},
++ { XK_KP_Subtract, Mod1Mask, "[173;3u", 0, 0, 0},
++ { XK_KP_Subtract, Mod1Mask|ControlMask, "[173;7u", 0, 0, 0},
++ { XK_KP_Subtract, Mod1Mask|ControlMask|ShiftMask, "[173;8u", 0, 0, 0},
++ { XK_KP_Subtract, Mod1Mask|ShiftMask, "[173;4u", 0, 0, 0},
++ { XK_KP_Subtract, ShiftMask, "[173;2u", 0, 0, 0},
++ { XK_KP_Decimal, XK_NO_MOD, "On", +2, 0, 0},
++ { XK_KP_Decimal, ControlMask, "[174;5u", 0, 0, 0},
++ { XK_KP_Decimal, ControlMask|ShiftMask, "[174;6u", 0, 0, 0},
++ { XK_KP_Decimal, Mod1Mask, "[174;3u", 0, 0, 0},
++ { XK_KP_Decimal, Mod1Mask|ControlMask, "[174;7u", 0, 0, 0},
++ { XK_KP_Decimal, Mod1Mask|ControlMask|ShiftMask, "[174;8u", 0, 0, 0},
++ { XK_KP_Decimal, Mod1Mask|ShiftMask, "[174;4u", 0, 0, 0},
++ { XK_KP_Decimal, ShiftMask, "[174;2u", 0, 0, 0},
++ { XK_KP_Divide, XK_NO_MOD, "Oo", +2, 0, 0},
++ { XK_KP_Divide, ControlMask, "[175;5u", 0, 0, 0},
++ { XK_KP_Divide, ControlMask|ShiftMask, "[175;6u", 0, 0, 0},
++ { XK_KP_Divide, Mod1Mask, "[175;3u", 0, 0, 0},
++ { XK_KP_Divide, Mod1Mask|ControlMask, "[175;7u", 0, 0, 0},
++ { XK_KP_Divide, Mod1Mask|ControlMask|ShiftMask, "[175;8u", 0, 0, 0},
++ { XK_KP_Divide, Mod1Mask|ShiftMask, "[175;4u", 0, 0, 0},
++ { XK_KP_Divide, ShiftMask, "[175;2u", 0, 0, 0},
++ { XK_KP_0, XK_NO_MOD, "Op", +2, 0, 0},
++ { XK_KP_0, ControlMask, "[176;5u", 0, 0, 0},
++ { XK_KP_0, ControlMask|ShiftMask, "[176;6u", 0, 0, 0},
++ { XK_KP_0, Mod1Mask, "[176;3u", 0, 0, 0},
++ { XK_KP_0, Mod1Mask|ControlMask, "[176;7u", 0, 0, 0},
++ { XK_KP_0, Mod1Mask|ControlMask|ShiftMask, "[176;8u", 0, 0, 0},
++ { XK_KP_0, Mod1Mask|ShiftMask, "[176;4u", 0, 0, 0},
++ { XK_KP_0, ShiftMask, "[176;2u", 0, 0, 0},
++ { XK_KP_1, XK_NO_MOD, "Oq", +2, 0, 0},
++ { XK_KP_0, ControlMask, "[177;5u", 0, 0, 0},
++ { XK_KP_0, ControlMask|ShiftMask, "[177;6u", 0, 0, 0},
++ { XK_KP_0, Mod1Mask, "[177;3u", 0, 0, 0},
++ { XK_KP_0, Mod1Mask|ControlMask, "[177;7u", 0, 0, 0},
++ { XK_KP_0, Mod1Mask|ControlMask|ShiftMask, "[177;8u", 0, 0, 0},
++ { XK_KP_0, Mod1Mask|ShiftMask, "[177;4u", 0, 0, 0},
++ { XK_KP_0, ShiftMask, "[177;2u", 0, 0, 0},
++ { XK_KP_2, XK_NO_MOD, "Or", +2, 0, 0},
++ { XK_KP_2, ControlMask, "[178;5u", 0, 0, 0},
++ { XK_KP_2, ControlMask|ShiftMask, "[178;6u", 0, 0, 0},
++ { XK_KP_2, Mod1Mask, "[178;3u", 0, 0, 0},
++ { XK_KP_2, Mod1Mask|ControlMask, "[178;7u", 0, 0, 0},
++ { XK_KP_2, Mod1Mask|ControlMask|ShiftMask, "[178;8u", 0, 0, 0},
++ { XK_KP_2, Mod1Mask|ShiftMask, "[178;4u", 0, 0, 0},
++ { XK_KP_2, ShiftMask, "[178;2u", 0, 0, 0},
++ { XK_KP_3, XK_NO_MOD, "Os", +2, 0, 0},
++ { XK_KP_3, ControlMask, "[179;5u", 0, 0, 0},
++ { XK_KP_3, ControlMask|ShiftMask, "[179;6u", 0, 0, 0},
++ { XK_KP_3, Mod1Mask, "[179;3u", 0, 0, 0},
++ { XK_KP_3, Mod1Mask|ControlMask, "[179;7u", 0, 0, 0},
++ { XK_KP_3, Mod1Mask|ControlMask|ShiftMask, "[179;8u", 0, 0, 0},
++ { XK_KP_3, Mod1Mask|ShiftMask, "[179;4u", 0, 0, 0},
++ { XK_KP_3, ShiftMask, "[179;2u", 0, 0, 0},
++ { XK_KP_4, XK_NO_MOD, "Ot", +2, 0, 0},
++ { XK_KP_4, ControlMask, "[180;5u", 0, 0, 0},
++ { XK_KP_4, ControlMask|ShiftMask, "[180;6u", 0, 0, 0},
++ { XK_KP_4, Mod1Mask, "[180;3u", 0, 0, 0},
++ { XK_KP_4, Mod1Mask|ControlMask, "[180;7u", 0, 0, 0},
++ { XK_KP_4, Mod1Mask|ControlMask|ShiftMask, "[180;8u", 0, 0, 0},
++ { XK_KP_4, Mod1Mask|ShiftMask, "[180;4u", 0, 0, 0},
++ { XK_KP_4, ShiftMask, "[180;2u", 0, 0, 0},
++ { XK_KP_5, XK_NO_MOD, "Ou", +2, 0, 0},
++ { XK_KP_5, ControlMask, "[181;5u", 0, 0, 0},
++ { XK_KP_5, ControlMask|ShiftMask, "[181;6u", 0, 0, 0},
++ { XK_KP_5, Mod1Mask, "[181;3u", 0, 0, 0},
++ { XK_KP_5, Mod1Mask|ControlMask, "[181;7u", 0, 0, 0},
++ { XK_KP_5, Mod1Mask|ControlMask|ShiftMask, "[181;8u", 0, 0, 0},
++ { XK_KP_5, Mod1Mask|ShiftMask, "[181;4u", 0, 0, 0},
++ { XK_KP_5, ShiftMask, "[181;2u", 0, 0, 0},
++ { XK_KP_6, XK_NO_MOD, "Ov", +2, 0, 0},
++ { XK_KP_6, ControlMask, "[182;5u", 0, 0, 0},
++ { XK_KP_6, ControlMask|ShiftMask, "[182;6u", 0, 0, 0},
++ { XK_KP_6, Mod1Mask, "[182;3u", 0, 0, 0},
++ { XK_KP_6, Mod1Mask|ControlMask, "[182;7u", 0, 0, 0},
++ { XK_KP_6, Mod1Mask|ControlMask|ShiftMask, "[182;8u", 0, 0, 0},
++ { XK_KP_6, Mod1Mask|ShiftMask, "[182;4u", 0, 0, 0},
++ { XK_KP_6, ShiftMask, "[182;2u", 0, 0, 0},
++ { XK_KP_7, XK_NO_MOD, "Ow", +2, 0, 0},
++ { XK_KP_7, ControlMask, "[183;5u", 0, 0, 0},
++ { XK_KP_7, ControlMask|ShiftMask, "[183;6u", 0, 0, 0},
++ { XK_KP_7, Mod1Mask, "[183;3u", 0, 0, 0},
++ { XK_KP_7, Mod1Mask|ControlMask, "[183;7u", 0, 0, 0},
++ { XK_KP_7, Mod1Mask|ControlMask|ShiftMask, "[183;8u", 0, 0, 0},
++ { XK_KP_7, Mod1Mask|ShiftMask, "[183;4u", 0, 0, 0},
++ { XK_KP_7, ShiftMask, "[183;2u", 0, 0, 0},
++ { XK_KP_8, XK_NO_MOD, "Ox", +2, 0, 0},
++ { XK_KP_8, ControlMask, "[184;5u", 0, 0, 0},
++ { XK_KP_8, ControlMask|ShiftMask, "[184;6u", 0, 0, 0},
++ { XK_KP_8, Mod1Mask, "[184;3u", 0, 0, 0},
++ { XK_KP_8, Mod1Mask|ControlMask, "[184;7u", 0, 0, 0},
++ { XK_KP_8, Mod1Mask|ControlMask|ShiftMask, "[184;8u", 0, 0, 0},
++ { XK_KP_8, Mod1Mask|ShiftMask, "[184;4u", 0, 0, 0},
++ { XK_KP_8, ShiftMask, "[184;2u", 0, 0, 0},
++ { XK_KP_9, XK_NO_MOD, "Oy", +2, 0, 0},
++ { XK_KP_9, ControlMask, "[185;5u", 0, 0, 0},
++ { XK_KP_9, ControlMask|ShiftMask, "[185;6u", 0, 0, 0},
++ { XK_KP_9, Mod1Mask, "[185;3u", 0, 0, 0},
++ { XK_KP_9, Mod1Mask|ControlMask, "[185;7u", 0, 0, 0},
++ { XK_KP_9, Mod1Mask|ControlMask|ShiftMask, "[185;8u", 0, 0, 0},
++ { XK_KP_9, Mod1Mask|ShiftMask, "[185;4u", 0, 0, 0},
++ { XK_KP_9, ShiftMask, "[185;2u", 0, 0, 0},
++ { XK_BackSpace, ControlMask, "[127;5u", 0, 0, 0},
++ { XK_BackSpace, ControlMask|ShiftMask, "[127;6u", 0, 0, 0},
++ { XK_BackSpace, Mod1Mask, "[127;3u", 0, 0, 0},
++ { XK_BackSpace, Mod1Mask|ControlMask, "[127;7u", 0, 0, 0},
++ { XK_BackSpace, Mod1Mask|ControlMask|ShiftMask, "[127;8u", 0, 0, 0},
++ { XK_BackSpace, Mod1Mask|ShiftMask, "[127;4u", 0, 0, 0},
++ { XK_BackSpace, ShiftMask, "[127;2u", 0, 0, 0},
++ { XK_Tab, ControlMask, "[9;5u", 0, 0, 0},
++ { XK_Tab, ControlMask|ShiftMask, "[1;5Z", 0, 0, 0},
++ { XK_Tab, Mod1Mask, "[1;3Z", 0, 0, 0},
++ { XK_Tab, Mod1Mask|ControlMask, "[1;7Z", 0, 0, 0},
++ { XK_Tab, Mod1Mask|ControlMask|ShiftMask, "[1;8Z", 0, 0, 0},
++ { XK_Tab, Mod1Mask|ShiftMask, "[1;4Z", 0, 0, 0},
++ { XK_Return, ControlMask, "[13;5u", 0, 0, 0},
++ { XK_Return, ControlMask|ShiftMask, "[13;6u", 0, 0, 0},
++ { XK_Return, Mod1Mask, "[13;3u", 0, 0, 0},
++ { XK_Return, Mod1Mask|ControlMask, "[13;7u", 0, 0, 0},
++ { XK_Return, Mod1Mask|ControlMask|ShiftMask, "[13;8u", 0, 0, 0},
++ { XK_Return, Mod1Mask|ShiftMask, "[13;4u", 0, 0, 0},
++ { XK_Return, ShiftMask, "[13;2u", 0, 0, 0},
++ { XK_Pause, ControlMask, "[18;5u", 0, 0, 0},
++ { XK_Pause, ControlMask|ShiftMask, "[18;6u", 0, 0, 0},
++ { XK_Pause, Mod1Mask, "[18;3u", 0, 0, 0},
++ { XK_Pause, Mod1Mask|ControlMask, "[18;7u", 0, 0, 0},
++ { XK_Pause, Mod1Mask|ControlMask|ShiftMask, "[18;8u", 0, 0, 0},
++ { XK_Pause, Mod1Mask|ShiftMask, "[18;4u", 0, 0, 0},
++ { XK_Pause, ShiftMask, "[18;2u", 0, 0, 0},
++ { XK_Scroll_Lock, ControlMask, "[20;5u", 0, 0, 0},
++ { XK_Scroll_Lock, ControlMask|ShiftMask, "[20;6u", 0, 0, 0},
++ { XK_Scroll_Lock, Mod1Mask, "[20;3u", 0, 0, 0},
++ { XK_Scroll_Lock, Mod1Mask|ControlMask, "[20;7u", 0, 0, 0},
++ { XK_Scroll_Lock, Mod1Mask|ControlMask|ShiftMask, "[20;8u", 0, 0, 0},
++ { XK_Scroll_Lock, Mod1Mask|ShiftMask, "[20;4u", 0, 0, 0},
++ { XK_Scroll_Lock, ShiftMask, "[20;2u", 0, 0, 0},
++ { XK_Escape, ControlMask, "[27;5u", 0, 0, 0},
++ { XK_Escape, ControlMask|ShiftMask, "[27;6u", 0, 0, 0},
++ { XK_Escape, Mod1Mask, "[27;3u", 0, 0, 0},
++ { XK_Escape, Mod1Mask|ControlMask, "[27;7u", 0, 0, 0},
++ { XK_Escape, Mod1Mask|ControlMask|ShiftMask, "[27;8u", 0, 0, 0},
++ { XK_Escape, Mod1Mask|ShiftMask, "[27;4u", 0, 0, 0},
++ { XK_Escape, ShiftMask, "[27;2u", 0, 0, 0},
++ { XK_Home, XK_NO_MOD, "[H", 0, -1, 0},
++ { XK_Home, XK_NO_MOD, "[1~", 0, +1, 0},
++ { XK_Home, ControlMask|ShiftMask, "[80;6u", 0, 0, 0},
++ { XK_Home, Mod1Mask, "[80;3u", 0, 0, 0},
++ { XK_Home, Mod1Mask|ControlMask, "[80;7u", 0, 0, 0},
++ { XK_Home, Mod1Mask|ControlMask|ShiftMask, "[80;8u", 0, 0, 0},
++ { XK_Home, Mod1Mask|ShiftMask, "[80;4u", 0, 0, 0},
++ { XK_End, XK_NO_MOD, "[4~", 0, 0, 0},
++ { XK_End, ControlMask|ShiftMask, "[87;6u", 0, 0, 0},
++ { XK_End, Mod1Mask, "[87;3u", 0, 0, 0},
++ { XK_End, Mod1Mask|ControlMask, "[87;7u", 0, 0, 0},
++ { XK_End, Mod1Mask|ControlMask|ShiftMask, "[87;8u", 0, 0, 0},
++ { XK_End, Mod1Mask|ShiftMask, "[87;4u", 0, 0, 0},
++ { XK_Prior, XK_NO_MOD, "[5~", 0, 0, 0},
++ { XK_Prior, ControlMask|ShiftMask, "[85;6u", 0, 0, 0},
++ { XK_Prior, Mod1Mask, "[85;3u", 0, 0, 0},
++ { XK_Prior, Mod1Mask|ControlMask, "[85;7u", 0, 0, 0},
++ { XK_Prior, Mod1Mask|ControlMask|ShiftMask, "[85;8u", 0, 0, 0},
++ { XK_Prior, Mod1Mask|ShiftMask, "[85;4u", 0, 0, 0},
++ { XK_Next, XK_NO_MOD, "[6~", 0, 0, 0},
++ { XK_Next, ControlMask|ShiftMask, "[86;6u", 0, 0, 0},
++ { XK_Next, Mod1Mask, "[86;3u", 0, 0, 0},
++ { XK_Next, Mod1Mask|ControlMask, "[86;7u", 0, 0, 0},
++ { XK_Next, Mod1Mask|ControlMask|ShiftMask, "[86;8u", 0, 0, 0},
++ { XK_Next, Mod1Mask|ShiftMask, "[86;4u", 0, 0, 0},
++ { XK_Print, ControlMask, "[97;5u", 0, 0, 0},
++ { XK_Print, ControlMask|ShiftMask, "[97;6u", 0, 0, 0},
++ { XK_Print, Mod1Mask, "[97;3u", 0, 0, 0},
++ { XK_Print, Mod1Mask|ControlMask, "[97;7u", 0, 0, 0},
++ { XK_Print, Mod1Mask|ControlMask|ShiftMask, "[97;8u", 0, 0, 0},
++ { XK_Print, Mod1Mask|ShiftMask, "[97;4u", 0, 0, 0},
++ { XK_Print, ShiftMask, "[97;2u", 0, 0, 0},
++ { XK_Insert, XK_NO_MOD, "[4h", -1, 0, 0},
++ { XK_Insert, XK_NO_MOD, "[2~", +1, 0, 0},
++ { XK_Insert, ControlMask|ShiftMask, "[99;6u", 0, 0, 0},
++ { XK_Insert, Mod1Mask, "[99;3u", 0, 0, 0},
++ { XK_Insert, Mod1Mask|ControlMask, "[99;7u", 0, 0, 0},
++ { XK_Insert, Mod1Mask|ControlMask|ShiftMask, "[99;8u", 0, 0, 0},
++ { XK_Insert, Mod1Mask|ShiftMask, "[99;4u", 0, 0, 0},
++ { XK_Menu, ControlMask, "[103;5u", 0, 0, 0},
++ { XK_Menu, ControlMask|ShiftMask, "[103;6u", 0, 0, 0},
++ { XK_Menu, Mod1Mask, "[103;3u", 0, 0, 0},
++ { XK_Menu, Mod1Mask|ControlMask, "[103;7u", 0, 0, 0},
++ { XK_Menu, Mod1Mask|ControlMask|ShiftMask, "[103;8u", 0, 0, 0},
++ { XK_Menu, Mod1Mask|ShiftMask, "[103;4u", 0, 0, 0},
++ { XK_Menu, ShiftMask, "[103;2u", 0, 0, 0},
++ { XK_Delete, XK_NO_MOD, "[P", -1, 0, 0},
++ { XK_Delete, XK_NO_MOD, "[3~", +1, 0, 0},
++ { XK_Delete, ControlMask|ShiftMask, "[255;6u", 0, 0, 0},
++ { XK_Delete, Mod1Mask, "[255;3u", 0, 0, 0},
++ { XK_Delete, Mod1Mask|ControlMask, "[255;7u", 0, 0, 0},
++ { XK_Delete, Mod1Mask|ControlMask|ShiftMask, "[255;8u", 0, 0, 0},
++ { XK_Delete, Mod1Mask|ShiftMask, "[255;4u", 0, 0, 0},
++ { XK_i, ControlMask, "[105;5u", 0, 0, 0},
++ { XK_i, Mod1Mask|ControlMask, "[105;7u", 0, 0, 0},
++ { XK_m, ControlMask, "[109;5u", 0, 0, 0},
++ { XK_m, Mod1Mask|ControlMask, "[109;7u", 0, 0, 0},
++ { XK_space, ControlMask|ShiftMask, "[32;6u", 0, 0, 0},
++ { XK_space, Mod1Mask, "[32;3u", 0, 0, 0},
++ { XK_space, Mod1Mask|ControlMask, "[32;7u", 0, 0, 0},
++ { XK_space, Mod1Mask|ControlMask|ShiftMask, "[32;8u", 0, 0, 0},
++ { XK_space, Mod1Mask|ShiftMask, "[32;4u", 0, 0, 0},
++ { XK_space, ShiftMask, "[32;2u", 0, 0, 0},
++ { XK_0, ControlMask, "[48;5u", 0, 0, 0},
++ { XK_A, ControlMask|ShiftMask, "[65;6u", 0, 0, 0},
++ { XK_B, ControlMask|ShiftMask, "[66;6u", 0, 0, 0},
++ { XK_C, ControlMask|ShiftMask, "[67;6u", 0, 0, 0},
++ { XK_D, ControlMask|ShiftMask, "[68;6u", 0, 0, 0},
++ { XK_E, ControlMask|ShiftMask, "[69;6u", 0, 0, 0},
++ { XK_F, ControlMask|ShiftMask, "[70;6u", 0, 0, 0},
++ { XK_G, ControlMask|ShiftMask, "[71;6u", 0, 0, 0},
++ { XK_H, ControlMask|ShiftMask, "[72;6u", 0, 0, 0},
++ { XK_I, ControlMask|ShiftMask, "[73;6u", 0, 0, 0},
++ { XK_I, Mod1Mask|ControlMask|ShiftMask, "[73;8u", 0, 0, 0},
++ { XK_J, ControlMask|ShiftMask, "[75;6u", 0, 0, 0},
++ { XK_K, ControlMask|ShiftMask, "[74;6u", 0, 0, 0},
++ { XK_L, ControlMask|ShiftMask, "[76;6u", 0, 0, 0},
++ { XK_M, ControlMask|ShiftMask, "[77;6u", 0, 0, 0},
++ { XK_M, Mod1Mask|ControlMask|ShiftMask, "[77;8u", 0, 0, 0},
++ { XK_N, ControlMask|ShiftMask, "[78;6u", 0, 0, 0},
++ { XK_O, ControlMask|ShiftMask, "[79;6u", 0, 0, 0},
++ { XK_P, ControlMask|ShiftMask, "[80;6u", 0, 0, 0},
++ { XK_Q, ControlMask|ShiftMask, "[81;6u", 0, 0, 0},
++ { XK_R, ControlMask|ShiftMask, "[82;6u", 0, 0, 0},
++ { XK_S, ControlMask|ShiftMask, "[83;6u", 0, 0, 0},
++ { XK_T, ControlMask|ShiftMask, "[84;6u", 0, 0, 0},
++ { XK_U, ControlMask|ShiftMask, "[85;6u", 0, 0, 0},
++ { XK_V, ControlMask|ShiftMask, "[86;6u", 0, 0, 0},
++ { XK_W, ControlMask|ShiftMask, "[87;6u", 0, 0, 0},
++ { XK_X, ControlMask|ShiftMask, "[88;6u", 0, 0, 0},
++ { XK_Y, ControlMask|ShiftMask, "[89;6u", 0, 0, 0},
++ { XK_Z, ControlMask|ShiftMask, "[90;6u", 0, 0, 0},
++ { XK_Z, ControlMask|ShiftMask, "[90;6u", 0, 0, 0},
++ { XK_0, Mod1Mask|ControlMask, "[48;7u", 0, 0, 0},
++ { XK_1, ControlMask, "[49;5u", 0, 0, 0},
++ { XK_1, Mod1Mask|ControlMask, "[49;7u", 0, 0, 0},
++ { XK_2, ControlMask, "[50;5u", 0, 0, 0},
++ { XK_2, Mod1Mask|ControlMask, "[50;7u", 0, 0, 0},
++ { XK_3, ControlMask, "[51;5u", 0, 0, 0},
++ { XK_3, Mod1Mask|ControlMask, "[51;7u", 0, 0, 0},
++ { XK_4, ControlMask, "[52;5u", 0, 0, 0},
++ { XK_4, Mod1Mask|ControlMask, "[52;7u", 0, 0, 0},
++ { XK_5, ControlMask, "[53;5u", 0, 0, 0},
++ { XK_5, Mod1Mask|ControlMask, "[53;7u", 0, 0, 0},
++ { XK_6, ControlMask, "[54;5u", 0, 0, 0},
++ { XK_6, Mod1Mask|ControlMask, "[54;7u", 0, 0, 0},
++ { XK_7, ControlMask, "[55;5u", 0, 0, 0},
++ { XK_7, Mod1Mask|ControlMask, "[55;7u", 0, 0, 0},
++ { XK_8, ControlMask, "[56;5u", 0, 0, 0},
++ { XK_8, Mod1Mask|ControlMask, "[56;7u", 0, 0, 0},
++ { XK_9, ControlMask, "[57;5u", 0, 0, 0},
++ { XK_9, Mod1Mask|ControlMask, "[57;7u", 0, 0, 0},
++ { XK_ampersand, ControlMask, "[38;5u", 0, 0, 0},
++ { XK_ampersand, ControlMask|ShiftMask, "[38;6u", 0, 0, 0},
++ { XK_ampersand, Mod1Mask, "[38;3u", 0, 0, 0},
++ { XK_ampersand, Mod1Mask|ControlMask, "[38;7u", 0, 0, 0},
++ { XK_ampersand, Mod1Mask|ControlMask|ShiftMask, "[38;8u", 0, 0, 0},
++ { XK_ampersand, Mod1Mask|ShiftMask, "[38;4u", 0, 0, 0},
++ { XK_apostrophe, ControlMask, "[39;5u", 0, 0, 0},
++ { XK_apostrophe, ControlMask|ShiftMask, "[39;6u", 0, 0, 0},
++ { XK_apostrophe, Mod1Mask, "[39;3u", 0, 0, 0},
++ { XK_apostrophe, Mod1Mask|ControlMask, "[39;7u", 0, 0, 0},
++ { XK_apostrophe, Mod1Mask|ControlMask|ShiftMask, "[39;8u", 0, 0, 0},
++ { XK_apostrophe, Mod1Mask|ShiftMask, "[39;4u", 0, 0, 0},
++ { XK_asciicircum, ControlMask, "[94;5u", 0, 0, 0},
++ { XK_asciicircum, ControlMask|ShiftMask, "[94;6u", 0, 0, 0},
++ { XK_asciicircum, Mod1Mask, "[94;3u", 0, 0, 0},
++ { XK_asciicircum, Mod1Mask|ControlMask, "[94;7u", 0, 0, 0},
++ { XK_asciicircum, Mod1Mask|ControlMask|ShiftMask, "[94;8u", 0, 0, 0},
++ { XK_asciicircum, Mod1Mask|ShiftMask, "[94;4u", 0, 0, 0},
++ { XK_asciitilde, ControlMask, "[126;5u", 0, 0, 0},
++ { XK_asciitilde, ControlMask|ShiftMask, "[126;6u", 0, 0, 0},
++ { XK_asciitilde, Mod1Mask, "[126;3u", 0, 0, 0},
++ { XK_asciitilde, Mod1Mask|ControlMask, "[126;7u", 0, 0, 0},
++ { XK_asciitilde, Mod1Mask|ControlMask|ShiftMask, "[126;8u", 0, 0, 0},
++ { XK_asciitilde, Mod1Mask|ShiftMask, "[126;4u", 0, 0, 0},
++ { XK_asterisk, ControlMask, "[42;5u", 0, 0, 0},
++ { XK_asterisk, ControlMask|ShiftMask, "[42;6u", 0, 0, 0},
++ { XK_asterisk, Mod1Mask, "[42;3u", 0, 0, 0},
++ { XK_asterisk, Mod1Mask|ControlMask, "[42;7u", 0, 0, 0},
++ { XK_asterisk, Mod1Mask|ControlMask|ShiftMask, "[42;8u", 0, 0, 0},
++ { XK_asterisk, Mod1Mask|ShiftMask, "[42;4u", 0, 0, 0},
++ { XK_at, ControlMask, "[64;5u", 0, 0, 0},
++ { XK_at, ControlMask|ShiftMask, "[64;6u", 0, 0, 0},
++ { XK_at, Mod1Mask, "[64;3u", 0, 0, 0},
++ { XK_at, Mod1Mask|ControlMask, "[64;7u", 0, 0, 0},
++ { XK_at, Mod1Mask|ControlMask|ShiftMask, "[64;8u", 0, 0, 0},
++ { XK_at, Mod1Mask|ShiftMask, "[64;4u", 0, 0, 0},
++ { XK_backslash, ControlMask, "[92;5u", 0, 0, 0},
++ { XK_backslash, ControlMask|ShiftMask, "[92;6u", 0, 0, 0},
++ { XK_backslash, Mod1Mask, "[92;3u", 0, 0, 0},
++ { XK_backslash, Mod1Mask|ControlMask, "[92;7u", 0, 0, 0},
++ { XK_backslash, Mod1Mask|ControlMask|ShiftMask, "[92;8u", 0, 0, 0},
++ { XK_backslash, Mod1Mask|ShiftMask, "[92;4u", 0, 0, 0},
++ { XK_bar, ControlMask, "[124;5u", 0, 0, 0},
++ { XK_bar, ControlMask|ShiftMask, "[124;6u", 0, 0, 0},
++ { XK_bar, Mod1Mask, "[124;3u", 0, 0, 0},
++ { XK_bar, Mod1Mask|ControlMask, "[124;7u", 0, 0, 0},
++ { XK_bar, Mod1Mask|ControlMask|ShiftMask, "[124;8u", 0, 0, 0},
++ { XK_bar, Mod1Mask|ShiftMask, "[124;4u", 0, 0, 0},
++ { XK_braceleft, ControlMask, "[123;5u", 0, 0, 0},
++ { XK_braceleft, ControlMask|ShiftMask, "[123;6u", 0, 0, 0},
++ { XK_braceleft, Mod1Mask, "[123;3u", 0, 0, 0},
++ { XK_braceleft, Mod1Mask|ControlMask, "[123;7u", 0, 0, 0},
++ { XK_braceleft, Mod1Mask|ControlMask|ShiftMask, "[123;8u", 0, 0, 0},
++ { XK_braceleft, Mod1Mask|ShiftMask, "[123;4u", 0, 0, 0},
++ { XK_braceright, ControlMask, "[125;5u", 0, 0, 0},
++ { XK_braceright, ControlMask|ShiftMask, "[125;6u", 0, 0, 0},
++ { XK_braceright, Mod1Mask, "[125;3u", 0, 0, 0},
++ { XK_braceright, Mod1Mask|ControlMask, "[125;7u", 0, 0, 0},
++ { XK_braceright, Mod1Mask|ControlMask|ShiftMask, "[125;8u", 0, 0, 0},
++ { XK_braceright, Mod1Mask|ShiftMask, "[125;4u", 0, 0, 0},
++ { XK_bracketleft, ControlMask, "[91;5u", 0, 0, 0},
++ { XK_bracketleft, ControlMask|ShiftMask, "[91;6u", 0, 0, 0},
++ { XK_bracketleft, Mod1Mask, "[91;3u", 0, 0, 0},
++ { XK_bracketleft, Mod1Mask|ControlMask, "[91;7u", 0, 0, 0},
++ { XK_bracketleft, Mod1Mask|ControlMask|ShiftMask, "[91;8u", 0, 0, 0},
++ { XK_bracketleft, Mod1Mask|ShiftMask, "[91;4u", 0, 0, 0},
++ { XK_bracketright, ControlMask, "[93;5u", 0, 0, 0},
++ { XK_bracketright, ControlMask|ShiftMask, "[93;6u", 0, 0, 0},
++ { XK_bracketright, Mod1Mask, "[93;3u", 0, 0, 0},
++ { XK_bracketright, Mod1Mask|ControlMask, "[93;7u", 0, 0, 0},
++ { XK_bracketright, Mod1Mask|ControlMask|ShiftMask, "[93;8u", 0, 0, 0},
++ { XK_bracketright, Mod1Mask|ShiftMask, "[93;4u", 0, 0, 0},
++ { XK_colon, ControlMask, "[58;5u", 0, 0, 0},
++ { XK_colon, ControlMask|ShiftMask, "[58;6u", 0, 0, 0},
++ { XK_colon, Mod1Mask, "[58;3u", 0, 0, 0},
++ { XK_colon, Mod1Mask|ControlMask, "[58;7u", 0, 0, 0},
++ { XK_colon, Mod1Mask|ControlMask|ShiftMask, "[58;8u", 0, 0, 0},
++ { XK_colon, Mod1Mask|ShiftMask, "[58;4u", 0, 0, 0},
++ { XK_comma, ControlMask, "[44;5u", 0, 0, 0},
++ { XK_comma, ControlMask|ShiftMask, "[44;6u", 0, 0, 0},
++ { XK_comma, Mod1Mask, "[44;3u", 0, 0, 0},
++ { XK_comma, Mod1Mask|ControlMask, "[44;7u", 0, 0, 0},
++ { XK_comma, Mod1Mask|ControlMask|ShiftMask, "[44;8u", 0, 0, 0},
++ { XK_comma, Mod1Mask|ShiftMask, "[44;4u", 0, 0, 0},
++ { XK_dollar, ControlMask, "[36;5u", 0, 0, 0},
++ { XK_dollar, ControlMask|ShiftMask, "[36;6u", 0, 0, 0},
++ { XK_dollar, Mod1Mask, "[36;3u", 0, 0, 0},
++ { XK_dollar, Mod1Mask|ControlMask, "[36;7u", 0, 0, 0},
++ { XK_dollar, Mod1Mask|ControlMask|ShiftMask, "[36;8u", 0, 0, 0},
++ { XK_dollar, Mod1Mask|ShiftMask, "[36;4u", 0, 0, 0},
++ { XK_equal, ControlMask, "[61;5u", 0, 0, 0},
++ { XK_equal, ControlMask|ShiftMask, "[61;6u", 0, 0, 0},
++ { XK_equal, Mod1Mask, "[61;3u", 0, 0, 0},
++ { XK_equal, Mod1Mask|ControlMask, "[61;7u", 0, 0, 0},
++ { XK_equal, Mod1Mask|ControlMask|ShiftMask, "[61;8u", 0, 0, 0},
++ { XK_equal, Mod1Mask|ShiftMask, "[61;4u", 0, 0, 0},
++ { XK_exclam, ControlMask, "[33;5u", 0, 0, 0},
++ { XK_exclam, ControlMask|ShiftMask, "[33;6u", 0, 0, 0},
++ { XK_exclam, Mod1Mask, "[33;3u", 0, 0, 0},
++ { XK_exclam, Mod1Mask|ControlMask, "[33;7u", 0, 0, 0},
++ { XK_exclam, Mod1Mask|ControlMask|ShiftMask, "[33;8u", 0, 0, 0},
++ { XK_exclam, Mod1Mask|ShiftMask, "[33;4u", 0, 0, 0},
++ { XK_grave, ControlMask, "[96;5u", 0, 0, 0},
++ { XK_grave, ControlMask|ShiftMask, "[96;6u", 0, 0, 0},
++ { XK_grave, Mod1Mask, "[96;3u", 0, 0, 0},
++ { XK_grave, Mod1Mask|ControlMask, "[96;7u", 0, 0, 0},
++ { XK_grave, Mod1Mask|ControlMask|ShiftMask, "[96;8u", 0, 0, 0},
++ { XK_grave, Mod1Mask|ShiftMask, "[96;4u", 0, 0, 0},
++ { XK_greater, ControlMask, "[62;5u", 0, 0, 0},
++ { XK_greater, ControlMask|ShiftMask, "[62;6u", 0, 0, 0},
++ { XK_greater, Mod1Mask, "[62;3u", 0, 0, 0},
++ { XK_greater, Mod1Mask|ControlMask, "[62;7u", 0, 0, 0},
++ { XK_greater, Mod1Mask|ControlMask|ShiftMask, "[62;8u", 0, 0, 0},
++ { XK_greater, Mod1Mask|ShiftMask, "[62;4u", 0, 0, 0},
++ { XK_less, ControlMask, "[60;5u", 0, 0, 0},
++ { XK_less, ControlMask|ShiftMask, "[60;6u", 0, 0, 0},
++ { XK_less, Mod1Mask, "[60;3u", 0, 0, 0},
++ { XK_less, Mod1Mask|ControlMask, "[60;7u", 0, 0, 0},
++ { XK_less, Mod1Mask|ControlMask|ShiftMask, "[60;8u", 0, 0, 0},
++ { XK_less, Mod1Mask|ShiftMask, "[60;4u", 0, 0, 0},
++ { XK_minus, ControlMask, "[45;5u", 0, 0, 0},
++ { XK_minus, ControlMask|ShiftMask, "[45;6u", 0, 0, 0},
++ { XK_minus, Mod1Mask, "[45;3u", 0, 0, 0},
++ { XK_minus, Mod1Mask|ControlMask, "[45;7u", 0, 0, 0},
++ { XK_minus, Mod1Mask|ControlMask|ShiftMask, "[45;8u", 0, 0, 0},
++ { XK_minus, Mod1Mask|ShiftMask, "[45;4u", 0, 0, 0},
++ { XK_numbersign, ControlMask, "[35;5u", 0, 0, 0},
++ { XK_numbersign, ControlMask|ShiftMask, "[35;6u", 0, 0, 0},
++ { XK_numbersign, Mod1Mask, "[35;3u", 0, 0, 0},
++ { XK_numbersign, Mod1Mask|ControlMask, "[35;7u", 0, 0, 0},
++ { XK_numbersign, Mod1Mask|ControlMask|ShiftMask, "[35;8u", 0, 0, 0},
++ { XK_numbersign, Mod1Mask|ShiftMask, "[35;4u", 0, 0, 0},
++ { XK_parenleft, ControlMask, "[40;5u", 0, 0, 0},
++ { XK_parenleft, ControlMask|ShiftMask, "[40;6u", 0, 0, 0},
++ { XK_parenleft, Mod1Mask, "[40;3u", 0, 0, 0},
++ { XK_parenleft, Mod1Mask|ControlMask, "[40;7u", 0, 0, 0},
++ { XK_parenleft, Mod1Mask|ControlMask|ShiftMask, "[40;8u", 0, 0, 0},
++ { XK_parenleft, Mod1Mask|ShiftMask, "[40;4u", 0, 0, 0},
++ { XK_parenright, ControlMask, "[41;5u", 0, 0, 0},
++ { XK_parenright, ControlMask|ShiftMask, "[41;6u", 0, 0, 0},
++ { XK_parenright, Mod1Mask, "[41;3u", 0, 0, 0},
++ { XK_parenright, Mod1Mask|ControlMask, "[41;7u", 0, 0, 0},
++ { XK_parenright, Mod1Mask|ControlMask|ShiftMask, "[41;8u", 0, 0, 0},
++ { XK_parenright, Mod1Mask|ShiftMask, "[41;4u", 0, 0, 0},
++ { XK_percent, ControlMask, "[37;5u", 0, 0, 0},
++ { XK_percent, ControlMask|ShiftMask, "[37;6u", 0, 0, 0},
++ { XK_percent, Mod1Mask, "[37;3u", 0, 0, 0},
++ { XK_percent, Mod1Mask|ControlMask, "[37;7u", 0, 0, 0},
++ { XK_percent, Mod1Mask|ControlMask|ShiftMask, "[37;8u", 0, 0, 0},
++ { XK_percent, Mod1Mask|ShiftMask, "[37;4u", 0, 0, 0},
++ { XK_period, ControlMask, "[46;5u", 0, 0, 0},
++ { XK_period, ControlMask|ShiftMask, "[46;6u", 0, 0, 0},
++ { XK_period, Mod1Mask|ControlMask, "[46;7u", 0, 0, 0},
++ { XK_period, Mod1Mask|ControlMask|ShiftMask, "[46;8u", 0, 0, 0},
++ { XK_period, Mod1Mask|ShiftMask, "[46;4u", 0, 0, 0},
++ { XK_plus, ControlMask, "[43;5u", 0, 0, 0},
++ { XK_plus, ControlMask|ShiftMask, "[43;6u", 0, 0, 0},
++ { XK_plus, Mod1Mask, "[43;3u", 0, 0, 0},
++ { XK_plus, Mod1Mask|ControlMask, "[43;7u", 0, 0, 0},
++ { XK_plus, Mod1Mask|ControlMask|ShiftMask, "[43;8u", 0, 0, 0},
++ { XK_plus, Mod1Mask|ShiftMask, "[43;4u", 0, 0, 0},
++ { XK_question, ControlMask, "[63;5u", 0, 0, 0},
++ { XK_question, ControlMask|ShiftMask, "[63;6u", 0, 0, 0},
++ { XK_question, Mod1Mask, "[63;3u", 0, 0, 0},
++ { XK_question, Mod1Mask|ControlMask, "[63;7u", 0, 0, 0},
++ { XK_question, Mod1Mask|ControlMask|ShiftMask, "[63;8u", 0, 0, 0},
++ { XK_question, Mod1Mask|ShiftMask, "[63;4u", 0, 0, 0},
++ { XK_quotedbl, ControlMask, "[34;5u", 0, 0, 0},
++ { XK_quotedbl, ControlMask|ShiftMask, "[34;6u", 0, 0, 0},
++ { XK_quotedbl, Mod1Mask, "[34;3u", 0, 0, 0},
++ { XK_quotedbl, Mod1Mask|ControlMask, "[34;7u", 0, 0, 0},
++ { XK_quotedbl, Mod1Mask|ControlMask|ShiftMask, "[34;8u", 0, 0, 0},
++ { XK_quotedbl, Mod1Mask|ShiftMask, "[34;4u", 0, 0, 0},
++ { XK_semicolon, ControlMask, "[59;5u", 0, 0, 0},
++ { XK_semicolon, ControlMask|ShiftMask, "[59;6u", 0, 0, 0},
++ { XK_semicolon, Mod1Mask, "[59;3u", 0, 0, 0},
++ { XK_semicolon, Mod1Mask|ControlMask, "[59;7u", 0, 0, 0},
++ { XK_semicolon, Mod1Mask|ControlMask|ShiftMask, "[59;8u", 0, 0, 0},
++ { XK_semicolon, Mod1Mask|ShiftMask, "[59;4u", 0, 0, 0},
++ { XK_slash, ControlMask|ShiftMask, "[47;6u", 0, 0, 0},
++ { XK_slash, Mod1Mask, "[47;3u", 0, 0, 0},
++ { XK_slash, Mod1Mask|ControlMask, "[47;7u", 0, 0, 0},
++ { XK_slash, Mod1Mask|ControlMask|ShiftMask, "[47;8u", 0, 0, 0},
++ { XK_slash, Mod1Mask|ShiftMask, "[47;4u", 0, 0, 0},
++ { XK_underscore, ControlMask, "[95;5u", 0, 0, 0},
++ { XK_underscore, ControlMask|ShiftMask, "[95;6u", 0, 0, 0},
++ { XK_underscore, Mod1Mask, "[95;3u", 0, 0, 0},
++ { XK_underscore, Mod1Mask|ControlMask, "[95;7u", 0, 0, 0},
++ { XK_underscore, Mod1Mask|ControlMask|ShiftMask, "[95;8u", 0, 0, 0},
++ { XK_underscore, Mod1Mask|ShiftMask, "[95;4u", 0, 0, 0},
+ };
+
+ /*
Received on Wed Jun 21 2017 - 07:14:11 CEST