commit 59809311e2983c346ce9f1dee8e0aaf80cc48ed8
Author: Jan Christoph Ebersbach <[email protected]>
Date:   Sat Jun 3 17:03:28 2017 +0200

    [st] Add fix keyboard input patch

diff --git a/st.suckless.org/patches/fix_keyboard_input.md 
b/st.suckless.org/patches/fix_keyboard_input.md
new file mode 100644
index 0000000..6063ac9
--- /dev/null
+++ b/st.suckless.org/patches/fix_keyboard_input.md
@@ -0,0 +1,62 @@
+Fix Keyboard Input (Alpha version, use with caution!)
+=====================================================
+
+Description
+-----------
+
+This patch allows cli applications to use all the fancy key combinations that
+are available to gui applications.  The new scheme for encoding key 
combinations
+was proposed by [Leonard](http://www.leonerd.org.uk/hacks/fixterms/) and 
appears
+to have gained traction over the past years.
+
+
+Notes
+-----
+
+ - Very early stage version of this patch - I'm just at the beginning of 
testing
+   it in real world settings.  I tried to encode as many key combinations as
+   possible according to the new scheme.  This might cause issues with existing
+   applications if they're not aware of it.  Please report any issues that you
+   come accross.
+ - If you use `<C-[>` for `<Esc>`, I suggest that you remove the following line
+   from this patch to reenable the behavior:
+```
+       { XK_bracketleft,  ControlMask,                    "",  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,                    "",  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>
+
+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)
+
+Authors
+-------
+
+ * Jan Christoph Ebersbach - <[email protected]>
diff --git 
a/st.suckless.org/patches/st-fix-keyboard-input-20170603-5a10aca.diff 
b/st.suckless.org/patches/st-fix-keyboard-input-20170603-5a10aca.diff
new file mode 100644
index 0000000..1bb974d
--- /dev/null
+++ b/st.suckless.org/patches/st-fix-keyboard-input-20170603-5a10aca.diff
@@ -0,0 +1,766 @@
+Author: Jan Christoph Ebersbach <[email protected]>
+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
+@@ -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,
+@@ -232,60 +305,20 @@ static Key key[] = {
+       /* keysym           mask            string      appkey appcursor crlf */
+       { XK_KP_Home,       ShiftMask,      "",       0,   -1,    0},
+       { XK_KP_Home,       ShiftMask,      "",     0,   +1,    0},
+-      { XK_KP_Home,       XK_ANY_MOD,     "",        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,     "",        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,     "",        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,     "",        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,     "",        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,     "",        0,    0,    0},
+       { XK_KP_End,        ControlMask,    "",       -1,    0,    0},
+       { XK_KP_End,        ControlMask,    "",    +1,    0,    0},
+       { XK_KP_End,        ShiftMask,      "",       -1,    0,    0},
+       { XK_KP_End,        ShiftMask,      "",    +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,      "",      -1,    0,    0},
+       { XK_KP_Insert,     ControlMask,    "",       -1,    0,    0},
+       { XK_KP_Insert,     ControlMask,    "[2;5~",    +1,    0,    0},
+-      { XK_KP_Insert,     XK_ANY_MOD,     "",      -1,    0,    0},
+-      { XK_KP_Insert,     XK_ANY_MOD,     "[2~",      +1,    0,    0},
+       { XK_KP_Delete,     ControlMask,    "",       -1,    0,    0},
+       { XK_KP_Delete,     ControlMask,    "[3;5~",    +1,    0,    0},
+       { XK_KP_Delete,     ShiftMask,      "",      -1,    0,    0},
+       { XK_KP_Delete,     ShiftMask,      "[3;2~",    +1,    0,    0},
+-      { XK_KP_Delete,     XK_ANY_MOD,     "",       -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,      "",     0,    0,    0},
+       { XK_Up,            Mod1Mask,       "",     0,    0,    0},
+       { XK_Up,         ShiftMask|Mod1Mask,"",     0,    0,    0},
+@@ -325,37 +358,28 @@ static Key key[] = {
+       { XK_ISO_Left_Tab,  ShiftMask,      "",        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,      "",      -1,    0,    0},
+       { XK_Insert,        ShiftMask,      "[2;2~",    +1,    0,    0},
+       { XK_Insert,        ControlMask,    "",       -1,    0,    0},
+       { XK_Insert,        ControlMask,    "[2;5~",    +1,    0,    0},
+-      { XK_Insert,        XK_ANY_MOD,     "",      -1,    0,    0},
+-      { XK_Insert,        XK_ANY_MOD,     "[2~",      +1,    0,    0},
+       { XK_Delete,        ControlMask,    "",       -1,    0,    0},
+       { XK_Delete,        ControlMask,    "[3;5~",    +1,    0,    0},
+       { XK_Delete,        ShiftMask,      "",      -1,    0,    0},
+       { XK_Delete,        ShiftMask,      "[3;2~",    +1,    0,    0},
+-      { XK_Delete,        XK_ANY_MOD,     "",       -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,      "",       0,   -1,    0},
+       { XK_Home,          ShiftMask,      "",     0,   +1,    0},
+-      { XK_Home,          XK_ANY_MOD,     "",        0,   -1,    0},
+-      { XK_Home,          XK_ANY_MOD,     "[1~",       0,   +1,    0},
+       { XK_End,           ControlMask,    "",       -1,    0,    0},
+       { XK_End,           ControlMask,    "",    +1,    0,    0},
+       { XK_End,           ShiftMask,      "",       -1,    0,    0},
+       { XK_End,           ShiftMask,      "",    +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,      "",     0,    0,    0},
+       { XK_F1, /* F25 */  ControlMask,    "",     0,    0,    0},
+@@ -442,6 +466,574 @@ 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,                      "",      0,  -1, 
0},
++      { XK_KP_Home,      XK_NO_MOD,                      "[1~",     0,  +1, 
0},
++      { XK_KP_Home,      ControlMask,                    "", 0,  0,  
0},
++      { XK_KP_Home,      ControlMask|ShiftMask,          "", 0,  0,  
0},
++      { XK_KP_Home,      Mod1Mask,                       "", 0,  0,  
0},
++      { XK_KP_Home,      Mod1Mask|ControlMask,           "", 0,  0,  
0},
++      { XK_KP_Home,      Mod1Mask|ControlMask|ShiftMask, "", 0,  0,  
0},
++      { XK_KP_Home,      Mod1Mask|ShiftMask,             "", 0,  0,  
0},
++      { XK_KP_Home,      ShiftMask,                      "", 0,  0,  
0},
++      { XK_KP_Up,        XK_NO_MOD,                      "Ox",      +1, 0,  
0},
++      { XK_KP_Up,        XK_NO_MOD,                      "",      0,  -1, 
0},
++      { XK_KP_Up,        XK_NO_MOD,                      "OA",      0,  +1, 
0},
++      { XK_KP_Up,        ControlMask,                    "", 0,  0,  
0},
++      { XK_KP_Up,        ControlMask|ShiftMask,          "", 0,  0,  
0},
++      { XK_KP_Up,        Mod1Mask,                       "", 0,  0,  
0},
++      { XK_KP_Up,        Mod1Mask|ControlMask,           "", 0,  0,  
0},
++      { XK_KP_Up,        Mod1Mask|ControlMask|ShiftMask, "", 0,  0,  
0},
++      { XK_KP_Up,        Mod1Mask|ShiftMask,             "", 0,  0,  
0},
++      { XK_KP_Up,        ShiftMask,                      "", 0,  0,  
0},
++      { XK_KP_Down,      XK_NO_MOD,                      "Or",      +1, 0,  
0},
++      { XK_KP_Down,      XK_NO_MOD,                      "",      0,  -1, 
0},
++      { XK_KP_Down,      XK_NO_MOD,                      "OB",      0,  +1, 
0},
++      { XK_KP_Down,      ControlMask,                    "", 0,  0,  
0},
++      { XK_KP_Down,      ControlMask|ShiftMask,          "", 0,  0,  
0},
++      { XK_KP_Down,      Mod1Mask,                       "", 0,  0,  
0},
++      { XK_KP_Down,      Mod1Mask|ControlMask,           "", 0,  0,  
0},
++      { XK_KP_Down,      Mod1Mask|ControlMask|ShiftMask, "", 0,  0,  
0},
++      { XK_KP_Down,      Mod1Mask|ShiftMask,             "", 0,  0,  
0},
++      { XK_KP_Down,      ShiftMask,                      "", 0,  0,  
0},
++      { XK_KP_Left,      XK_NO_MOD,                      "Ot",      +1, 0,  
0},
++      { XK_KP_Left,      XK_NO_MOD,                      "",      0,  -1, 
0},
++      { XK_KP_Left,      XK_NO_MOD,                      "OD",      0,  +1, 
0},
++      { XK_KP_Left,      ControlMask,                    "", 0,  0,  
0},
++      { XK_KP_Left,      ControlMask|ShiftMask,          "", 0,  0,  
0},
++      { XK_KP_Left,      Mod1Mask,                       "", 0,  0,  
0},
++      { XK_KP_Left,      Mod1Mask|ControlMask,           "", 0,  0,  
0},
++      { XK_KP_Left,      Mod1Mask|ControlMask|ShiftMask, "", 0,  0,  
0},
++      { XK_KP_Left,      Mod1Mask|ShiftMask,             "", 0,  0,  
0},
++      { XK_KP_Left,      ShiftMask,                      "", 0,  0,  
0},
++      { XK_KP_Right,     XK_NO_MOD,                      "Ov",      +1, 0,  
0},
++      { XK_KP_Right,     XK_NO_MOD,                      "",      0,  -1, 
0},
++      { XK_KP_Right,     XK_NO_MOD,                      "OC",      0,  +1, 
0},
++      { XK_KP_Right,     ControlMask,                    "", 0,  0,  
0},
++      { XK_KP_Right,     ControlMask|ShiftMask,          "", 0,  0,  
0},
++      { XK_KP_Right,     Mod1Mask,                       "", 0,  0,  
0},
++      { XK_KP_Right,     Mod1Mask|ControlMask,           "", 0,  0,  
0},
++      { XK_KP_Right,     Mod1Mask|ControlMask|ShiftMask, "", 0,  0,  
0},
++      { XK_KP_Right,     Mod1Mask|ShiftMask,             "", 0,  0,  
0},
++      { XK_KP_Right,     ShiftMask,                      "", 0,  0,  
0},
++      { XK_KP_Prior,     XK_NO_MOD,                      "[5~",     0,  0,  
0},
++      { XK_KP_Prior,     ControlMask,                    "", 0,  0,  
0},
++      { XK_KP_Prior,     ControlMask|ShiftMask,          "", 0,  0,  
0},
++      { XK_KP_Prior,     Mod1Mask,                       "", 0,  0,  
0},
++      { XK_KP_Prior,     Mod1Mask|ControlMask,           "", 0,  0,  
0},
++      { XK_KP_Prior,     Mod1Mask|ControlMask|ShiftMask, "", 0,  0,  
0},
++      { XK_KP_Prior,     Mod1Mask|ShiftMask,             "", 0,  0,  
0},
++      { XK_KP_Begin,     XK_NO_MOD,                      "",      0,  0,  
0},
++      { XK_KP_Begin,     ControlMask,                    "", 0,  0,  
0},
++      { XK_KP_Begin,     ControlMask|ShiftMask,          "", 0,  0,  
0},
++      { XK_KP_Begin,     Mod1Mask,                       "", 0,  0,  
0},
++      { XK_KP_Begin,     Mod1Mask|ControlMask,           "", 0,  0,  
0},
++      { XK_KP_Begin,     Mod1Mask|ControlMask|ShiftMask, "", 0,  0,  
0},
++      { XK_KP_Begin,     Mod1Mask|ShiftMask,             "", 0,  0,  
0},
++      { XK_KP_Begin,     ShiftMask,                      "", 0,  0,  
0},
++      { XK_KP_End,       XK_NO_MOD,                      "[4~",     0,  0,  
0},
++      { XK_KP_End,       ControlMask|ShiftMask,          "", 0,  0,  
0},
++      { XK_KP_End,       Mod1Mask,                       "", 0,  0,  
0},
++      { XK_KP_End,       Mod1Mask|ControlMask,           "", 0,  0,  
0},
++      { XK_KP_End,       Mod1Mask|ControlMask|ShiftMask, "", 0,  0,  
0},
++      { XK_KP_End,       Mod1Mask|ShiftMask,             "", 0,  0,  
0},
++      { XK_KP_Next,      XK_NO_MOD,                      "[6~",     0,  0,  
0},
++      { XK_KP_Next,      ControlMask,                    "", 0,  0,  
0},
++      { XK_KP_Next,      ControlMask|ShiftMask,          "", 0,  0,  
0},
++      { XK_KP_Next,      Mod1Mask,                       "", 0,  0,  
0},
++      { XK_KP_Next,      Mod1Mask|ControlMask,           "", 0,  0,  
0},
++      { XK_KP_Next,      Mod1Mask|ControlMask|ShiftMask, "", 0,  0,  
0},
++      { XK_KP_Next,      Mod1Mask|ShiftMask,             "", 0,  0,  
0},
++      { XK_KP_Insert,    XK_NO_MOD,                      "",     -1, 0,  
0},
++      { XK_KP_Insert,    XK_NO_MOD,                      "[2~",     +1, 0,  
0},
++      { XK_KP_Insert,    ControlMask|ShiftMask,          "", 0,  0,  
0},
++      { XK_KP_Insert,    Mod1Mask,                       "", 0,  0,  
0},
++      { XK_KP_Insert,    Mod1Mask|ControlMask,           "", 0,  0,  
0},
++      { XK_KP_Insert,    Mod1Mask|ControlMask|ShiftMask, "", 0,  0,  
0},
++      { XK_KP_Insert,    Mod1Mask|ShiftMask,             "", 0,  0,  
0},
++      { XK_KP_Delete,    XK_NO_MOD,                      "",      -1, 0,  
0},
++      { XK_KP_Delete,    XK_NO_MOD,                      "[3~",     +1, 0,  
0},
++      { XK_KP_Delete,    ControlMask|ShiftMask,          "", 0,  0,  
0},
++      { XK_KP_Delete,    Mod1Mask,                       "", 0,  0,  
0},
++      { XK_KP_Delete,    Mod1Mask|ControlMask,           "", 0,  0,  
0},
++      { XK_KP_Delete,    Mod1Mask|ControlMask|ShiftMask, "", 0,  0,  
0},
++      { XK_KP_Delete,    Mod1Mask|ShiftMask,             "", 0,  0,  
0},
++      { XK_KP_Multiply,  XK_NO_MOD,                      "Oj",      +2, 0,  
0},
++      { XK_KP_Multiply,  ControlMask,                    "", 0,  0,  
0},
++      { XK_KP_Multiply,  ControlMask|ShiftMask,          "", 0,  0,  
0},
++      { XK_KP_Multiply,  Mod1Mask,                       "", 0,  0,  
0},
++      { XK_KP_Multiply,  Mod1Mask|ControlMask,           "", 0,  0,  
0},
++      { XK_KP_Multiply,  Mod1Mask|ControlMask|ShiftMask, "", 0,  0,  
0},
++      { XK_KP_Multiply,  Mod1Mask|ShiftMask,             "", 0,  0,  
0},
++      { XK_KP_Multiply,  ShiftMask,                      "", 0,  0,  
0},
++      { XK_KP_Add,       XK_NO_MOD,                      "Ok",      +2, 0,  
0},
++      { XK_KP_Add,       ControlMask,                    "", 0,  0,  
0},
++      { XK_KP_Add,       ControlMask|ShiftMask,          "", 0,  0,  
0},
++      { XK_KP_Add,       Mod1Mask,                       "", 0,  0,  
0},
++      { XK_KP_Add,       Mod1Mask|ControlMask,           "", 0,  0,  
0},
++      { XK_KP_Add,       Mod1Mask|ControlMask|ShiftMask, "", 0,  0,  
0},
++      { XK_KP_Add,       Mod1Mask|ShiftMask,             "", 0,  0,  
0},
++      { XK_KP_Add,       ShiftMask,                      "", 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,                    "", 0,  0,  
0},
++      { XK_KP_Enter,     ControlMask|ShiftMask,          "", 0,  0,  
0},
++      { XK_KP_Enter,     Mod1Mask,                       "", 0,  0,  
0},
++      { XK_KP_Enter,     Mod1Mask|ControlMask,           "", 0,  0,  
0},
++      { XK_KP_Enter,     Mod1Mask|ControlMask|ShiftMask, "", 0,  0,  
0},
++      { XK_KP_Enter,     Mod1Mask|ShiftMask,             "", 0,  0,  
0},
++      { XK_KP_Enter,     ShiftMask,                      "", 0,  0,  
0},
++      { XK_KP_Subtract,  XK_NO_MOD,                      "Om",      +2, 0,  
0},
++      { XK_KP_Subtract,  ControlMask,                    "", 0,  0,  
0},
++      { XK_KP_Subtract,  ControlMask|ShiftMask,          "", 0,  0,  
0},
++      { XK_KP_Subtract,  Mod1Mask,                       "", 0,  0,  
0},
++      { XK_KP_Subtract,  Mod1Mask|ControlMask,           "", 0,  0,  
0},
++      { XK_KP_Subtract,  Mod1Mask|ControlMask|ShiftMask, "", 0,  0,  
0},
++      { XK_KP_Subtract,  Mod1Mask|ShiftMask,             "", 0,  0,  
0},
++      { XK_KP_Subtract,  ShiftMask,                      "", 0,  0,  
0},
++      { XK_KP_Decimal,   XK_NO_MOD,                      "On",      +2, 0,  
0},
++      { XK_KP_Decimal,   ControlMask,                    "", 0,  0,  
0},
++      { XK_KP_Decimal,   ControlMask|ShiftMask,          "", 0,  0,  
0},
++      { XK_KP_Decimal,   Mod1Mask,                       "", 0,  0,  
0},
++      { XK_KP_Decimal,   Mod1Mask|ControlMask,           "", 0,  0,  
0},
++      { XK_KP_Decimal,   Mod1Mask|ControlMask|ShiftMask, "", 0,  0,  
0},
++      { XK_KP_Decimal,   Mod1Mask|ShiftMask,             "", 0,  0,  
0},
++      { XK_KP_Decimal,   ShiftMask,                      "", 0,  0,  
0},
++      { XK_KP_Divide,    XK_NO_MOD,                      "Oo",      +2, 0,  
0},
++      { XK_KP_Divide,    ControlMask,                    "", 0,  0,  
0},
++      { XK_KP_Divide,    ControlMask|ShiftMask,          "", 0,  0,  
0},
++      { XK_KP_Divide,    Mod1Mask,                       "", 0,  0,  
0},
++      { XK_KP_Divide,    Mod1Mask|ControlMask,           "", 0,  0,  
0},
++      { XK_KP_Divide,    Mod1Mask|ControlMask|ShiftMask, "", 0,  0,  
0},
++      { XK_KP_Divide,    Mod1Mask|ShiftMask,             "", 0,  0,  
0},
++      { XK_KP_Divide,    ShiftMask,                      "", 0,  0,  
0},
++      { XK_KP_0,         XK_NO_MOD,                      "Op",      +2, 0,  
0},
++      { XK_KP_0,         ControlMask,                    "", 0,  0,  
0},
++      { XK_KP_0,         ControlMask|ShiftMask,          "", 0,  0,  
0},
++      { XK_KP_0,         Mod1Mask,                       "", 0,  0,  
0},
++      { XK_KP_0,         Mod1Mask|ControlMask,           "", 0,  0,  
0},
++      { XK_KP_0,         Mod1Mask|ControlMask|ShiftMask, "", 0,  0,  
0},
++      { XK_KP_0,         Mod1Mask|ShiftMask,             "", 0,  0,  
0},
++      { XK_KP_0,         ShiftMask,                      "", 0,  0,  
0},
++      { XK_KP_1,         XK_NO_MOD,                      "Oq",      +2, 0,  
0},
++      { XK_KP_0,         ControlMask,                    "", 0,  0,  
0},
++      { XK_KP_0,         ControlMask|ShiftMask,          "", 0,  0,  
0},
++      { XK_KP_0,         Mod1Mask,                       "", 0,  0,  
0},
++      { XK_KP_0,         Mod1Mask|ControlMask,           "", 0,  0,  
0},
++      { XK_KP_0,         Mod1Mask|ControlMask|ShiftMask, "", 0,  0,  
0},
++      { XK_KP_0,         Mod1Mask|ShiftMask,             "", 0,  0,  
0},
++      { XK_KP_0,         ShiftMask,                      "", 0,  0,  
0},
++      { XK_KP_2,         XK_NO_MOD,                      "Or",      +2, 0,  
0},
++      { XK_KP_2,         ControlMask,                    "", 0,  0,  
0},
++      { XK_KP_2,         ControlMask|ShiftMask,          "", 0,  0,  
0},
++      { XK_KP_2,         Mod1Mask,                       "", 0,  0,  
0},
++      { XK_KP_2,         Mod1Mask|ControlMask,           "", 0,  0,  
0},
++      { XK_KP_2,         Mod1Mask|ControlMask|ShiftMask, "", 0,  0,  
0},
++      { XK_KP_2,         Mod1Mask|ShiftMask,             "", 0,  0,  
0},
++      { XK_KP_2,         ShiftMask,                      "", 0,  0,  
0},
++      { XK_KP_3,         XK_NO_MOD,                      "Os",      +2, 0,  
0},
++      { XK_KP_3,         ControlMask,                    "", 0,  0,  
0},
++      { XK_KP_3,         ControlMask|ShiftMask,          "", 0,  0,  
0},
++      { XK_KP_3,         Mod1Mask,                       "", 0,  0,  
0},
++      { XK_KP_3,         Mod1Mask|ControlMask,           "", 0,  0,  
0},
++      { XK_KP_3,         Mod1Mask|ControlMask|ShiftMask, "", 0,  0,  
0},
++      { XK_KP_3,         Mod1Mask|ShiftMask,             "", 0,  0,  
0},
++      { XK_KP_3,         ShiftMask,                      "", 0,  0,  
0},
++      { XK_KP_4,         XK_NO_MOD,                      "Ot",      +2, 0,  
0},
++      { XK_KP_4,         ControlMask,                    "", 0,  0,  
0},
++      { XK_KP_4,         ControlMask|ShiftMask,          "", 0,  0,  
0},
++      { XK_KP_4,         Mod1Mask,                       "", 0,  0,  
0},
++      { XK_KP_4,         Mod1Mask|ControlMask,           "", 0,  0,  
0},
++      { XK_KP_4,         Mod1Mask|ControlMask|ShiftMask, "", 0,  0,  
0},
++      { XK_KP_4,         Mod1Mask|ShiftMask,             "", 0,  0,  
0},
++      { XK_KP_4,         ShiftMask,                      "", 0,  0,  
0},
++      { XK_KP_5,         XK_NO_MOD,                      "Ou",      +2, 0,  
0},
++      { XK_KP_5,         ControlMask,                    "", 0,  0,  
0},
++      { XK_KP_5,         ControlMask|ShiftMask,          "", 0,  0,  
0},
++      { XK_KP_5,         Mod1Mask,                       "", 0,  0,  
0},
++      { XK_KP_5,         Mod1Mask|ControlMask,           "", 0,  0,  
0},
++      { XK_KP_5,         Mod1Mask|ControlMask|ShiftMask, "", 0,  0,  
0},
++      { XK_KP_5,         Mod1Mask|ShiftMask,             "", 0,  0,  
0},
++      { XK_KP_5,         ShiftMask,                      "", 0,  0,  
0},
++      { XK_KP_6,         XK_NO_MOD,                      "Ov",      +2, 0,  
0},
++      { XK_KP_6,         ControlMask,                    "", 0,  0,  
0},
++      { XK_KP_6,         ControlMask|ShiftMask,          "", 0,  0,  
0},
++      { XK_KP_6,         Mod1Mask,                       "", 0,  0,  
0},
++      { XK_KP_6,         Mod1Mask|ControlMask,           "", 0,  0,  
0},
++      { XK_KP_6,         Mod1Mask|ControlMask|ShiftMask, "", 0,  0,  
0},
++      { XK_KP_6,         Mod1Mask|ShiftMask,             "", 0,  0,  
0},
++      { XK_KP_6,         ShiftMask,                      "", 0,  0,  
0},
++      { XK_KP_7,         XK_NO_MOD,                      "Ow",      +2, 0,  
0},
++      { XK_KP_7,         ControlMask,                    "", 0,  0,  
0},
++      { XK_KP_7,         ControlMask|ShiftMask,          "", 0,  0,  
0},
++      { XK_KP_7,         Mod1Mask,                       "", 0,  0,  
0},
++      { XK_KP_7,         Mod1Mask|ControlMask,           "", 0,  0,  
0},
++      { XK_KP_7,         Mod1Mask|ControlMask|ShiftMask, "", 0,  0,  
0},
++      { XK_KP_7,         Mod1Mask|ShiftMask,             "", 0,  0,  
0},
++      { XK_KP_7,         ShiftMask,                      "", 0,  0,  
0},
++      { XK_KP_8,         XK_NO_MOD,                      "Ox",      +2, 0,  
0},
++      { XK_KP_8,         ControlMask,                    "", 0,  0,  
0},
++      { XK_KP_8,         ControlMask|ShiftMask,          "", 0,  0,  
0},
++      { XK_KP_8,         Mod1Mask,                       "", 0,  0,  
0},
++      { XK_KP_8,         Mod1Mask|ControlMask,           "", 0,  0,  
0},
++      { XK_KP_8,         Mod1Mask|ControlMask|ShiftMask, "", 0,  0,  
0},
++      { XK_KP_8,         Mod1Mask|ShiftMask,             "", 0,  0,  
0},
++      { XK_KP_8,         ShiftMask,                      "", 0,  0,  
0},
++      { XK_KP_9,         XK_NO_MOD,                      "Oy",      +2, 0,  
0},
++      { XK_KP_9,         ControlMask,                    "", 0,  0,  
0},
++      { XK_KP_9,         ControlMask|ShiftMask,          "", 0,  0,  
0},
++      { XK_KP_9,         Mod1Mask,                       "", 0,  0,  
0},
++      { XK_KP_9,         Mod1Mask|ControlMask,           "", 0,  0,  
0},
++      { XK_KP_9,         Mod1Mask|ControlMask|ShiftMask, "", 0,  0,  
0},
++      { XK_KP_9,         Mod1Mask|ShiftMask,             "", 0,  0,  
0},
++      { XK_KP_9,         ShiftMask,                      "", 0,  0,  
0},
++      { XK_BackSpace,    ControlMask,                    "",   0,  0,  
0},
++      { XK_BackSpace,    ControlMask|ShiftMask,          "",   0,  0,  
0},
++      { XK_BackSpace,    Mod1Mask,                       "",   0,  0,  
0},
++      { XK_BackSpace,    Mod1Mask|ControlMask,           "",   0,  0,  
0},
++      { XK_BackSpace,    Mod1Mask|ControlMask|ShiftMask, "",   0,  0,  
0},
++      { XK_BackSpace,    Mod1Mask|ShiftMask,             "",   0,  0,  
0},
++      { XK_BackSpace,    ShiftMask,                      "",   0,  0,  
0},
++      { XK_Tab,          ControlMask,                    "",   0,  0,  
0},
++      { XK_Tab,          ControlMask|ShiftMask,          "",   0,  0,  
0},
++      { XK_Tab,          Mod1Mask,                       "",   0,  0,  
0},
++      { XK_Tab,          Mod1Mask|ControlMask,           "",   0,  0,  
0},
++      { XK_Tab,          Mod1Mask|ControlMask|ShiftMask, "",   0,  0,  
0},
++      { XK_Tab,          Mod1Mask|ShiftMask,             "",   0,  0,  
0},
++      { XK_Tab,          ShiftMask,                      "",   0,  0,  
0},
++      { XK_Return,       ControlMask,                    "",  0,  0,  
0},
++      { XK_Return,       ControlMask|ShiftMask,          "",  0,  0,  
0},
++      { XK_Return,       Mod1Mask,                       "",  0,  0,  
0},
++      { XK_Return,       Mod1Mask|ControlMask,           "",  0,  0,  
0},
++      { XK_Return,       Mod1Mask|ControlMask|ShiftMask, "",  0,  0,  
0},
++      { XK_Return,       Mod1Mask|ShiftMask,             "",  0,  0,  
0},
++      { XK_Return,       ShiftMask,                      "",  0,  0,  
0},
++      { XK_Pause,        ControlMask,                    "",  0,  0,  
0},
++      { XK_Pause,        ControlMask|ShiftMask,          "",  0,  0,  
0},
++      { XK_Pause,        Mod1Mask,                       "",  0,  0,  
0},
++      { XK_Pause,        Mod1Mask|ControlMask,           "",  0,  0,  
0},
++      { XK_Pause,        Mod1Mask|ControlMask|ShiftMask, "",  0,  0,  
0},
++      { XK_Pause,        Mod1Mask|ShiftMask,             "",  0,  0,  
0},
++      { XK_Pause,        ShiftMask,                      "",  0,  0,  
0},
++      { XK_Scroll_Lock,  ControlMask,                    "",  0,  0,  
0},
++      { XK_Scroll_Lock,  ControlMask|ShiftMask,          "",  0,  0,  
0},
++      { XK_Scroll_Lock,  Mod1Mask,                       "",  0,  0,  
0},
++      { XK_Scroll_Lock,  Mod1Mask|ControlMask,           "",  0,  0,  
0},
++      { XK_Scroll_Lock,  Mod1Mask|ControlMask|ShiftMask, "",  0,  0,  
0},
++      { XK_Scroll_Lock,  Mod1Mask|ShiftMask,             "",  0,  0,  
0},
++      { XK_Scroll_Lock,  ShiftMask,                      "",  0,  0,  
0},
++      { XK_Escape,       ControlMask,                    "",  0,  0,  
0},
++      { XK_Escape,       ControlMask|ShiftMask,          "",  0,  0,  
0},
++      { XK_Escape,       Mod1Mask,                       "",  0,  0,  
0},
++      { XK_Escape,       Mod1Mask|ControlMask,           "",  0,  0,  
0},
++      { XK_Escape,       Mod1Mask|ControlMask|ShiftMask, "",  0,  0,  
0},
++      { XK_Escape,       Mod1Mask|ShiftMask,             "",  0,  0,  
0},
++      { XK_Escape,       ShiftMask,                      "",  0,  0,  
0},
++      { XK_Home,         XK_NO_MOD,                      "",      0,  -1, 
0},
++      { XK_Home,         XK_NO_MOD,                      "[1~",     0,  +1, 
0},
++      { XK_Home,         ControlMask|ShiftMask,          "",  0,  0,  
0},
++      { XK_Home,         Mod1Mask,                       "",  0,  0,  
0},
++      { XK_Home,         Mod1Mask|ControlMask,           "",  0,  0,  
0},
++      { XK_Home,         Mod1Mask|ControlMask|ShiftMask, "",  0,  0,  
0},
++      { XK_Home,         Mod1Mask|ShiftMask,             "",  0,  0,  
0},
++      { XK_End,          XK_NO_MOD,                      "[4~",     0,  0,  
0},
++      { XK_End,          ControlMask|ShiftMask,          "",  0,  0,  
0},
++      { XK_End,          Mod1Mask,                       "",  0,  0,  
0},
++      { XK_End,          Mod1Mask|ControlMask,           "",  0,  0,  
0},
++      { XK_End,          Mod1Mask|ControlMask|ShiftMask, "",  0,  0,  
0},
++      { XK_End,          Mod1Mask|ShiftMask,             "",  0,  0,  
0},
++      { XK_Prior,        XK_NO_MOD,                      "[5~",     0,  0,  
0},
++      { XK_Prior,        ControlMask|ShiftMask,          "",  0,  0,  
0},
++      { XK_Prior,        Mod1Mask,                       "",  0,  0,  
0},
++      { XK_Prior,        Mod1Mask|ControlMask,           "",  0,  0,  
0},
++      { XK_Prior,        Mod1Mask|ControlMask|ShiftMask, "",  0,  0,  
0},
++      { XK_Prior,        Mod1Mask|ShiftMask,             "",  0,  0,  
0},
++      { XK_Next,         XK_NO_MOD,                      "[6~",     0,  0,  
0},
++      { XK_Next,         ControlMask|ShiftMask,          "",  0,  0,  
0},
++      { XK_Next,         Mod1Mask,                       "",  0,  0,  
0},
++      { XK_Next,         Mod1Mask|ControlMask,           "",  0,  0,  
0},
++      { XK_Next,         Mod1Mask|ControlMask|ShiftMask, "",  0,  0,  
0},
++      { XK_Next,         Mod1Mask|ShiftMask,             "",  0,  0,  
0},
++      { XK_Print,        ControlMask,                    "",  0,  0,  
0},
++      { XK_Print,        ControlMask|ShiftMask,          "",  0,  0,  
0},
++      { XK_Print,        Mod1Mask,                       "",  0,  0,  
0},
++      { XK_Print,        Mod1Mask|ControlMask,           "",  0,  0,  
0},
++      { XK_Print,        Mod1Mask|ControlMask|ShiftMask, "",  0,  0,  
0},
++      { XK_Print,        Mod1Mask|ShiftMask,             "",  0,  0,  
0},
++      { XK_Print,        ShiftMask,                      "",  0,  0,  
0},
++      { XK_Insert,       XK_NO_MOD,                      "",     -1, 0,  
0},
++      { XK_Insert,       XK_NO_MOD,                      "[2~",     +1, 0,  
0},
++      { XK_Insert,       ControlMask|ShiftMask,          "",  0,  0,  
0},
++      { XK_Insert,       Mod1Mask,                       "",  0,  0,  
0},
++      { XK_Insert,       Mod1Mask|ControlMask,           "",  0,  0,  
0},
++      { XK_Insert,       Mod1Mask|ControlMask|ShiftMask, "",  0,  0,  
0},
++      { XK_Insert,       Mod1Mask|ShiftMask,             "",  0,  0,  
0},
++      { XK_Menu,         ControlMask,                    "", 0,  0,  
0},
++      { XK_Menu,         ControlMask|ShiftMask,          "", 0,  0,  
0},
++      { XK_Menu,         Mod1Mask,                       "", 0,  0,  
0},
++      { XK_Menu,         Mod1Mask|ControlMask,           "", 0,  0,  
0},
++      { XK_Menu,         Mod1Mask|ControlMask|ShiftMask, "", 0,  0,  
0},
++      { XK_Menu,         Mod1Mask|ShiftMask,             "", 0,  0,  
0},
++      { XK_Menu,         ShiftMask,                      "", 0,  0,  
0},
++      { XK_Delete,       XK_NO_MOD,                      "",      -1, 0,  
0},
++      { XK_Delete,       XK_NO_MOD,                      "[3~",     +1, 0,  
0},
++      { XK_Delete,       ControlMask|ShiftMask,          "", 0,  0,  
0},
++      { XK_Delete,       Mod1Mask,                       "", 0,  0,  
0},
++      { XK_Delete,       Mod1Mask|ControlMask,           "", 0,  0,  
0},
++      { XK_Delete,       Mod1Mask|ControlMask|ShiftMask, "", 0,  0,  
0},
++      { XK_Delete,       Mod1Mask|ShiftMask,             "", 0,  0,  
0},
++      { XK_i,            ControlMask,                    "", 0,  0,  
0},
++      { XK_i,            Mod1Mask|ControlMask,           "", 0,  0,  
0},
++      { XK_m,            ControlMask,                    "", 0,  0,  
0},
++      { XK_m,            Mod1Mask|ControlMask,           "", 0,  0,  
0},
++      { XK_space,        ControlMask|ShiftMask,          "",  0,  0,  
0},
++      { XK_space,        Mod1Mask,                       "",  0,  0,  
0},
++      { XK_space,        Mod1Mask|ControlMask,           "",  0,  0,  
0},
++      { XK_space,        Mod1Mask|ControlMask|ShiftMask, "",  0,  0,  
0},
++      { XK_space,        Mod1Mask|ShiftMask,             "",  0,  0,  
0},
++      { XK_space,        ShiftMask,                      "",  0,  0,  
0},
++      { XK_0,            ControlMask,                    "",  0,  0,  
0},
++      { XK_A,            ControlMask|ShiftMask,          "",  0,  0,  
0},
++      { XK_B,            ControlMask|ShiftMask,          "",  0,  0,  
0},
++      { XK_C,            ControlMask|ShiftMask,          "",  0,  0,  
0},
++      { XK_D,            ControlMask|ShiftMask,          "",  0,  0,  
0},
++      { XK_E,            ControlMask|ShiftMask,          "",  0,  0,  
0},
++      { XK_F,            ControlMask|ShiftMask,          "",  0,  0,  
0},
++      { XK_G,            ControlMask|ShiftMask,          "",  0,  0,  
0},
++      { XK_H,            ControlMask|ShiftMask,          "",  0,  0,  
0},
++      { XK_I,            ControlMask|ShiftMask,          "",  0,  0,  
0},
++      { XK_I,            Mod1Mask|ControlMask|ShiftMask, "",  0,  0,  
0},
++      { XK_J,            ControlMask|ShiftMask,          "",  0,  0,  
0},
++      { XK_K,            ControlMask|ShiftMask,          "",  0,  0,  
0},
++      { XK_L,            ControlMask|ShiftMask,          "",  0,  0,  
0},
++      { XK_M,            ControlMask|ShiftMask,          "",  0,  0,  
0},
++      { XK_M,            Mod1Mask|ControlMask|ShiftMask, "",  0,  0,  
0},
++      { XK_N,            ControlMask|ShiftMask,          "",  0,  0,  
0},
++      { XK_O,            ControlMask|ShiftMask,          "",  0,  0,  
0},
++      { XK_P,            ControlMask|ShiftMask,          "",  0,  0,  
0},
++      { XK_Q,            ControlMask|ShiftMask,          "",  0,  0,  
0},
++      { XK_R,            ControlMask|ShiftMask,          "",  0,  0,  
0},
++      { XK_S,            ControlMask|ShiftMask,          "",  0,  0,  
0},
++      { XK_T,            ControlMask|ShiftMask,          "",  0,  0,  
0},
++      { XK_U,            ControlMask|ShiftMask,          "",  0,  0,  
0},
++      { XK_V,            ControlMask|ShiftMask,          "",  0,  0,  
0},
++      { XK_W,            ControlMask|ShiftMask,          "",  0,  0,  
0},
++      { XK_X,            ControlMask|ShiftMask,          "",  0,  0,  
0},
++      { XK_Y,            ControlMask|ShiftMask,          "",  0,  0,  
0},
++      { XK_Z,            ControlMask|ShiftMask,          "",  0,  0,  
0},
++      { XK_Z,            ControlMask|ShiftMask,          "",  0,  0,  
0},
++      { XK_0,            Mod1Mask|ControlMask,           "",  0,  0,  
0},
++      { XK_1,            ControlMask,                    "",  0,  0,  
0},
++      { XK_1,            Mod1Mask|ControlMask,           "",  0,  0,  
0},
++      { XK_2,            ControlMask,                    "",  0,  0,  
0},
++      { XK_2,            Mod1Mask|ControlMask,           "",  0,  0,  
0},
++      { XK_3,            ControlMask,                    "",  0,  0,  
0},
++      { XK_3,            Mod1Mask|ControlMask,           "",  0,  0,  
0},
++      { XK_4,            ControlMask,                    "",  0,  0,  
0},
++      { XK_4,            Mod1Mask|ControlMask,           "",  0,  0,  
0},
++      { XK_5,            ControlMask,                    "",  0,  0,  
0},
++      { XK_5,            Mod1Mask|ControlMask,           "",  0,  0,  
0},
++      { XK_6,            ControlMask,                    "",  0,  0,  
0},
++      { XK_6,            Mod1Mask|ControlMask,           "",  0,  0,  
0},
++      { XK_7,            ControlMask,                    "",  0,  0,  
0},
++      { XK_7,            Mod1Mask|ControlMask,           "",  0,  0,  
0},
++      { XK_8,            ControlMask,                    "",  0,  0,  
0},
++      { XK_8,            Mod1Mask|ControlMask,           "",  0,  0,  
0},
++      { XK_9,            ControlMask,                    "",  0,  0,  
0},
++      { XK_9,            Mod1Mask|ControlMask,           "",  0,  0,  
0},
++      { XK_ampersand,    ControlMask,                    "",  0,  0,  
0},
++      { XK_ampersand,    ControlMask|ShiftMask,          "",  0,  0,  
0},
++      { XK_ampersand,    Mod1Mask,                       "",  0,  0,  
0},
++      { XK_ampersand,    Mod1Mask|ControlMask,           "",  0,  0,  
0},
++      { XK_ampersand,    Mod1Mask|ControlMask|ShiftMask, "",  0,  0,  
0},
++      { XK_ampersand,    Mod1Mask|ShiftMask,             "",  0,  0,  
0},
++      { XK_apostrophe,   ControlMask,                    "",  0,  0,  
0},
++      { XK_apostrophe,   ControlMask|ShiftMask,          "",  0,  0,  
0},
++      { XK_apostrophe,   Mod1Mask,                       "",  0,  0,  
0},
++      { XK_apostrophe,   Mod1Mask|ControlMask,           "",  0,  0,  
0},
++      { XK_apostrophe,   Mod1Mask|ControlMask|ShiftMask, "",  0,  0,  
0},
++      { XK_apostrophe,   Mod1Mask|ShiftMask,             "",  0,  0,  
0},
++      { XK_asciicircum,  ControlMask,                    "",  0,  0,  
0},
++      { XK_asciicircum,  ControlMask|ShiftMask,          "",  0,  0,  
0},
++      { XK_asciicircum,  Mod1Mask,                       "",  0,  0,  
0},
++      { XK_asciicircum,  Mod1Mask|ControlMask,           "",  0,  0,  
0},
++      { XK_asciicircum,  Mod1Mask|ControlMask|ShiftMask, "",  0,  0,  
0},
++      { XK_asciicircum,  Mod1Mask|ShiftMask,             "",  0,  0,  
0},
++      { XK_asciitilde,   ControlMask,                    "", 0,  0,  
0},
++      { XK_asciitilde,   ControlMask|ShiftMask,          "", 0,  0,  
0},
++      { XK_asciitilde,   Mod1Mask,                       "", 0,  0,  
0},
++      { XK_asciitilde,   Mod1Mask|ControlMask,           "", 0,  0,  
0},
++      { XK_asciitilde,   Mod1Mask|ControlMask|ShiftMask, "", 0,  0,  
0},
++      { XK_asciitilde,   Mod1Mask|ShiftMask,             "", 0,  0,  
0},
++      { XK_asterisk,     ControlMask,                    "",  0,  0,  
0},
++      { XK_asterisk,     ControlMask|ShiftMask,          "",  0,  0,  
0},
++      { XK_asterisk,     Mod1Mask,                       "",  0,  0,  
0},
++      { XK_asterisk,     Mod1Mask|ControlMask,           "",  0,  0,  
0},
++      { XK_asterisk,     Mod1Mask|ControlMask|ShiftMask, "",  0,  0,  
0},
++      { XK_asterisk,     Mod1Mask|ShiftMask,             "",  0,  0,  
0},
++      { XK_at,           ControlMask,                    "",  0,  0,  
0},
++      { XK_at,           ControlMask|ShiftMask,          "",  0,  0,  
0},
++      { XK_at,           Mod1Mask,                       "",  0,  0,  
0},
++      { XK_at,           Mod1Mask|ControlMask,           "",  0,  0,  
0},
++      { XK_at,           Mod1Mask|ControlMask|ShiftMask, "",  0,  0,  
0},
++      { XK_at,           Mod1Mask|ShiftMask,             "",  0,  0,  
0},
++      { XK_backslash,    ControlMask,                    "",  0,  0,  
0},
++      { XK_backslash,    ControlMask|ShiftMask,          "",  0,  0,  
0},
++      { XK_backslash,    Mod1Mask,                       "",  0,  0,  
0},
++      { XK_backslash,    Mod1Mask|ControlMask,           "",  0,  0,  
0},
++      { XK_backslash,    Mod1Mask|ControlMask|ShiftMask, "",  0,  0,  
0},
++      { XK_backslash,    Mod1Mask|ShiftMask,             "",  0,  0,  
0},
++      { XK_bar,          ControlMask,                    "", 0,  0,  
0},
++      { XK_bar,          ControlMask|ShiftMask,          "", 0,  0,  
0},
++      { XK_bar,          Mod1Mask,                       "", 0,  0,  
0},
++      { XK_bar,          Mod1Mask|ControlMask,           "", 0,  0,  
0},
++      { XK_bar,          Mod1Mask|ControlMask|ShiftMask, "", 0,  0,  
0},
++      { XK_bar,          Mod1Mask|ShiftMask,             "", 0,  0,  
0},
++      { XK_braceleft,    ControlMask,                    "", 0,  0,  
0},
++      { XK_braceleft,    ControlMask|ShiftMask,          "", 0,  0,  
0},
++      { XK_braceleft,    Mod1Mask,                       "", 0,  0,  
0},
++      { XK_braceleft,    Mod1Mask|ControlMask,           "", 0,  0,  
0},
++      { XK_braceleft,    Mod1Mask|ControlMask|ShiftMask, "", 0,  0,  
0},
++      { XK_braceleft,    Mod1Mask|ShiftMask,             "", 0,  0,  
0},
++      { XK_braceright,   ControlMask,                    "", 0,  0,  
0},
++      { XK_braceright,   ControlMask|ShiftMask,          "", 0,  0,  
0},
++      { XK_braceright,   Mod1Mask,                       "", 0,  0,  
0},
++      { XK_braceright,   Mod1Mask|ControlMask,           "", 0,  0,  
0},
++      { XK_braceright,   Mod1Mask|ControlMask|ShiftMask, "", 0,  0,  
0},
++      { XK_braceright,   Mod1Mask|ShiftMask,             "", 0,  0,  
0},
++      { XK_bracketleft,  ControlMask,                    "",  0,  0,  
0},
++      { XK_bracketleft,  ControlMask|ShiftMask,          "",  0,  0,  
0},
++      { XK_bracketleft,  Mod1Mask,                       "",  0,  0,  
0},
++      { XK_bracketleft,  Mod1Mask|ControlMask,           "",  0,  0,  
0},
++      { XK_bracketleft,  Mod1Mask|ControlMask|ShiftMask, "",  0,  0,  
0},
++      { XK_bracketleft,  Mod1Mask|ShiftMask,             "",  0,  0,  
0},
++      { XK_bracketright, ControlMask,                    "",  0,  0,  
0},
++      { XK_bracketright, ControlMask|ShiftMask,          "",  0,  0,  
0},
++      { XK_bracketright, Mod1Mask,                       "",  0,  0,  
0},
++      { XK_bracketright, Mod1Mask|ControlMask,           "",  0,  0,  
0},
++      { XK_bracketright, Mod1Mask|ControlMask|ShiftMask, "",  0,  0,  
0},
++      { XK_bracketright, Mod1Mask|ShiftMask,             "",  0,  0,  
0},
++      { XK_colon,        ControlMask,                    "",  0,  0,  
0},
++      { XK_colon,        ControlMask|ShiftMask,          "",  0,  0,  
0},
++      { XK_colon,        Mod1Mask,                       "",  0,  0,  
0},
++      { XK_colon,        Mod1Mask|ControlMask,           "",  0,  0,  
0},
++      { XK_colon,        Mod1Mask|ControlMask|ShiftMask, "",  0,  0,  
0},
++      { XK_colon,        Mod1Mask|ShiftMask,             "",  0,  0,  
0},
++      { XK_comma,        ControlMask,                    "",  0,  0,  
0},
++      { XK_comma,        ControlMask|ShiftMask,          "",  0,  0,  
0},
++      { XK_comma,        Mod1Mask,                       "",  0,  0,  
0},
++      { XK_comma,        Mod1Mask|ControlMask,           "",  0,  0,  
0},
++      { XK_comma,        Mod1Mask|ControlMask|ShiftMask, "",  0,  0,  
0},
++      { XK_comma,        Mod1Mask|ShiftMask,             "",  0,  0,  
0},
++      { XK_dollar,       ControlMask,                    "",  0,  0,  
0},
++      { XK_dollar,       ControlMask|ShiftMask,          "",  0,  0,  
0},
++      { XK_dollar,       Mod1Mask,                       "",  0,  0,  
0},
++      { XK_dollar,       Mod1Mask|ControlMask,           "",  0,  0,  
0},
++      { XK_dollar,       Mod1Mask|ControlMask|ShiftMask, "",  0,  0,  
0},
++      { XK_dollar,       Mod1Mask|ShiftMask,             "",  0,  0,  
0},
++      { XK_equal,        ControlMask,                    "",  0,  0,  
0},
++      { XK_equal,        ControlMask|ShiftMask,          "",  0,  0,  
0},
++      { XK_equal,        Mod1Mask,                       "",  0,  0,  
0},
++      { XK_equal,        Mod1Mask|ControlMask,           "",  0,  0,  
0},
++      { XK_equal,        Mod1Mask|ControlMask|ShiftMask, "",  0,  0,  
0},
++      { XK_equal,        Mod1Mask|ShiftMask,             "",  0,  0,  
0},
++      { XK_exclam,       ControlMask,                    "",  0,  0,  
0},
++      { XK_exclam,       ControlMask|ShiftMask,          "",  0,  0,  
0},
++      { XK_exclam,       Mod1Mask,                       "",  0,  0,  
0},
++      { XK_exclam,       Mod1Mask|ControlMask,           "",  0,  0,  
0},
++      { XK_exclam,       Mod1Mask|ControlMask|ShiftMask, "",  0,  0,  
0},
++      { XK_exclam,       Mod1Mask|ShiftMask,             "",  0,  0,  
0},
++      { XK_grave,        ControlMask,                    "",  0,  0,  
0},
++      { XK_grave,        ControlMask|ShiftMask,          "",  0,  0,  
0},
++      { XK_grave,        Mod1Mask,                       "",  0,  0,  
0},
++      { XK_grave,        Mod1Mask|ControlMask,           "",  0,  0,  
0},
++      { XK_grave,        Mod1Mask|ControlMask|ShiftMask, "",  0,  0,  
0},
++      { XK_grave,        Mod1Mask|ShiftMask,             "",  0,  0,  
0},
++      { XK_greater,      ControlMask,                    "",  0,  0,  
0},
++      { XK_greater,      ControlMask|ShiftMask,          "",  0,  0,  
0},
++      { XK_greater,      Mod1Mask,                       "",  0,  0,  
0},
++      { XK_greater,      Mod1Mask|ControlMask,           "",  0,  0,  
0},
++      { XK_greater,      Mod1Mask|ControlMask|ShiftMask, "",  0,  0,  
0},
++      { XK_greater,      Mod1Mask|ShiftMask,             "",  0,  0,  
0},
++      { XK_less,         ControlMask,                    "",  0,  0,  
0},
++      { XK_less,         ControlMask|ShiftMask,          "",  0,  0,  
0},
++      { XK_less,         Mod1Mask,                       "",  0,  0,  
0},
++      { XK_less,         Mod1Mask|ControlMask,           "",  0,  0,  
0},
++      { XK_less,         Mod1Mask|ControlMask|ShiftMask, "",  0,  0,  
0},
++      { XK_less,         Mod1Mask|ShiftMask,             "",  0,  0,  
0},
++      { XK_minus,        ControlMask,                    "",  0,  0,  
0},
++      { XK_minus,        ControlMask|ShiftMask,          "",  0,  0,  
0},
++      { XK_minus,        Mod1Mask,                       "",  0,  0,  
0},
++      { XK_minus,        Mod1Mask|ControlMask,           "",  0,  0,  
0},
++      { XK_minus,        Mod1Mask|ControlMask|ShiftMask, "",  0,  0,  
0},
++      { XK_minus,        Mod1Mask|ShiftMask,             "",  0,  0,  
0},
++      { XK_numbersign,   ControlMask,                    "",  0,  0,  
0},
++      { XK_numbersign,   ControlMask|ShiftMask,          "",  0,  0,  
0},
++      { XK_numbersign,   Mod1Mask,                       "",  0,  0,  
0},
++      { XK_numbersign,   Mod1Mask|ControlMask,           "",  0,  0,  
0},
++      { XK_numbersign,   Mod1Mask|ControlMask|ShiftMask, "",  0,  0,  
0},
++      { XK_numbersign,   Mod1Mask|ShiftMask,             "",  0,  0,  
0},
++      { XK_parenleft,    ControlMask,                    "",  0,  0,  
0},
++      { XK_parenleft,    ControlMask|ShiftMask,          "",  0,  0,  
0},
++      { XK_parenleft,    Mod1Mask,                       "",  0,  0,  
0},
++      { XK_parenleft,    Mod1Mask|ControlMask,           "",  0,  0,  
0},
++      { XK_parenleft,    Mod1Mask|ControlMask|ShiftMask, "",  0,  0,  
0},
++      { XK_parenleft,    Mod1Mask|ShiftMask,             "",  0,  0,  
0},
++      { XK_parenright,   ControlMask,                    "",  0,  0,  
0},
++      { XK_parenright,   ControlMask|ShiftMask,          "",  0,  0,  
0},
++      { XK_parenright,   Mod1Mask,                       "",  0,  0,  
0},
++      { XK_parenright,   Mod1Mask|ControlMask,           "",  0,  0,  
0},
++      { XK_parenright,   Mod1Mask|ControlMask|ShiftMask, "",  0,  0,  
0},
++      { XK_parenright,   Mod1Mask|ShiftMask,             "",  0,  0,  
0},
++      { XK_percent,      ControlMask,                    "",  0,  0,  
0},
++      { XK_percent,      ControlMask|ShiftMask,          "",  0,  0,  
0},
++      { XK_percent,      Mod1Mask,                       "",  0,  0,  
0},
++      { XK_percent,      Mod1Mask|ControlMask,           "",  0,  0,  
0},
++      { XK_percent,      Mod1Mask|ControlMask|ShiftMask, "",  0,  0,  
0},
++      { XK_percent,      Mod1Mask|ShiftMask,             "",  0,  0,  
0},
++      { XK_period,       ControlMask,                    "",  0,  0,  
0},
++      { XK_period,       ControlMask|ShiftMask,          "",  0,  0,  
0},
++      { XK_period,       Mod1Mask|ControlMask,           "",  0,  0,  
0},
++      { XK_period,       Mod1Mask|ControlMask|ShiftMask, "",  0,  0,  
0},
++      { XK_period,       Mod1Mask|ShiftMask,             "",  0,  0,  
0},
++      { XK_plus,         ControlMask,                    "",  0,  0,  
0},
++      { XK_plus,         ControlMask|ShiftMask,          "",  0,  0,  
0},
++      { XK_plus,         Mod1Mask,                       "",  0,  0,  
0},
++      { XK_plus,         Mod1Mask|ControlMask,           "",  0,  0,  
0},
++      { XK_plus,         Mod1Mask|ControlMask|ShiftMask, "",  0,  0,  
0},
++      { XK_plus,         Mod1Mask|ShiftMask,             "",  0,  0,  
0},
++      { XK_question,     ControlMask,                    "",  0,  0,  
0},
++      { XK_question,     ControlMask|ShiftMask,          "",  0,  0,  
0},
++      { XK_question,     Mod1Mask,                       "",  0,  0,  
0},
++      { XK_question,     Mod1Mask|ControlMask,           "",  0,  0,  
0},
++      { XK_question,     Mod1Mask|ControlMask|ShiftMask, "",  0,  0,  
0},
++      { XK_question,     Mod1Mask|ShiftMask,             "",  0,  0,  
0},
++      { XK_quotedbl,     ControlMask,                    "",  0,  0,  
0},
++      { XK_quotedbl,     ControlMask|ShiftMask,          "",  0,  0,  
0},
++      { XK_quotedbl,     Mod1Mask,                       "",  0,  0,  
0},
++      { XK_quotedbl,     Mod1Mask|ControlMask,           "",  0,  0,  
0},
++      { XK_quotedbl,     Mod1Mask|ControlMask|ShiftMask, "",  0,  0,  
0},
++      { XK_quotedbl,     Mod1Mask|ShiftMask,             "",  0,  0,  
0},
++      { XK_semicolon,    ControlMask,                    "",  0,  0,  
0},
++      { XK_semicolon,    ControlMask|ShiftMask,          "",  0,  0,  
0},
++      { XK_semicolon,    Mod1Mask,                       "",  0,  0,  
0},
++      { XK_semicolon,    Mod1Mask|ControlMask,           "",  0,  0,  
0},
++      { XK_semicolon,    Mod1Mask|ControlMask|ShiftMask, "",  0,  0,  
0},
++      { XK_semicolon,    Mod1Mask|ShiftMask,             "",  0,  0,  
0},
++      { XK_slash,        ControlMask,                    "",  0,  0,  
0},
++      { XK_slash,        ControlMask|ShiftMask,          "",  0,  0,  
0},
++      { XK_slash,        Mod1Mask,                       "",  0,  0,  
0},
++      { XK_slash,        Mod1Mask|ControlMask,           "",  0,  0,  
0},
++      { XK_slash,        Mod1Mask|ControlMask|ShiftMask, "",  0,  0,  
0},
++      { XK_slash,        Mod1Mask|ShiftMask,             "",  0,  0,  
0},
++      { XK_underscore,   ControlMask,                    "",  0,  0,  
0},
++      { XK_underscore,   ControlMask|ShiftMask,          "",  0,  0,  
0},
++      { XK_underscore,   Mod1Mask,                       "",  0,  0,  
0},
++      { XK_underscore,   Mod1Mask|ControlMask,           "",  0,  0,  
0},
++      { XK_underscore,   Mod1Mask|ControlMask|ShiftMask, "",  0,  0,  
0},
++      { XK_underscore,   Mod1Mask|ShiftMask,             "",  0,  0,  
0},
+ };
+ 
+ /*


Reply via email to