sites

public wiki contents of suckless.org
git clone git://git.suckless.org/sites
Log | Files | Refs

st-fix-keyboard-input-20170603-5a10aca.diff (54094B)


      1 Author: Jan Christoph Ebersbach <jceb@e-jc.de>
      2 URL: http://st.suckless.org/patches/fix_keyboard_input
      3 Fix keyboard input on terminal
      4 
      5 Index: st-patches/st/config.def.h
      6 ===================================================================
      7 --- a/config.def.h
      8 +++ b/config.def.h
      9 @@ -209,7 +209,80 @@ Shortcut shortcuts[] = {
     10   * If you want keys other than the X11 function keys (0xFD00 - 0xFFFF)
     11   * to be mapped below, add them to this array.
     12   */
     13 -static KeySym mappedkeys[] = { -1 };
     14 +static KeySym mappedkeys[] = {
     15 +	XK_space,
     16 +	XK_m,
     17 +	XK_i,
     18 +	XK_A,
     19 +	XK_B,
     20 +	XK_C,
     21 +	XK_D,
     22 +	XK_E,
     23 +	XK_F,
     24 +	XK_G,
     25 +	XK_H,
     26 +	XK_I,
     27 +	XK_K,
     28 +	XK_J,
     29 +	XK_L,
     30 +	XK_M,
     31 +	XK_N,
     32 +	XK_O,
     33 +	XK_P,
     34 +	XK_Q,
     35 +	XK_R,
     36 +	XK_S,
     37 +	XK_T,
     38 +	XK_U,
     39 +	XK_V,
     40 +	XK_W,
     41 +	XK_X,
     42 +	XK_Y,
     43 +	XK_Z,
     44 +	XK_Z,
     45 +	XK_0,
     46 +	XK_1,
     47 +	XK_2,
     48 +	XK_3,
     49 +	XK_4,
     50 +	XK_5,
     51 +	XK_6,
     52 +	XK_7,
     53 +	XK_8,
     54 +	XK_9,
     55 +	XK_exclam,
     56 +	XK_quotedbl,
     57 +	XK_numbersign,
     58 +	XK_dollar,
     59 +	XK_percent,
     60 +	XK_ampersand,
     61 +	XK_apostrophe,
     62 +	XK_parenleft,
     63 +	XK_parenright,
     64 +	XK_asterisk,
     65 +	XK_plus,
     66 +	XK_comma,
     67 +	XK_minus,
     68 +	XK_period,
     69 +	XK_slash,
     70 +	XK_colon,
     71 +	XK_semicolon,
     72 +	XK_less,
     73 +	XK_equal,
     74 +	XK_greater,
     75 +	XK_question,
     76 +	XK_at,
     77 +	XK_bracketleft,
     78 +	XK_backslash,
     79 +	XK_bracketright,
     80 +	XK_asciicircum,
     81 +	XK_underscore,
     82 +	XK_grave,
     83 +	XK_braceleft,
     84 +	XK_bar,
     85 +	XK_braceright,
     86 +	XK_asciitilde,
     87 +};
     88  
     89  /*
     90   * State bits to ignore when matching key or button events.  By default,
     91 @@ -232,60 +305,20 @@ static Key key[] = {
     92  	/* keysym           mask            string      appkey appcursor crlf */
     93  	{ XK_KP_Home,       ShiftMask,      "\033[2J",       0,   -1,    0},
     94  	{ XK_KP_Home,       ShiftMask,      "\033[1;2H",     0,   +1,    0},
     95 -	{ XK_KP_Home,       XK_ANY_MOD,     "\033[H",        0,   -1,    0},
     96 -	{ XK_KP_Home,       XK_ANY_MOD,     "\033[1~",       0,   +1,    0},
     97 -	{ XK_KP_Up,         XK_ANY_MOD,     "\033Ox",       +1,    0,    0},
     98 -	{ XK_KP_Up,         XK_ANY_MOD,     "\033[A",        0,   -1,    0},
     99 -	{ XK_KP_Up,         XK_ANY_MOD,     "\033OA",        0,   +1,    0},
    100 -	{ XK_KP_Down,       XK_ANY_MOD,     "\033Or",       +1,    0,    0},
    101 -	{ XK_KP_Down,       XK_ANY_MOD,     "\033[B",        0,   -1,    0},
    102 -	{ XK_KP_Down,       XK_ANY_MOD,     "\033OB",        0,   +1,    0},
    103 -	{ XK_KP_Left,       XK_ANY_MOD,     "\033Ot",       +1,    0,    0},
    104 -	{ XK_KP_Left,       XK_ANY_MOD,     "\033[D",        0,   -1,    0},
    105 -	{ XK_KP_Left,       XK_ANY_MOD,     "\033OD",        0,   +1,    0},
    106 -	{ XK_KP_Right,      XK_ANY_MOD,     "\033Ov",       +1,    0,    0},
    107 -	{ XK_KP_Right,      XK_ANY_MOD,     "\033[C",        0,   -1,    0},
    108 -	{ XK_KP_Right,      XK_ANY_MOD,     "\033OC",        0,   +1,    0},
    109  	{ XK_KP_Prior,      ShiftMask,      "\033[5;2~",     0,    0,    0},
    110 -	{ XK_KP_Prior,      XK_ANY_MOD,     "\033[5~",       0,    0,    0},
    111 -	{ XK_KP_Begin,      XK_ANY_MOD,     "\033[E",        0,    0,    0},
    112  	{ XK_KP_End,        ControlMask,    "\033[J",       -1,    0,    0},
    113  	{ XK_KP_End,        ControlMask,    "\033[1;5F",    +1,    0,    0},
    114  	{ XK_KP_End,        ShiftMask,      "\033[K",       -1,    0,    0},
    115  	{ XK_KP_End,        ShiftMask,      "\033[1;2F",    +1,    0,    0},
    116 -	{ XK_KP_End,        XK_ANY_MOD,     "\033[4~",       0,    0,    0},
    117  	{ XK_KP_Next,       ShiftMask,      "\033[6;2~",     0,    0,    0},
    118 -	{ XK_KP_Next,       XK_ANY_MOD,     "\033[6~",       0,    0,    0},
    119  	{ XK_KP_Insert,     ShiftMask,      "\033[2;2~",    +1,    0,    0},
    120  	{ XK_KP_Insert,     ShiftMask,      "\033[4l",      -1,    0,    0},
    121  	{ XK_KP_Insert,     ControlMask,    "\033[L",       -1,    0,    0},
    122  	{ XK_KP_Insert,     ControlMask,    "\033[2;5~",    +1,    0,    0},
    123 -	{ XK_KP_Insert,     XK_ANY_MOD,     "\033[4h",      -1,    0,    0},
    124 -	{ XK_KP_Insert,     XK_ANY_MOD,     "\033[2~",      +1,    0,    0},
    125  	{ XK_KP_Delete,     ControlMask,    "\033[M",       -1,    0,    0},
    126  	{ XK_KP_Delete,     ControlMask,    "\033[3;5~",    +1,    0,    0},
    127  	{ XK_KP_Delete,     ShiftMask,      "\033[2K",      -1,    0,    0},
    128  	{ XK_KP_Delete,     ShiftMask,      "\033[3;2~",    +1,    0,    0},
    129 -	{ XK_KP_Delete,     XK_ANY_MOD,     "\033[P",       -1,    0,    0},
    130 -	{ XK_KP_Delete,     XK_ANY_MOD,     "\033[3~",      +1,    0,    0},
    131 -	{ XK_KP_Multiply,   XK_ANY_MOD,     "\033Oj",       +2,    0,    0},
    132 -	{ XK_KP_Add,        XK_ANY_MOD,     "\033Ok",       +2,    0,    0},
    133 -	{ XK_KP_Enter,      XK_ANY_MOD,     "\033OM",       +2,    0,    0},
    134 -	{ XK_KP_Enter,      XK_ANY_MOD,     "\r",           -1,    0,   -1},
    135 -	{ XK_KP_Enter,      XK_ANY_MOD,     "\r\n",         -1,    0,   +1},
    136 -	{ XK_KP_Subtract,   XK_ANY_MOD,     "\033Om",       +2,    0,    0},
    137 -	{ XK_KP_Decimal,    XK_ANY_MOD,     "\033On",       +2,    0,    0},
    138 -	{ XK_KP_Divide,     XK_ANY_MOD,     "\033Oo",       +2,    0,    0},
    139 -	{ XK_KP_0,          XK_ANY_MOD,     "\033Op",       +2,    0,    0},
    140 -	{ XK_KP_1,          XK_ANY_MOD,     "\033Oq",       +2,    0,    0},
    141 -	{ XK_KP_2,          XK_ANY_MOD,     "\033Or",       +2,    0,    0},
    142 -	{ XK_KP_3,          XK_ANY_MOD,     "\033Os",       +2,    0,    0},
    143 -	{ XK_KP_4,          XK_ANY_MOD,     "\033Ot",       +2,    0,    0},
    144 -	{ XK_KP_5,          XK_ANY_MOD,     "\033Ou",       +2,    0,    0},
    145 -	{ XK_KP_6,          XK_ANY_MOD,     "\033Ov",       +2,    0,    0},
    146 -	{ XK_KP_7,          XK_ANY_MOD,     "\033Ow",       +2,    0,    0},
    147 -	{ XK_KP_8,          XK_ANY_MOD,     "\033Ox",       +2,    0,    0},
    148 -	{ XK_KP_9,          XK_ANY_MOD,     "\033Oy",       +2,    0,    0},
    149  	{ XK_Up,            ShiftMask,      "\033[1;2A",     0,    0,    0},
    150  	{ XK_Up,            Mod1Mask,       "\033[1;3A",     0,    0,    0},
    151  	{ XK_Up,         ShiftMask|Mod1Mask,"\033[1;4A",     0,    0,    0},
    152 @@ -325,37 +358,28 @@ static Key key[] = {
    153  	{ XK_ISO_Left_Tab,  ShiftMask,      "\033[Z",        0,    0,    0},
    154  	{ XK_Return,        Mod1Mask,       "\033\r",        0,    0,   -1},
    155  	{ XK_Return,        Mod1Mask,       "\033\r\n",      0,    0,   +1},
    156 -	{ XK_Return,        XK_ANY_MOD,     "\r",            0,    0,   -1},
    157 -	{ XK_Return,        XK_ANY_MOD,     "\r\n",          0,    0,   +1},
    158 +	{ XK_Return,        XK_NO_MOD,     "\r",            0,    0,   -1},
    159 +	{ XK_Return,        XK_NO_MOD,     "\r\n",          0,    0,   +1},
    160  	{ XK_Insert,        ShiftMask,      "\033[4l",      -1,    0,    0},
    161  	{ XK_Insert,        ShiftMask,      "\033[2;2~",    +1,    0,    0},
    162  	{ XK_Insert,        ControlMask,    "\033[L",       -1,    0,    0},
    163  	{ XK_Insert,        ControlMask,    "\033[2;5~",    +1,    0,    0},
    164 -	{ XK_Insert,        XK_ANY_MOD,     "\033[4h",      -1,    0,    0},
    165 -	{ XK_Insert,        XK_ANY_MOD,     "\033[2~",      +1,    0,    0},
    166  	{ XK_Delete,        ControlMask,    "\033[M",       -1,    0,    0},
    167  	{ XK_Delete,        ControlMask,    "\033[3;5~",    +1,    0,    0},
    168  	{ XK_Delete,        ShiftMask,      "\033[2K",      -1,    0,    0},
    169  	{ XK_Delete,        ShiftMask,      "\033[3;2~",    +1,    0,    0},
    170 -	{ XK_Delete,        XK_ANY_MOD,     "\033[P",       -1,    0,    0},
    171 -	{ XK_Delete,        XK_ANY_MOD,     "\033[3~",      +1,    0,    0},
    172  	{ XK_BackSpace,     XK_NO_MOD,      "\177",          0,    0,    0},
    173  	{ XK_BackSpace,     Mod1Mask,       "\033\177",      0,    0,    0},
    174  	{ XK_Home,          ShiftMask,      "\033[2J",       0,   -1,    0},
    175  	{ XK_Home,          ShiftMask,      "\033[1;2H",     0,   +1,    0},
    176 -	{ XK_Home,          XK_ANY_MOD,     "\033[H",        0,   -1,    0},
    177 -	{ XK_Home,          XK_ANY_MOD,     "\033[1~",       0,   +1,    0},
    178  	{ XK_End,           ControlMask,    "\033[J",       -1,    0,    0},
    179  	{ XK_End,           ControlMask,    "\033[1;5F",    +1,    0,    0},
    180  	{ XK_End,           ShiftMask,      "\033[K",       -1,    0,    0},
    181  	{ XK_End,           ShiftMask,      "\033[1;2F",    +1,    0,    0},
    182 -	{ XK_End,           XK_ANY_MOD,     "\033[4~",       0,    0,    0},
    183  	{ XK_Prior,         ControlMask,    "\033[5;5~",     0,    0,    0},
    184  	{ XK_Prior,         ShiftMask,      "\033[5;2~",     0,    0,    0},
    185 -	{ XK_Prior,         XK_ANY_MOD,     "\033[5~",       0,    0,    0},
    186  	{ XK_Next,          ControlMask,    "\033[6;5~",     0,    0,    0},
    187  	{ XK_Next,          ShiftMask,      "\033[6;2~",     0,    0,    0},
    188 -	{ XK_Next,          XK_ANY_MOD,     "\033[6~",       0,    0,    0},
    189  	{ XK_F1,            XK_NO_MOD,      "\033OP" ,       0,    0,    0},
    190  	{ XK_F1, /* F13 */  ShiftMask,      "\033[1;2P",     0,    0,    0},
    191  	{ XK_F1, /* F25 */  ControlMask,    "\033[1;5P",     0,    0,    0},
    192 @@ -442,6 +466,574 @@ static Key key[] = {
    193  	{ XK_F33,           XK_NO_MOD,      "\033[20;5~",    0,    0,    0},
    194  	{ XK_F34,           XK_NO_MOD,      "\033[21;5~",    0,    0,    0},
    195  	{ XK_F35,           XK_NO_MOD,      "\033[23;5~",    0,    0,    0},
    196 +
    197 +	// libtermkey compatible keyboard input
    198 +	{ XK_KP_Home,      XK_NO_MOD,                      "\033[H",      0,  -1, 0},
    199 +	{ XK_KP_Home,      XK_NO_MOD,                      "\033[1~",     0,  +1, 0},
    200 +	{ XK_KP_Home,      ControlMask,                    "\033[149;5u", 0,  0,  0},
    201 +	{ XK_KP_Home,      ControlMask|ShiftMask,          "\033[149;6u", 0,  0,  0},
    202 +	{ XK_KP_Home,      Mod1Mask,                       "\033[149;3u", 0,  0,  0},
    203 +	{ XK_KP_Home,      Mod1Mask|ControlMask,           "\033[149;7u", 0,  0,  0},
    204 +	{ XK_KP_Home,      Mod1Mask|ControlMask|ShiftMask, "\033[149;8u", 0,  0,  0},
    205 +	{ XK_KP_Home,      Mod1Mask|ShiftMask,             "\033[149;4u", 0,  0,  0},
    206 +	{ XK_KP_Home,      ShiftMask,                      "\033[149;2u", 0,  0,  0},
    207 +	{ XK_KP_Up,        XK_NO_MOD,                      "\033Ox",      +1, 0,  0},
    208 +	{ XK_KP_Up,        XK_NO_MOD,                      "\033[A",      0,  -1, 0},
    209 +	{ XK_KP_Up,        XK_NO_MOD,                      "\033OA",      0,  +1, 0},
    210 +	{ XK_KP_Up,        ControlMask,                    "\033[151;5u", 0,  0,  0},
    211 +	{ XK_KP_Up,        ControlMask|ShiftMask,          "\033[151;6u", 0,  0,  0},
    212 +	{ XK_KP_Up,        Mod1Mask,                       "\033[151;3u", 0,  0,  0},
    213 +	{ XK_KP_Up,        Mod1Mask|ControlMask,           "\033[151;7u", 0,  0,  0},
    214 +	{ XK_KP_Up,        Mod1Mask|ControlMask|ShiftMask, "\033[151;8u", 0,  0,  0},
    215 +	{ XK_KP_Up,        Mod1Mask|ShiftMask,             "\033[151;4u", 0,  0,  0},
    216 +	{ XK_KP_Up,        ShiftMask,                      "\033[151;2u", 0,  0,  0},
    217 +	{ XK_KP_Down,      XK_NO_MOD,                      "\033Or",      +1, 0,  0},
    218 +	{ XK_KP_Down,      XK_NO_MOD,                      "\033[B",      0,  -1, 0},
    219 +	{ XK_KP_Down,      XK_NO_MOD,                      "\033OB",      0,  +1, 0},
    220 +	{ XK_KP_Down,      ControlMask,                    "\033[153;5u", 0,  0,  0},
    221 +	{ XK_KP_Down,      ControlMask|ShiftMask,          "\033[153;6u", 0,  0,  0},
    222 +	{ XK_KP_Down,      Mod1Mask,                       "\033[153;3u", 0,  0,  0},
    223 +	{ XK_KP_Down,      Mod1Mask|ControlMask,           "\033[153;7u", 0,  0,  0},
    224 +	{ XK_KP_Down,      Mod1Mask|ControlMask|ShiftMask, "\033[153;8u", 0,  0,  0},
    225 +	{ XK_KP_Down,      Mod1Mask|ShiftMask,             "\033[153;4u", 0,  0,  0},
    226 +	{ XK_KP_Down,      ShiftMask,                      "\033[153;2u", 0,  0,  0},
    227 +	{ XK_KP_Left,      XK_NO_MOD,                      "\033Ot",      +1, 0,  0},
    228 +	{ XK_KP_Left,      XK_NO_MOD,                      "\033[D",      0,  -1, 0},
    229 +	{ XK_KP_Left,      XK_NO_MOD,                      "\033OD",      0,  +1, 0},
    230 +	{ XK_KP_Left,      ControlMask,                    "\033[150;5u", 0,  0,  0},
    231 +	{ XK_KP_Left,      ControlMask|ShiftMask,          "\033[150;6u", 0,  0,  0},
    232 +	{ XK_KP_Left,      Mod1Mask,                       "\033[150;3u", 0,  0,  0},
    233 +	{ XK_KP_Left,      Mod1Mask|ControlMask,           "\033[150;7u", 0,  0,  0},
    234 +	{ XK_KP_Left,      Mod1Mask|ControlMask|ShiftMask, "\033[150;8u", 0,  0,  0},
    235 +	{ XK_KP_Left,      Mod1Mask|ShiftMask,             "\033[150;4u", 0,  0,  0},
    236 +	{ XK_KP_Left,      ShiftMask,                      "\033[150;2u", 0,  0,  0},
    237 +	{ XK_KP_Right,     XK_NO_MOD,                      "\033Ov",      +1, 0,  0},
    238 +	{ XK_KP_Right,     XK_NO_MOD,                      "\033[C",      0,  -1, 0},
    239 +	{ XK_KP_Right,     XK_NO_MOD,                      "\033OC",      0,  +1, 0},
    240 +	{ XK_KP_Right,     ControlMask,                    "\033[152;5u", 0,  0,  0},
    241 +	{ XK_KP_Right,     ControlMask|ShiftMask,          "\033[152;6u", 0,  0,  0},
    242 +	{ XK_KP_Right,     Mod1Mask,                       "\033[152;3u", 0,  0,  0},
    243 +	{ XK_KP_Right,     Mod1Mask|ControlMask,           "\033[152;7u", 0,  0,  0},
    244 +	{ XK_KP_Right,     Mod1Mask|ControlMask|ShiftMask, "\033[152;8u", 0,  0,  0},
    245 +	{ XK_KP_Right,     Mod1Mask|ShiftMask,             "\033[152;4u", 0,  0,  0},
    246 +	{ XK_KP_Right,     ShiftMask,                      "\033[152;2u", 0,  0,  0},
    247 +	{ XK_KP_Prior,     XK_NO_MOD,                      "\033[5~",     0,  0,  0},
    248 +	{ XK_KP_Prior,     ControlMask,                    "\033[154;5u", 0,  0,  0},
    249 +	{ XK_KP_Prior,     ControlMask|ShiftMask,          "\033[154;6u", 0,  0,  0},
    250 +	{ XK_KP_Prior,     Mod1Mask,                       "\033[154;3u", 0,  0,  0},
    251 +	{ XK_KP_Prior,     Mod1Mask|ControlMask,           "\033[154;7u", 0,  0,  0},
    252 +	{ XK_KP_Prior,     Mod1Mask|ControlMask|ShiftMask, "\033[154;8u", 0,  0,  0},
    253 +	{ XK_KP_Prior,     Mod1Mask|ShiftMask,             "\033[154;4u", 0,  0,  0},
    254 +	{ XK_KP_Begin,     XK_NO_MOD,                      "\033[E",      0,  0,  0},
    255 +	{ XK_KP_Begin,     ControlMask,                    "\033[157;5u", 0,  0,  0},
    256 +	{ XK_KP_Begin,     ControlMask|ShiftMask,          "\033[157;6u", 0,  0,  0},
    257 +	{ XK_KP_Begin,     Mod1Mask,                       "\033[157;3u", 0,  0,  0},
    258 +	{ XK_KP_Begin,     Mod1Mask|ControlMask,           "\033[157;7u", 0,  0,  0},
    259 +	{ XK_KP_Begin,     Mod1Mask|ControlMask|ShiftMask, "\033[157;8u", 0,  0,  0},
    260 +	{ XK_KP_Begin,     Mod1Mask|ShiftMask,             "\033[157;4u", 0,  0,  0},
    261 +	{ XK_KP_Begin,     ShiftMask,                      "\033[157;2u", 0,  0,  0},
    262 +	{ XK_KP_End,       XK_NO_MOD,                      "\033[4~",     0,  0,  0},
    263 +	{ XK_KP_End,       ControlMask|ShiftMask,          "\033[156;6u", 0,  0,  0},
    264 +	{ XK_KP_End,       Mod1Mask,                       "\033[156;3u", 0,  0,  0},
    265 +	{ XK_KP_End,       Mod1Mask|ControlMask,           "\033[156;7u", 0,  0,  0},
    266 +	{ XK_KP_End,       Mod1Mask|ControlMask|ShiftMask, "\033[156;8u", 0,  0,  0},
    267 +	{ XK_KP_End,       Mod1Mask|ShiftMask,             "\033[156;4u", 0,  0,  0},
    268 +	{ XK_KP_Next,      XK_NO_MOD,                      "\033[6~",     0,  0,  0},
    269 +	{ XK_KP_Next,      ControlMask,                    "\033[155;5u", 0,  0,  0},
    270 +	{ XK_KP_Next,      ControlMask|ShiftMask,          "\033[155;6u", 0,  0,  0},
    271 +	{ XK_KP_Next,      Mod1Mask,                       "\033[155;3u", 0,  0,  0},
    272 +	{ XK_KP_Next,      Mod1Mask|ControlMask,           "\033[155;7u", 0,  0,  0},
    273 +	{ XK_KP_Next,      Mod1Mask|ControlMask|ShiftMask, "\033[155;8u", 0,  0,  0},
    274 +	{ XK_KP_Next,      Mod1Mask|ShiftMask,             "\033[155;4u", 0,  0,  0},
    275 +	{ XK_KP_Insert,    XK_NO_MOD,                      "\033[4h",     -1, 0,  0},
    276 +	{ XK_KP_Insert,    XK_NO_MOD,                      "\033[2~",     +1, 0,  0},
    277 +	{ XK_KP_Insert,    ControlMask|ShiftMask,          "\033[158;6u", 0,  0,  0},
    278 +	{ XK_KP_Insert,    Mod1Mask,                       "\033[158;3u", 0,  0,  0},
    279 +	{ XK_KP_Insert,    Mod1Mask|ControlMask,           "\033[158;7u", 0,  0,  0},
    280 +	{ XK_KP_Insert,    Mod1Mask|ControlMask|ShiftMask, "\033[158;8u", 0,  0,  0},
    281 +	{ XK_KP_Insert,    Mod1Mask|ShiftMask,             "\033[158;4u", 0,  0,  0},
    282 +	{ XK_KP_Delete,    XK_NO_MOD,                      "\033[P",      -1, 0,  0},
    283 +	{ XK_KP_Delete,    XK_NO_MOD,                      "\033[3~",     +1, 0,  0},
    284 +	{ XK_KP_Delete,    ControlMask|ShiftMask,          "\033[159;6u", 0,  0,  0},
    285 +	{ XK_KP_Delete,    Mod1Mask,                       "\033[159;3u", 0,  0,  0},
    286 +	{ XK_KP_Delete,    Mod1Mask|ControlMask,           "\033[159;7u", 0,  0,  0},
    287 +	{ XK_KP_Delete,    Mod1Mask|ControlMask|ShiftMask, "\033[159;8u", 0,  0,  0},
    288 +	{ XK_KP_Delete,    Mod1Mask|ShiftMask,             "\033[159;4u", 0,  0,  0},
    289 +	{ XK_KP_Multiply,  XK_NO_MOD,                      "\033Oj",      +2, 0,  0},
    290 +	{ XK_KP_Multiply,  ControlMask,                    "\033[170;5u", 0,  0,  0},
    291 +	{ XK_KP_Multiply,  ControlMask|ShiftMask,          "\033[170;6u", 0,  0,  0},
    292 +	{ XK_KP_Multiply,  Mod1Mask,                       "\033[170;3u", 0,  0,  0},
    293 +	{ XK_KP_Multiply,  Mod1Mask|ControlMask,           "\033[170;7u", 0,  0,  0},
    294 +	{ XK_KP_Multiply,  Mod1Mask|ControlMask|ShiftMask, "\033[170;8u", 0,  0,  0},
    295 +	{ XK_KP_Multiply,  Mod1Mask|ShiftMask,             "\033[170;4u", 0,  0,  0},
    296 +	{ XK_KP_Multiply,  ShiftMask,                      "\033[170;2u", 0,  0,  0},
    297 +	{ XK_KP_Add,       XK_NO_MOD,                      "\033Ok",      +2, 0,  0},
    298 +	{ XK_KP_Add,       ControlMask,                    "\033[171;5u", 0,  0,  0},
    299 +	{ XK_KP_Add,       ControlMask|ShiftMask,          "\033[171;6u", 0,  0,  0},
    300 +	{ XK_KP_Add,       Mod1Mask,                       "\033[171;3u", 0,  0,  0},
    301 +	{ XK_KP_Add,       Mod1Mask|ControlMask,           "\033[171;7u", 0,  0,  0},
    302 +	{ XK_KP_Add,       Mod1Mask|ControlMask|ShiftMask, "\033[171;8u", 0,  0,  0},
    303 +	{ XK_KP_Add,       Mod1Mask|ShiftMask,             "\033[171;4u", 0,  0,  0},
    304 +	{ XK_KP_Add,       ShiftMask,                      "\033[171;2u", 0,  0,  0},
    305 +	{ XK_KP_Enter,     XK_NO_MOD,                      "\033OM",      +2, 0,  0},
    306 +	{ XK_KP_Enter,     XK_NO_MOD,                      "\r",          -1, 0,  -1},
    307 +	{ XK_KP_Enter,     XK_NO_MOD,                      "\r\n",        -1, 0,  +1},
    308 +	{ XK_KP_Enter,     ControlMask,                    "\033[141;5u", 0,  0,  0},
    309 +	{ XK_KP_Enter,     ControlMask|ShiftMask,          "\033[141;6u", 0,  0,  0},
    310 +	{ XK_KP_Enter,     Mod1Mask,                       "\033[141;3u", 0,  0,  0},
    311 +	{ XK_KP_Enter,     Mod1Mask|ControlMask,           "\033[141;7u", 0,  0,  0},
    312 +	{ XK_KP_Enter,     Mod1Mask|ControlMask|ShiftMask, "\033[141;8u", 0,  0,  0},
    313 +	{ XK_KP_Enter,     Mod1Mask|ShiftMask,             "\033[141;4u", 0,  0,  0},
    314 +	{ XK_KP_Enter,     ShiftMask,                      "\033[141;2u", 0,  0,  0},
    315 +	{ XK_KP_Subtract,  XK_NO_MOD,                      "\033Om",      +2, 0,  0},
    316 +	{ XK_KP_Subtract,  ControlMask,                    "\033[173;5u", 0,  0,  0},
    317 +	{ XK_KP_Subtract,  ControlMask|ShiftMask,          "\033[173;6u", 0,  0,  0},
    318 +	{ XK_KP_Subtract,  Mod1Mask,                       "\033[173;3u", 0,  0,  0},
    319 +	{ XK_KP_Subtract,  Mod1Mask|ControlMask,           "\033[173;7u", 0,  0,  0},
    320 +	{ XK_KP_Subtract,  Mod1Mask|ControlMask|ShiftMask, "\033[173;8u", 0,  0,  0},
    321 +	{ XK_KP_Subtract,  Mod1Mask|ShiftMask,             "\033[173;4u", 0,  0,  0},
    322 +	{ XK_KP_Subtract,  ShiftMask,                      "\033[173;2u", 0,  0,  0},
    323 +	{ XK_KP_Decimal,   XK_NO_MOD,                      "\033On",      +2, 0,  0},
    324 +	{ XK_KP_Decimal,   ControlMask,                    "\033[174;5u", 0,  0,  0},
    325 +	{ XK_KP_Decimal,   ControlMask|ShiftMask,          "\033[174;6u", 0,  0,  0},
    326 +	{ XK_KP_Decimal,   Mod1Mask,                       "\033[174;3u", 0,  0,  0},
    327 +	{ XK_KP_Decimal,   Mod1Mask|ControlMask,           "\033[174;7u", 0,  0,  0},
    328 +	{ XK_KP_Decimal,   Mod1Mask|ControlMask|ShiftMask, "\033[174;8u", 0,  0,  0},
    329 +	{ XK_KP_Decimal,   Mod1Mask|ShiftMask,             "\033[174;4u", 0,  0,  0},
    330 +	{ XK_KP_Decimal,   ShiftMask,                      "\033[174;2u", 0,  0,  0},
    331 +	{ XK_KP_Divide,    XK_NO_MOD,                      "\033Oo",      +2, 0,  0},
    332 +	{ XK_KP_Divide,    ControlMask,                    "\033[175;5u", 0,  0,  0},
    333 +	{ XK_KP_Divide,    ControlMask|ShiftMask,          "\033[175;6u", 0,  0,  0},
    334 +	{ XK_KP_Divide,    Mod1Mask,                       "\033[175;3u", 0,  0,  0},
    335 +	{ XK_KP_Divide,    Mod1Mask|ControlMask,           "\033[175;7u", 0,  0,  0},
    336 +	{ XK_KP_Divide,    Mod1Mask|ControlMask|ShiftMask, "\033[175;8u", 0,  0,  0},
    337 +	{ XK_KP_Divide,    Mod1Mask|ShiftMask,             "\033[175;4u", 0,  0,  0},
    338 +	{ XK_KP_Divide,    ShiftMask,                      "\033[175;2u", 0,  0,  0},
    339 +	{ XK_KP_0,         XK_NO_MOD,                      "\033Op",      +2, 0,  0},
    340 +	{ XK_KP_0,         ControlMask,                    "\033[176;5u", 0,  0,  0},
    341 +	{ XK_KP_0,         ControlMask|ShiftMask,          "\033[176;6u", 0,  0,  0},
    342 +	{ XK_KP_0,         Mod1Mask,                       "\033[176;3u", 0,  0,  0},
    343 +	{ XK_KP_0,         Mod1Mask|ControlMask,           "\033[176;7u", 0,  0,  0},
    344 +	{ XK_KP_0,         Mod1Mask|ControlMask|ShiftMask, "\033[176;8u", 0,  0,  0},
    345 +	{ XK_KP_0,         Mod1Mask|ShiftMask,             "\033[176;4u", 0,  0,  0},
    346 +	{ XK_KP_0,         ShiftMask,                      "\033[176;2u", 0,  0,  0},
    347 +	{ XK_KP_1,         XK_NO_MOD,                      "\033Oq",      +2, 0,  0},
    348 +	{ XK_KP_0,         ControlMask,                    "\033[177;5u", 0,  0,  0},
    349 +	{ XK_KP_0,         ControlMask|ShiftMask,          "\033[177;6u", 0,  0,  0},
    350 +	{ XK_KP_0,         Mod1Mask,                       "\033[177;3u", 0,  0,  0},
    351 +	{ XK_KP_0,         Mod1Mask|ControlMask,           "\033[177;7u", 0,  0,  0},
    352 +	{ XK_KP_0,         Mod1Mask|ControlMask|ShiftMask, "\033[177;8u", 0,  0,  0},
    353 +	{ XK_KP_0,         Mod1Mask|ShiftMask,             "\033[177;4u", 0,  0,  0},
    354 +	{ XK_KP_0,         ShiftMask,                      "\033[177;2u", 0,  0,  0},
    355 +	{ XK_KP_2,         XK_NO_MOD,                      "\033Or",      +2, 0,  0},
    356 +	{ XK_KP_2,         ControlMask,                    "\033[178;5u", 0,  0,  0},
    357 +	{ XK_KP_2,         ControlMask|ShiftMask,          "\033[178;6u", 0,  0,  0},
    358 +	{ XK_KP_2,         Mod1Mask,                       "\033[178;3u", 0,  0,  0},
    359 +	{ XK_KP_2,         Mod1Mask|ControlMask,           "\033[178;7u", 0,  0,  0},
    360 +	{ XK_KP_2,         Mod1Mask|ControlMask|ShiftMask, "\033[178;8u", 0,  0,  0},
    361 +	{ XK_KP_2,         Mod1Mask|ShiftMask,             "\033[178;4u", 0,  0,  0},
    362 +	{ XK_KP_2,         ShiftMask,                      "\033[178;2u", 0,  0,  0},
    363 +	{ XK_KP_3,         XK_NO_MOD,                      "\033Os",      +2, 0,  0},
    364 +	{ XK_KP_3,         ControlMask,                    "\033[179;5u", 0,  0,  0},
    365 +	{ XK_KP_3,         ControlMask|ShiftMask,          "\033[179;6u", 0,  0,  0},
    366 +	{ XK_KP_3,         Mod1Mask,                       "\033[179;3u", 0,  0,  0},
    367 +	{ XK_KP_3,         Mod1Mask|ControlMask,           "\033[179;7u", 0,  0,  0},
    368 +	{ XK_KP_3,         Mod1Mask|ControlMask|ShiftMask, "\033[179;8u", 0,  0,  0},
    369 +	{ XK_KP_3,         Mod1Mask|ShiftMask,             "\033[179;4u", 0,  0,  0},
    370 +	{ XK_KP_3,         ShiftMask,                      "\033[179;2u", 0,  0,  0},
    371 +	{ XK_KP_4,         XK_NO_MOD,                      "\033Ot",      +2, 0,  0},
    372 +	{ XK_KP_4,         ControlMask,                    "\033[180;5u", 0,  0,  0},
    373 +	{ XK_KP_4,         ControlMask|ShiftMask,          "\033[180;6u", 0,  0,  0},
    374 +	{ XK_KP_4,         Mod1Mask,                       "\033[180;3u", 0,  0,  0},
    375 +	{ XK_KP_4,         Mod1Mask|ControlMask,           "\033[180;7u", 0,  0,  0},
    376 +	{ XK_KP_4,         Mod1Mask|ControlMask|ShiftMask, "\033[180;8u", 0,  0,  0},
    377 +	{ XK_KP_4,         Mod1Mask|ShiftMask,             "\033[180;4u", 0,  0,  0},
    378 +	{ XK_KP_4,         ShiftMask,                      "\033[180;2u", 0,  0,  0},
    379 +	{ XK_KP_5,         XK_NO_MOD,                      "\033Ou",      +2, 0,  0},
    380 +	{ XK_KP_5,         ControlMask,                    "\033[181;5u", 0,  0,  0},
    381 +	{ XK_KP_5,         ControlMask|ShiftMask,          "\033[181;6u", 0,  0,  0},
    382 +	{ XK_KP_5,         Mod1Mask,                       "\033[181;3u", 0,  0,  0},
    383 +	{ XK_KP_5,         Mod1Mask|ControlMask,           "\033[181;7u", 0,  0,  0},
    384 +	{ XK_KP_5,         Mod1Mask|ControlMask|ShiftMask, "\033[181;8u", 0,  0,  0},
    385 +	{ XK_KP_5,         Mod1Mask|ShiftMask,             "\033[181;4u", 0,  0,  0},
    386 +	{ XK_KP_5,         ShiftMask,                      "\033[181;2u", 0,  0,  0},
    387 +	{ XK_KP_6,         XK_NO_MOD,                      "\033Ov",      +2, 0,  0},
    388 +	{ XK_KP_6,         ControlMask,                    "\033[182;5u", 0,  0,  0},
    389 +	{ XK_KP_6,         ControlMask|ShiftMask,          "\033[182;6u", 0,  0,  0},
    390 +	{ XK_KP_6,         Mod1Mask,                       "\033[182;3u", 0,  0,  0},
    391 +	{ XK_KP_6,         Mod1Mask|ControlMask,           "\033[182;7u", 0,  0,  0},
    392 +	{ XK_KP_6,         Mod1Mask|ControlMask|ShiftMask, "\033[182;8u", 0,  0,  0},
    393 +	{ XK_KP_6,         Mod1Mask|ShiftMask,             "\033[182;4u", 0,  0,  0},
    394 +	{ XK_KP_6,         ShiftMask,                      "\033[182;2u", 0,  0,  0},
    395 +	{ XK_KP_7,         XK_NO_MOD,                      "\033Ow",      +2, 0,  0},
    396 +	{ XK_KP_7,         ControlMask,                    "\033[183;5u", 0,  0,  0},
    397 +	{ XK_KP_7,         ControlMask|ShiftMask,          "\033[183;6u", 0,  0,  0},
    398 +	{ XK_KP_7,         Mod1Mask,                       "\033[183;3u", 0,  0,  0},
    399 +	{ XK_KP_7,         Mod1Mask|ControlMask,           "\033[183;7u", 0,  0,  0},
    400 +	{ XK_KP_7,         Mod1Mask|ControlMask|ShiftMask, "\033[183;8u", 0,  0,  0},
    401 +	{ XK_KP_7,         Mod1Mask|ShiftMask,             "\033[183;4u", 0,  0,  0},
    402 +	{ XK_KP_7,         ShiftMask,                      "\033[183;2u", 0,  0,  0},
    403 +	{ XK_KP_8,         XK_NO_MOD,                      "\033Ox",      +2, 0,  0},
    404 +	{ XK_KP_8,         ControlMask,                    "\033[184;5u", 0,  0,  0},
    405 +	{ XK_KP_8,         ControlMask|ShiftMask,          "\033[184;6u", 0,  0,  0},
    406 +	{ XK_KP_8,         Mod1Mask,                       "\033[184;3u", 0,  0,  0},
    407 +	{ XK_KP_8,         Mod1Mask|ControlMask,           "\033[184;7u", 0,  0,  0},
    408 +	{ XK_KP_8,         Mod1Mask|ControlMask|ShiftMask, "\033[184;8u", 0,  0,  0},
    409 +	{ XK_KP_8,         Mod1Mask|ShiftMask,             "\033[184;4u", 0,  0,  0},
    410 +	{ XK_KP_8,         ShiftMask,                      "\033[184;2u", 0,  0,  0},
    411 +	{ XK_KP_9,         XK_NO_MOD,                      "\033Oy",      +2, 0,  0},
    412 +	{ XK_KP_9,         ControlMask,                    "\033[185;5u", 0,  0,  0},
    413 +	{ XK_KP_9,         ControlMask|ShiftMask,          "\033[185;6u", 0,  0,  0},
    414 +	{ XK_KP_9,         Mod1Mask,                       "\033[185;3u", 0,  0,  0},
    415 +	{ XK_KP_9,         Mod1Mask|ControlMask,           "\033[185;7u", 0,  0,  0},
    416 +	{ XK_KP_9,         Mod1Mask|ControlMask|ShiftMask, "\033[185;8u", 0,  0,  0},
    417 +	{ XK_KP_9,         Mod1Mask|ShiftMask,             "\033[185;4u", 0,  0,  0},
    418 +	{ XK_KP_9,         ShiftMask,                      "\033[185;2u", 0,  0,  0},
    419 +	{ XK_BackSpace,    ControlMask,                    "\033[8;5u",   0,  0,  0},
    420 +	{ XK_BackSpace,    ControlMask|ShiftMask,          "\033[8;6u",   0,  0,  0},
    421 +	{ XK_BackSpace,    Mod1Mask,                       "\033[8;3u",   0,  0,  0},
    422 +	{ XK_BackSpace,    Mod1Mask|ControlMask,           "\033[8;7u",   0,  0,  0},
    423 +	{ XK_BackSpace,    Mod1Mask|ControlMask|ShiftMask, "\033[8;8u",   0,  0,  0},
    424 +	{ XK_BackSpace,    Mod1Mask|ShiftMask,             "\033[8;4u",   0,  0,  0},
    425 +	{ XK_BackSpace,    ShiftMask,                      "\033[8;2u",   0,  0,  0},
    426 +	{ XK_Tab,          ControlMask,                    "\033[9;5u",   0,  0,  0},
    427 +	{ XK_Tab,          ControlMask|ShiftMask,          "\033[9;6u",   0,  0,  0},
    428 +	{ XK_Tab,          Mod1Mask,                       "\033[9;3u",   0,  0,  0},
    429 +	{ XK_Tab,          Mod1Mask|ControlMask,           "\033[9;7u",   0,  0,  0},
    430 +	{ XK_Tab,          Mod1Mask|ControlMask|ShiftMask, "\033[9;8u",   0,  0,  0},
    431 +	{ XK_Tab,          Mod1Mask|ShiftMask,             "\033[9;4u",   0,  0,  0},
    432 +	{ XK_Tab,          ShiftMask,                      "\033[9;2u",   0,  0,  0},
    433 +	{ XK_Return,       ControlMask,                    "\033[13;5u",  0,  0,  0},
    434 +	{ XK_Return,       ControlMask|ShiftMask,          "\033[13;6u",  0,  0,  0},
    435 +	{ XK_Return,       Mod1Mask,                       "\033[13;3u",  0,  0,  0},
    436 +	{ XK_Return,       Mod1Mask|ControlMask,           "\033[13;7u",  0,  0,  0},
    437 +	{ XK_Return,       Mod1Mask|ControlMask|ShiftMask, "\033[13;8u",  0,  0,  0},
    438 +	{ XK_Return,       Mod1Mask|ShiftMask,             "\033[13;4u",  0,  0,  0},
    439 +	{ XK_Return,       ShiftMask,                      "\033[13;2u",  0,  0,  0},
    440 +	{ XK_Pause,        ControlMask,                    "\033[18;5u",  0,  0,  0},
    441 +	{ XK_Pause,        ControlMask|ShiftMask,          "\033[18;6u",  0,  0,  0},
    442 +	{ XK_Pause,        Mod1Mask,                       "\033[18;3u",  0,  0,  0},
    443 +	{ XK_Pause,        Mod1Mask|ControlMask,           "\033[18;7u",  0,  0,  0},
    444 +	{ XK_Pause,        Mod1Mask|ControlMask|ShiftMask, "\033[18;8u",  0,  0,  0},
    445 +	{ XK_Pause,        Mod1Mask|ShiftMask,             "\033[18;4u",  0,  0,  0},
    446 +	{ XK_Pause,        ShiftMask,                      "\033[18;2u",  0,  0,  0},
    447 +	{ XK_Scroll_Lock,  ControlMask,                    "\033[20;5u",  0,  0,  0},
    448 +	{ XK_Scroll_Lock,  ControlMask|ShiftMask,          "\033[20;6u",  0,  0,  0},
    449 +	{ XK_Scroll_Lock,  Mod1Mask,                       "\033[20;3u",  0,  0,  0},
    450 +	{ XK_Scroll_Lock,  Mod1Mask|ControlMask,           "\033[20;7u",  0,  0,  0},
    451 +	{ XK_Scroll_Lock,  Mod1Mask|ControlMask|ShiftMask, "\033[20;8u",  0,  0,  0},
    452 +	{ XK_Scroll_Lock,  Mod1Mask|ShiftMask,             "\033[20;4u",  0,  0,  0},
    453 +	{ XK_Scroll_Lock,  ShiftMask,                      "\033[20;2u",  0,  0,  0},
    454 +	{ XK_Escape,       ControlMask,                    "\033[27;5u",  0,  0,  0},
    455 +	{ XK_Escape,       ControlMask|ShiftMask,          "\033[27;6u",  0,  0,  0},
    456 +	{ XK_Escape,       Mod1Mask,                       "\033[27;3u",  0,  0,  0},
    457 +	{ XK_Escape,       Mod1Mask|ControlMask,           "\033[27;7u",  0,  0,  0},
    458 +	{ XK_Escape,       Mod1Mask|ControlMask|ShiftMask, "\033[27;8u",  0,  0,  0},
    459 +	{ XK_Escape,       Mod1Mask|ShiftMask,             "\033[27;4u",  0,  0,  0},
    460 +	{ XK_Escape,       ShiftMask,                      "\033[27;2u",  0,  0,  0},
    461 +	{ XK_Home,         XK_NO_MOD,                      "\033[H",      0,  -1, 0},
    462 +	{ XK_Home,         XK_NO_MOD,                      "\033[1~",     0,  +1, 0},
    463 +	{ XK_Home,         ControlMask|ShiftMask,          "\033[80;6u",  0,  0,  0},
    464 +	{ XK_Home,         Mod1Mask,                       "\033[80;3u",  0,  0,  0},
    465 +	{ XK_Home,         Mod1Mask|ControlMask,           "\033[80;7u",  0,  0,  0},
    466 +	{ XK_Home,         Mod1Mask|ControlMask|ShiftMask, "\033[80;8u",  0,  0,  0},
    467 +	{ XK_Home,         Mod1Mask|ShiftMask,             "\033[80;4u",  0,  0,  0},
    468 +	{ XK_End,          XK_NO_MOD,                      "\033[4~",     0,  0,  0},
    469 +	{ XK_End,          ControlMask|ShiftMask,          "\033[87;6u",  0,  0,  0},
    470 +	{ XK_End,          Mod1Mask,                       "\033[87;3u",  0,  0,  0},
    471 +	{ XK_End,          Mod1Mask|ControlMask,           "\033[87;7u",  0,  0,  0},
    472 +	{ XK_End,          Mod1Mask|ControlMask|ShiftMask, "\033[87;8u",  0,  0,  0},
    473 +	{ XK_End,          Mod1Mask|ShiftMask,             "\033[87;4u",  0,  0,  0},
    474 +	{ XK_Prior,        XK_NO_MOD,                      "\033[5~",     0,  0,  0},
    475 +	{ XK_Prior,        ControlMask|ShiftMask,          "\033[85;6u",  0,  0,  0},
    476 +	{ XK_Prior,        Mod1Mask,                       "\033[85;3u",  0,  0,  0},
    477 +	{ XK_Prior,        Mod1Mask|ControlMask,           "\033[85;7u",  0,  0,  0},
    478 +	{ XK_Prior,        Mod1Mask|ControlMask|ShiftMask, "\033[85;8u",  0,  0,  0},
    479 +	{ XK_Prior,        Mod1Mask|ShiftMask,             "\033[85;4u",  0,  0,  0},
    480 +	{ XK_Next,         XK_NO_MOD,                      "\033[6~",     0,  0,  0},
    481 +	{ XK_Next,         ControlMask|ShiftMask,          "\033[86;6u",  0,  0,  0},
    482 +	{ XK_Next,         Mod1Mask,                       "\033[86;3u",  0,  0,  0},
    483 +	{ XK_Next,         Mod1Mask|ControlMask,           "\033[86;7u",  0,  0,  0},
    484 +	{ XK_Next,         Mod1Mask|ControlMask|ShiftMask, "\033[86;8u",  0,  0,  0},
    485 +	{ XK_Next,         Mod1Mask|ShiftMask,             "\033[86;4u",  0,  0,  0},
    486 +	{ XK_Print,        ControlMask,                    "\033[97;5u",  0,  0,  0},
    487 +	{ XK_Print,        ControlMask|ShiftMask,          "\033[97;6u",  0,  0,  0},
    488 +	{ XK_Print,        Mod1Mask,                       "\033[97;3u",  0,  0,  0},
    489 +	{ XK_Print,        Mod1Mask|ControlMask,           "\033[97;7u",  0,  0,  0},
    490 +	{ XK_Print,        Mod1Mask|ControlMask|ShiftMask, "\033[97;8u",  0,  0,  0},
    491 +	{ XK_Print,        Mod1Mask|ShiftMask,             "\033[97;4u",  0,  0,  0},
    492 +	{ XK_Print,        ShiftMask,                      "\033[97;2u",  0,  0,  0},
    493 +	{ XK_Insert,       XK_NO_MOD,                      "\033[4h",     -1, 0,  0},
    494 +	{ XK_Insert,       XK_NO_MOD,                      "\033[2~",     +1, 0,  0},
    495 +	{ XK_Insert,       ControlMask|ShiftMask,          "\033[99;6u",  0,  0,  0},
    496 +	{ XK_Insert,       Mod1Mask,                       "\033[99;3u",  0,  0,  0},
    497 +	{ XK_Insert,       Mod1Mask|ControlMask,           "\033[99;7u",  0,  0,  0},
    498 +	{ XK_Insert,       Mod1Mask|ControlMask|ShiftMask, "\033[99;8u",  0,  0,  0},
    499 +	{ XK_Insert,       Mod1Mask|ShiftMask,             "\033[99;4u",  0,  0,  0},
    500 +	{ XK_Menu,         ControlMask,                    "\033[103;5u", 0,  0,  0},
    501 +	{ XK_Menu,         ControlMask|ShiftMask,          "\033[103;6u", 0,  0,  0},
    502 +	{ XK_Menu,         Mod1Mask,                       "\033[103;3u", 0,  0,  0},
    503 +	{ XK_Menu,         Mod1Mask|ControlMask,           "\033[103;7u", 0,  0,  0},
    504 +	{ XK_Menu,         Mod1Mask|ControlMask|ShiftMask, "\033[103;8u", 0,  0,  0},
    505 +	{ XK_Menu,         Mod1Mask|ShiftMask,             "\033[103;4u", 0,  0,  0},
    506 +	{ XK_Menu,         ShiftMask,                      "\033[103;2u", 0,  0,  0},
    507 +	{ XK_Delete,       XK_NO_MOD,                      "\033[P",      -1, 0,  0},
    508 +	{ XK_Delete,       XK_NO_MOD,                      "\033[3~",     +1, 0,  0},
    509 +	{ XK_Delete,       ControlMask|ShiftMask,          "\033[255;6u", 0,  0,  0},
    510 +	{ XK_Delete,       Mod1Mask,                       "\033[255;3u", 0,  0,  0},
    511 +	{ XK_Delete,       Mod1Mask|ControlMask,           "\033[255;7u", 0,  0,  0},
    512 +	{ XK_Delete,       Mod1Mask|ControlMask|ShiftMask, "\033[255;8u", 0,  0,  0},
    513 +	{ XK_Delete,       Mod1Mask|ShiftMask,             "\033[255;4u", 0,  0,  0},
    514 +	{ XK_i,            ControlMask,                    "\033[105;5u", 0,  0,  0},
    515 +	{ XK_i,            Mod1Mask|ControlMask,           "\033[105;7u", 0,  0,  0},
    516 +	{ XK_m,            ControlMask,                    "\033[109;5u", 0,  0,  0},
    517 +	{ XK_m,            Mod1Mask|ControlMask,           "\033[109;7u", 0,  0,  0},
    518 +	{ XK_space,        ControlMask|ShiftMask,          "\033[32;6u",  0,  0,  0},
    519 +	{ XK_space,        Mod1Mask,                       "\033[32;3u",  0,  0,  0},
    520 +	{ XK_space,        Mod1Mask|ControlMask,           "\033[32;7u",  0,  0,  0},
    521 +	{ XK_space,        Mod1Mask|ControlMask|ShiftMask, "\033[32;8u",  0,  0,  0},
    522 +	{ XK_space,        Mod1Mask|ShiftMask,             "\033[32;4u",  0,  0,  0},
    523 +	{ XK_space,        ShiftMask,                      "\033[32;2u",  0,  0,  0},
    524 +	{ XK_0,            ControlMask,                    "\033[48;5u",  0,  0,  0},
    525 +	{ XK_A,            ControlMask|ShiftMask,          "\033[65;6u",  0,  0,  0},
    526 +	{ XK_B,            ControlMask|ShiftMask,          "\033[66;6u",  0,  0,  0},
    527 +	{ XK_C,            ControlMask|ShiftMask,          "\033[67;6u",  0,  0,  0},
    528 +	{ XK_D,            ControlMask|ShiftMask,          "\033[68;6u",  0,  0,  0},
    529 +	{ XK_E,            ControlMask|ShiftMask,          "\033[69;6u",  0,  0,  0},
    530 +	{ XK_F,            ControlMask|ShiftMask,          "\033[70;6u",  0,  0,  0},
    531 +	{ XK_G,            ControlMask|ShiftMask,          "\033[71;6u",  0,  0,  0},
    532 +	{ XK_H,            ControlMask|ShiftMask,          "\033[72;6u",  0,  0,  0},
    533 +	{ XK_I,            ControlMask|ShiftMask,          "\033[73;6u",  0,  0,  0},
    534 +	{ XK_I,            Mod1Mask|ControlMask|ShiftMask, "\033[73;8u",  0,  0,  0},
    535 +	{ XK_J,            ControlMask|ShiftMask,          "\033[75;6u",  0,  0,  0},
    536 +	{ XK_K,            ControlMask|ShiftMask,          "\033[74;6u",  0,  0,  0},
    537 +	{ XK_L,            ControlMask|ShiftMask,          "\033[76;6u",  0,  0,  0},
    538 +	{ XK_M,            ControlMask|ShiftMask,          "\033[77;6u",  0,  0,  0},
    539 +	{ XK_M,            Mod1Mask|ControlMask|ShiftMask, "\033[77;8u",  0,  0,  0},
    540 +	{ XK_N,            ControlMask|ShiftMask,          "\033[78;6u",  0,  0,  0},
    541 +	{ XK_O,            ControlMask|ShiftMask,          "\033[79;6u",  0,  0,  0},
    542 +	{ XK_P,            ControlMask|ShiftMask,          "\033[80;6u",  0,  0,  0},
    543 +	{ XK_Q,            ControlMask|ShiftMask,          "\033[81;6u",  0,  0,  0},
    544 +	{ XK_R,            ControlMask|ShiftMask,          "\033[82;6u",  0,  0,  0},
    545 +	{ XK_S,            ControlMask|ShiftMask,          "\033[83;6u",  0,  0,  0},
    546 +	{ XK_T,            ControlMask|ShiftMask,          "\033[84;6u",  0,  0,  0},
    547 +	{ XK_U,            ControlMask|ShiftMask,          "\033[85;6u",  0,  0,  0},
    548 +	{ XK_V,            ControlMask|ShiftMask,          "\033[86;6u",  0,  0,  0},
    549 +	{ XK_W,            ControlMask|ShiftMask,          "\033[87;6u",  0,  0,  0},
    550 +	{ XK_X,            ControlMask|ShiftMask,          "\033[88;6u",  0,  0,  0},
    551 +	{ XK_Y,            ControlMask|ShiftMask,          "\033[89;6u",  0,  0,  0},
    552 +	{ XK_Z,            ControlMask|ShiftMask,          "\033[90;6u",  0,  0,  0},
    553 +	{ XK_Z,            ControlMask|ShiftMask,          "\033[90;6u",  0,  0,  0},
    554 +	{ XK_0,            Mod1Mask|ControlMask,           "\033[48;7u",  0,  0,  0},
    555 +	{ XK_1,            ControlMask,                    "\033[49;5u",  0,  0,  0},
    556 +	{ XK_1,            Mod1Mask|ControlMask,           "\033[49;7u",  0,  0,  0},
    557 +	{ XK_2,            ControlMask,                    "\033[50;5u",  0,  0,  0},
    558 +	{ XK_2,            Mod1Mask|ControlMask,           "\033[50;7u",  0,  0,  0},
    559 +	{ XK_3,            ControlMask,                    "\033[51;5u",  0,  0,  0},
    560 +	{ XK_3,            Mod1Mask|ControlMask,           "\033[51;7u",  0,  0,  0},
    561 +	{ XK_4,            ControlMask,                    "\033[52;5u",  0,  0,  0},
    562 +	{ XK_4,            Mod1Mask|ControlMask,           "\033[52;7u",  0,  0,  0},
    563 +	{ XK_5,            ControlMask,                    "\033[53;5u",  0,  0,  0},
    564 +	{ XK_5,            Mod1Mask|ControlMask,           "\033[53;7u",  0,  0,  0},
    565 +	{ XK_6,            ControlMask,                    "\033[54;5u",  0,  0,  0},
    566 +	{ XK_6,            Mod1Mask|ControlMask,           "\033[54;7u",  0,  0,  0},
    567 +	{ XK_7,            ControlMask,                    "\033[55;5u",  0,  0,  0},
    568 +	{ XK_7,            Mod1Mask|ControlMask,           "\033[55;7u",  0,  0,  0},
    569 +	{ XK_8,            ControlMask,                    "\033[56;5u",  0,  0,  0},
    570 +	{ XK_8,            Mod1Mask|ControlMask,           "\033[56;7u",  0,  0,  0},
    571 +	{ XK_9,            ControlMask,                    "\033[57;5u",  0,  0,  0},
    572 +	{ XK_9,            Mod1Mask|ControlMask,           "\033[57;7u",  0,  0,  0},
    573 +	{ XK_ampersand,    ControlMask,                    "\033[38;5u",  0,  0,  0},
    574 +	{ XK_ampersand,    ControlMask|ShiftMask,          "\033[38;6u",  0,  0,  0},
    575 +	{ XK_ampersand,    Mod1Mask,                       "\033[38;3u",  0,  0,  0},
    576 +	{ XK_ampersand,    Mod1Mask|ControlMask,           "\033[38;7u",  0,  0,  0},
    577 +	{ XK_ampersand,    Mod1Mask|ControlMask|ShiftMask, "\033[38;8u",  0,  0,  0},
    578 +	{ XK_ampersand,    Mod1Mask|ShiftMask,             "\033[38;4u",  0,  0,  0},
    579 +	{ XK_apostrophe,   ControlMask,                    "\033[39;5u",  0,  0,  0},
    580 +	{ XK_apostrophe,   ControlMask|ShiftMask,          "\033[39;6u",  0,  0,  0},
    581 +	{ XK_apostrophe,   Mod1Mask,                       "\033[39;3u",  0,  0,  0},
    582 +	{ XK_apostrophe,   Mod1Mask|ControlMask,           "\033[39;7u",  0,  0,  0},
    583 +	{ XK_apostrophe,   Mod1Mask|ControlMask|ShiftMask, "\033[39;8u",  0,  0,  0},
    584 +	{ XK_apostrophe,   Mod1Mask|ShiftMask,             "\033[39;4u",  0,  0,  0},
    585 +	{ XK_asciicircum,  ControlMask,                    "\033[94;5u",  0,  0,  0},
    586 +	{ XK_asciicircum,  ControlMask|ShiftMask,          "\033[94;6u",  0,  0,  0},
    587 +	{ XK_asciicircum,  Mod1Mask,                       "\033[94;3u",  0,  0,  0},
    588 +	{ XK_asciicircum,  Mod1Mask|ControlMask,           "\033[94;7u",  0,  0,  0},
    589 +	{ XK_asciicircum,  Mod1Mask|ControlMask|ShiftMask, "\033[94;8u",  0,  0,  0},
    590 +	{ XK_asciicircum,  Mod1Mask|ShiftMask,             "\033[94;4u",  0,  0,  0},
    591 +	{ XK_asciitilde,   ControlMask,                    "\033[126;5u", 0,  0,  0},
    592 +	{ XK_asciitilde,   ControlMask|ShiftMask,          "\033[126;6u", 0,  0,  0},
    593 +	{ XK_asciitilde,   Mod1Mask,                       "\033[126;3u", 0,  0,  0},
    594 +	{ XK_asciitilde,   Mod1Mask|ControlMask,           "\033[126;7u", 0,  0,  0},
    595 +	{ XK_asciitilde,   Mod1Mask|ControlMask|ShiftMask, "\033[126;8u", 0,  0,  0},
    596 +	{ XK_asciitilde,   Mod1Mask|ShiftMask,             "\033[126;4u", 0,  0,  0},
    597 +	{ XK_asterisk,     ControlMask,                    "\033[42;5u",  0,  0,  0},
    598 +	{ XK_asterisk,     ControlMask|ShiftMask,          "\033[42;6u",  0,  0,  0},
    599 +	{ XK_asterisk,     Mod1Mask,                       "\033[42;3u",  0,  0,  0},
    600 +	{ XK_asterisk,     Mod1Mask|ControlMask,           "\033[42;7u",  0,  0,  0},
    601 +	{ XK_asterisk,     Mod1Mask|ControlMask|ShiftMask, "\033[42;8u",  0,  0,  0},
    602 +	{ XK_asterisk,     Mod1Mask|ShiftMask,             "\033[42;4u",  0,  0,  0},
    603 +	{ XK_at,           ControlMask,                    "\033[64;5u",  0,  0,  0},
    604 +	{ XK_at,           ControlMask|ShiftMask,          "\033[64;6u",  0,  0,  0},
    605 +	{ XK_at,           Mod1Mask,                       "\033[64;3u",  0,  0,  0},
    606 +	{ XK_at,           Mod1Mask|ControlMask,           "\033[64;7u",  0,  0,  0},
    607 +	{ XK_at,           Mod1Mask|ControlMask|ShiftMask, "\033[64;8u",  0,  0,  0},
    608 +	{ XK_at,           Mod1Mask|ShiftMask,             "\033[64;4u",  0,  0,  0},
    609 +	{ XK_backslash,    ControlMask,                    "\033[92;5u",  0,  0,  0},
    610 +	{ XK_backslash,    ControlMask|ShiftMask,          "\033[92;6u",  0,  0,  0},
    611 +	{ XK_backslash,    Mod1Mask,                       "\033[92;3u",  0,  0,  0},
    612 +	{ XK_backslash,    Mod1Mask|ControlMask,           "\033[92;7u",  0,  0,  0},
    613 +	{ XK_backslash,    Mod1Mask|ControlMask|ShiftMask, "\033[92;8u",  0,  0,  0},
    614 +	{ XK_backslash,    Mod1Mask|ShiftMask,             "\033[92;4u",  0,  0,  0},
    615 +	{ XK_bar,          ControlMask,                    "\033[124;5u", 0,  0,  0},
    616 +	{ XK_bar,          ControlMask|ShiftMask,          "\033[124;6u", 0,  0,  0},
    617 +	{ XK_bar,          Mod1Mask,                       "\033[124;3u", 0,  0,  0},
    618 +	{ XK_bar,          Mod1Mask|ControlMask,           "\033[124;7u", 0,  0,  0},
    619 +	{ XK_bar,          Mod1Mask|ControlMask|ShiftMask, "\033[124;8u", 0,  0,  0},
    620 +	{ XK_bar,          Mod1Mask|ShiftMask,             "\033[124;4u", 0,  0,  0},
    621 +	{ XK_braceleft,    ControlMask,                    "\033[123;5u", 0,  0,  0},
    622 +	{ XK_braceleft,    ControlMask|ShiftMask,          "\033[123;6u", 0,  0,  0},
    623 +	{ XK_braceleft,    Mod1Mask,                       "\033[123;3u", 0,  0,  0},
    624 +	{ XK_braceleft,    Mod1Mask|ControlMask,           "\033[123;7u", 0,  0,  0},
    625 +	{ XK_braceleft,    Mod1Mask|ControlMask|ShiftMask, "\033[123;8u", 0,  0,  0},
    626 +	{ XK_braceleft,    Mod1Mask|ShiftMask,             "\033[123;4u", 0,  0,  0},
    627 +	{ XK_braceright,   ControlMask,                    "\033[125;5u", 0,  0,  0},
    628 +	{ XK_braceright,   ControlMask|ShiftMask,          "\033[125;6u", 0,  0,  0},
    629 +	{ XK_braceright,   Mod1Mask,                       "\033[125;3u", 0,  0,  0},
    630 +	{ XK_braceright,   Mod1Mask|ControlMask,           "\033[125;7u", 0,  0,  0},
    631 +	{ XK_braceright,   Mod1Mask|ControlMask|ShiftMask, "\033[125;8u", 0,  0,  0},
    632 +	{ XK_braceright,   Mod1Mask|ShiftMask,             "\033[125;4u", 0,  0,  0},
    633 +	{ XK_bracketleft,  ControlMask,                    "\033[91;5u",  0,  0,  0},
    634 +	{ XK_bracketleft,  ControlMask|ShiftMask,          "\033[91;6u",  0,  0,  0},
    635 +	{ XK_bracketleft,  Mod1Mask,                       "\033[91;3u",  0,  0,  0},
    636 +	{ XK_bracketleft,  Mod1Mask|ControlMask,           "\033[91;7u",  0,  0,  0},
    637 +	{ XK_bracketleft,  Mod1Mask|ControlMask|ShiftMask, "\033[91;8u",  0,  0,  0},
    638 +	{ XK_bracketleft,  Mod1Mask|ShiftMask,             "\033[91;4u",  0,  0,  0},
    639 +	{ XK_bracketright, ControlMask,                    "\033[93;5u",  0,  0,  0},
    640 +	{ XK_bracketright, ControlMask|ShiftMask,          "\033[93;6u",  0,  0,  0},
    641 +	{ XK_bracketright, Mod1Mask,                       "\033[93;3u",  0,  0,  0},
    642 +	{ XK_bracketright, Mod1Mask|ControlMask,           "\033[93;7u",  0,  0,  0},
    643 +	{ XK_bracketright, Mod1Mask|ControlMask|ShiftMask, "\033[93;8u",  0,  0,  0},
    644 +	{ XK_bracketright, Mod1Mask|ShiftMask,             "\033[93;4u",  0,  0,  0},
    645 +	{ XK_colon,        ControlMask,                    "\033[58;5u",  0,  0,  0},
    646 +	{ XK_colon,        ControlMask|ShiftMask,          "\033[58;6u",  0,  0,  0},
    647 +	{ XK_colon,        Mod1Mask,                       "\033[58;3u",  0,  0,  0},
    648 +	{ XK_colon,        Mod1Mask|ControlMask,           "\033[58;7u",  0,  0,  0},
    649 +	{ XK_colon,        Mod1Mask|ControlMask|ShiftMask, "\033[58;8u",  0,  0,  0},
    650 +	{ XK_colon,        Mod1Mask|ShiftMask,             "\033[58;4u",  0,  0,  0},
    651 +	{ XK_comma,        ControlMask,                    "\033[44;5u",  0,  0,  0},
    652 +	{ XK_comma,        ControlMask|ShiftMask,          "\033[44;6u",  0,  0,  0},
    653 +	{ XK_comma,        Mod1Mask,                       "\033[44;3u",  0,  0,  0},
    654 +	{ XK_comma,        Mod1Mask|ControlMask,           "\033[44;7u",  0,  0,  0},
    655 +	{ XK_comma,        Mod1Mask|ControlMask|ShiftMask, "\033[44;8u",  0,  0,  0},
    656 +	{ XK_comma,        Mod1Mask|ShiftMask,             "\033[44;4u",  0,  0,  0},
    657 +	{ XK_dollar,       ControlMask,                    "\033[36;5u",  0,  0,  0},
    658 +	{ XK_dollar,       ControlMask|ShiftMask,          "\033[36;6u",  0,  0,  0},
    659 +	{ XK_dollar,       Mod1Mask,                       "\033[36;3u",  0,  0,  0},
    660 +	{ XK_dollar,       Mod1Mask|ControlMask,           "\033[36;7u",  0,  0,  0},
    661 +	{ XK_dollar,       Mod1Mask|ControlMask|ShiftMask, "\033[36;8u",  0,  0,  0},
    662 +	{ XK_dollar,       Mod1Mask|ShiftMask,             "\033[36;4u",  0,  0,  0},
    663 +	{ XK_equal,        ControlMask,                    "\033[61;5u",  0,  0,  0},
    664 +	{ XK_equal,        ControlMask|ShiftMask,          "\033[61;6u",  0,  0,  0},
    665 +	{ XK_equal,        Mod1Mask,                       "\033[61;3u",  0,  0,  0},
    666 +	{ XK_equal,        Mod1Mask|ControlMask,           "\033[61;7u",  0,  0,  0},
    667 +	{ XK_equal,        Mod1Mask|ControlMask|ShiftMask, "\033[61;8u",  0,  0,  0},
    668 +	{ XK_equal,        Mod1Mask|ShiftMask,             "\033[61;4u",  0,  0,  0},
    669 +	{ XK_exclam,       ControlMask,                    "\033[33;5u",  0,  0,  0},
    670 +	{ XK_exclam,       ControlMask|ShiftMask,          "\033[33;6u",  0,  0,  0},
    671 +	{ XK_exclam,       Mod1Mask,                       "\033[33;3u",  0,  0,  0},
    672 +	{ XK_exclam,       Mod1Mask|ControlMask,           "\033[33;7u",  0,  0,  0},
    673 +	{ XK_exclam,       Mod1Mask|ControlMask|ShiftMask, "\033[33;8u",  0,  0,  0},
    674 +	{ XK_exclam,       Mod1Mask|ShiftMask,             "\033[33;4u",  0,  0,  0},
    675 +	{ XK_grave,        ControlMask,                    "\033[96;5u",  0,  0,  0},
    676 +	{ XK_grave,        ControlMask|ShiftMask,          "\033[96;6u",  0,  0,  0},
    677 +	{ XK_grave,        Mod1Mask,                       "\033[96;3u",  0,  0,  0},
    678 +	{ XK_grave,        Mod1Mask|ControlMask,           "\033[96;7u",  0,  0,  0},
    679 +	{ XK_grave,        Mod1Mask|ControlMask|ShiftMask, "\033[96;8u",  0,  0,  0},
    680 +	{ XK_grave,        Mod1Mask|ShiftMask,             "\033[96;4u",  0,  0,  0},
    681 +	{ XK_greater,      ControlMask,                    "\033[62;5u",  0,  0,  0},
    682 +	{ XK_greater,      ControlMask|ShiftMask,          "\033[62;6u",  0,  0,  0},
    683 +	{ XK_greater,      Mod1Mask,                       "\033[62;3u",  0,  0,  0},
    684 +	{ XK_greater,      Mod1Mask|ControlMask,           "\033[62;7u",  0,  0,  0},
    685 +	{ XK_greater,      Mod1Mask|ControlMask|ShiftMask, "\033[62;8u",  0,  0,  0},
    686 +	{ XK_greater,      Mod1Mask|ShiftMask,             "\033[62;4u",  0,  0,  0},
    687 +	{ XK_less,         ControlMask,                    "\033[60;5u",  0,  0,  0},
    688 +	{ XK_less,         ControlMask|ShiftMask,          "\033[60;6u",  0,  0,  0},
    689 +	{ XK_less,         Mod1Mask,                       "\033[60;3u",  0,  0,  0},
    690 +	{ XK_less,         Mod1Mask|ControlMask,           "\033[60;7u",  0,  0,  0},
    691 +	{ XK_less,         Mod1Mask|ControlMask|ShiftMask, "\033[60;8u",  0,  0,  0},
    692 +	{ XK_less,         Mod1Mask|ShiftMask,             "\033[60;4u",  0,  0,  0},
    693 +	{ XK_minus,        ControlMask,                    "\033[45;5u",  0,  0,  0},
    694 +	{ XK_minus,        ControlMask|ShiftMask,          "\033[45;6u",  0,  0,  0},
    695 +	{ XK_minus,        Mod1Mask,                       "\033[45;3u",  0,  0,  0},
    696 +	{ XK_minus,        Mod1Mask|ControlMask,           "\033[45;7u",  0,  0,  0},
    697 +	{ XK_minus,        Mod1Mask|ControlMask|ShiftMask, "\033[45;8u",  0,  0,  0},
    698 +	{ XK_minus,        Mod1Mask|ShiftMask,             "\033[45;4u",  0,  0,  0},
    699 +	{ XK_numbersign,   ControlMask,                    "\033[35;5u",  0,  0,  0},
    700 +	{ XK_numbersign,   ControlMask|ShiftMask,          "\033[35;6u",  0,  0,  0},
    701 +	{ XK_numbersign,   Mod1Mask,                       "\033[35;3u",  0,  0,  0},
    702 +	{ XK_numbersign,   Mod1Mask|ControlMask,           "\033[35;7u",  0,  0,  0},
    703 +	{ XK_numbersign,   Mod1Mask|ControlMask|ShiftMask, "\033[35;8u",  0,  0,  0},
    704 +	{ XK_numbersign,   Mod1Mask|ShiftMask,             "\033[35;4u",  0,  0,  0},
    705 +	{ XK_parenleft,    ControlMask,                    "\033[40;5u",  0,  0,  0},
    706 +	{ XK_parenleft,    ControlMask|ShiftMask,          "\033[40;6u",  0,  0,  0},
    707 +	{ XK_parenleft,    Mod1Mask,                       "\033[40;3u",  0,  0,  0},
    708 +	{ XK_parenleft,    Mod1Mask|ControlMask,           "\033[40;7u",  0,  0,  0},
    709 +	{ XK_parenleft,    Mod1Mask|ControlMask|ShiftMask, "\033[40;8u",  0,  0,  0},
    710 +	{ XK_parenleft,    Mod1Mask|ShiftMask,             "\033[40;4u",  0,  0,  0},
    711 +	{ XK_parenright,   ControlMask,                    "\033[41;5u",  0,  0,  0},
    712 +	{ XK_parenright,   ControlMask|ShiftMask,          "\033[41;6u",  0,  0,  0},
    713 +	{ XK_parenright,   Mod1Mask,                       "\033[41;3u",  0,  0,  0},
    714 +	{ XK_parenright,   Mod1Mask|ControlMask,           "\033[41;7u",  0,  0,  0},
    715 +	{ XK_parenright,   Mod1Mask|ControlMask|ShiftMask, "\033[41;8u",  0,  0,  0},
    716 +	{ XK_parenright,   Mod1Mask|ShiftMask,             "\033[41;4u",  0,  0,  0},
    717 +	{ XK_percent,      ControlMask,                    "\033[37;5u",  0,  0,  0},
    718 +	{ XK_percent,      ControlMask|ShiftMask,          "\033[37;6u",  0,  0,  0},
    719 +	{ XK_percent,      Mod1Mask,                       "\033[37;3u",  0,  0,  0},
    720 +	{ XK_percent,      Mod1Mask|ControlMask,           "\033[37;7u",  0,  0,  0},
    721 +	{ XK_percent,      Mod1Mask|ControlMask|ShiftMask, "\033[37;8u",  0,  0,  0},
    722 +	{ XK_percent,      Mod1Mask|ShiftMask,             "\033[37;4u",  0,  0,  0},
    723 +	{ XK_period,       ControlMask,                    "\033[46;5u",  0,  0,  0},
    724 +	{ XK_period,       ControlMask|ShiftMask,          "\033[46;6u",  0,  0,  0},
    725 +	{ XK_period,       Mod1Mask|ControlMask,           "\033[46;7u",  0,  0,  0},
    726 +	{ XK_period,       Mod1Mask|ControlMask|ShiftMask, "\033[46;8u",  0,  0,  0},
    727 +	{ XK_period,       Mod1Mask|ShiftMask,             "\033[46;4u",  0,  0,  0},
    728 +	{ XK_plus,         ControlMask,                    "\033[43;5u",  0,  0,  0},
    729 +	{ XK_plus,         ControlMask|ShiftMask,          "\033[43;6u",  0,  0,  0},
    730 +	{ XK_plus,         Mod1Mask,                       "\033[43;3u",  0,  0,  0},
    731 +	{ XK_plus,         Mod1Mask|ControlMask,           "\033[43;7u",  0,  0,  0},
    732 +	{ XK_plus,         Mod1Mask|ControlMask|ShiftMask, "\033[43;8u",  0,  0,  0},
    733 +	{ XK_plus,         Mod1Mask|ShiftMask,             "\033[43;4u",  0,  0,  0},
    734 +	{ XK_question,     ControlMask,                    "\033[63;5u",  0,  0,  0},
    735 +	{ XK_question,     ControlMask|ShiftMask,          "\033[63;6u",  0,  0,  0},
    736 +	{ XK_question,     Mod1Mask,                       "\033[63;3u",  0,  0,  0},
    737 +	{ XK_question,     Mod1Mask|ControlMask,           "\033[63;7u",  0,  0,  0},
    738 +	{ XK_question,     Mod1Mask|ControlMask|ShiftMask, "\033[63;8u",  0,  0,  0},
    739 +	{ XK_question,     Mod1Mask|ShiftMask,             "\033[63;4u",  0,  0,  0},
    740 +	{ XK_quotedbl,     ControlMask,                    "\033[34;5u",  0,  0,  0},
    741 +	{ XK_quotedbl,     ControlMask|ShiftMask,          "\033[34;6u",  0,  0,  0},
    742 +	{ XK_quotedbl,     Mod1Mask,                       "\033[34;3u",  0,  0,  0},
    743 +	{ XK_quotedbl,     Mod1Mask|ControlMask,           "\033[34;7u",  0,  0,  0},
    744 +	{ XK_quotedbl,     Mod1Mask|ControlMask|ShiftMask, "\033[34;8u",  0,  0,  0},
    745 +	{ XK_quotedbl,     Mod1Mask|ShiftMask,             "\033[34;4u",  0,  0,  0},
    746 +	{ XK_semicolon,    ControlMask,                    "\033[59;5u",  0,  0,  0},
    747 +	{ XK_semicolon,    ControlMask|ShiftMask,          "\033[59;6u",  0,  0,  0},
    748 +	{ XK_semicolon,    Mod1Mask,                       "\033[59;3u",  0,  0,  0},
    749 +	{ XK_semicolon,    Mod1Mask|ControlMask,           "\033[59;7u",  0,  0,  0},
    750 +	{ XK_semicolon,    Mod1Mask|ControlMask|ShiftMask, "\033[59;8u",  0,  0,  0},
    751 +	{ XK_semicolon,    Mod1Mask|ShiftMask,             "\033[59;4u",  0,  0,  0},
    752 +	{ XK_slash,        ControlMask,                    "\033[47;5u",  0,  0,  0},
    753 +	{ XK_slash,        ControlMask|ShiftMask,          "\033[47;6u",  0,  0,  0},
    754 +	{ XK_slash,        Mod1Mask,                       "\033[47;3u",  0,  0,  0},
    755 +	{ XK_slash,        Mod1Mask|ControlMask,           "\033[47;7u",  0,  0,  0},
    756 +	{ XK_slash,        Mod1Mask|ControlMask|ShiftMask, "\033[47;8u",  0,  0,  0},
    757 +	{ XK_slash,        Mod1Mask|ShiftMask,             "\033[47;4u",  0,  0,  0},
    758 +	{ XK_underscore,   ControlMask,                    "\033[95;5u",  0,  0,  0},
    759 +	{ XK_underscore,   ControlMask|ShiftMask,          "\033[95;6u",  0,  0,  0},
    760 +	{ XK_underscore,   Mod1Mask,                       "\033[95;3u",  0,  0,  0},
    761 +	{ XK_underscore,   Mod1Mask|ControlMask,           "\033[95;7u",  0,  0,  0},
    762 +	{ XK_underscore,   Mod1Mask|ControlMask|ShiftMask, "\033[95;8u",  0,  0,  0},
    763 +	{ XK_underscore,   Mod1Mask|ShiftMask,             "\033[95;4u",  0,  0,  0},
    764  };
    765  
    766  /*