1 #![allow(clippy::wildcard_imports)]
2 use std::os::raw::c_uint;
3 use x11_dl::keysym::*;
4 use x11_dl::xlib;
5
6 pub type XKeysym = c_uint;
7 pub type ModMask = c_uint;
8 pub type Button = c_uint;
9
10 #[must_use]
into_modmask(keys: &[String]) -> ModMask11 pub fn into_modmask(keys: &[String]) -> ModMask {
12 let mut mask = 0;
13 for s in keys {
14 mask |= into_mod(s);
15 }
16 //clean the mask
17 mask &= !(xlib::Mod2Mask | xlib::LockMask);
18 mask & (xlib::ShiftMask
19 | xlib::ControlMask
20 | xlib::Mod1Mask
21 | xlib::Mod3Mask
22 | xlib::Mod4Mask
23 | xlib::Mod5Mask)
24 }
25
26 #[must_use]
into_mod(key: &str) -> ModMask27 pub fn into_mod(key: &str) -> ModMask {
28 match key {
29 "None" => xlib::AnyModifier,
30 "Shift" => xlib::ShiftMask,
31 "Control" => xlib::ControlMask,
32 "Mod1" | "Alt" => xlib::Mod1Mask,
33 //"Mod2" => xlib::Mod2Mask, // NOTE: we are ignoring the state of Numlock
34 //"NumLock" => xlib::Mod2Mask, // this is left here as a reminder
35 "Mod3" => xlib::Mod3Mask,
36 "Mod4" | "Super" => xlib::Mod4Mask,
37 "Mod5" => xlib::Mod5Mask,
38 _ => 0,
39 }
40 }
41
42 // We allow this because this function is simply a mapping wrapper.
43 #[allow(clippy::too_many_lines)]
44 #[must_use]
into_keysym(key: &str) -> Option<XKeysym>45 pub fn into_keysym(key: &str) -> Option<XKeysym> {
46 match key {
47 "BackSpace" => Some(XK_BackSpace),
48 "Tab" => Some(XK_Tab),
49 "Linefeed" => Some(XK_Linefeed),
50 "Clear" => Some(XK_Clear),
51 "Return" => Some(XK_Return),
52 "Pause" => Some(XK_Pause),
53 "Scroll_Lock" => Some(XK_Scroll_Lock),
54 "Sys_Req" => Some(XK_Sys_Req),
55 "Escape" => Some(XK_Escape),
56 "Delete" => Some(XK_Delete),
57 "Multi_key" => Some(XK_Multi_key),
58 "Kanji" => Some(XK_Kanji),
59 "Muhenkan" => Some(XK_Muhenkan),
60 "Henkan_Mode" => Some(XK_Henkan_Mode),
61 "Henkan" => Some(XK_Henkan),
62 "Romaji" => Some(XK_Romaji),
63 "Hiragana" => Some(XK_Hiragana),
64 "Katakana" => Some(XK_Katakana),
65 "Hiragana_Katakana" => Some(XK_Hiragana_Katakana),
66 "Zenkaku" => Some(XK_Zenkaku),
67 "Hankaku" => Some(XK_Hankaku),
68 "Zenkaku_Hankaku" => Some(XK_Zenkaku_Hankaku),
69 "Touroku" => Some(XK_Touroku),
70 "Massyo" => Some(XK_Massyo),
71 "Kana_Lock" => Some(XK_Kana_Lock),
72 "Kana_Shift" => Some(XK_Kana_Shift),
73 "Eisu_Shift" => Some(XK_Eisu_Shift),
74 "Eisu_toggle" => Some(XK_Eisu_toggle),
75 "Home" => Some(XK_Home),
76 "Left" => Some(XK_Left),
77 "Up" => Some(XK_Up),
78 "Right" => Some(XK_Right),
79 "Down" => Some(XK_Down),
80 "Prior" => Some(XK_Prior),
81 "Page_Up" => Some(XK_Page_Up),
82 "Next" => Some(XK_Next),
83 "Page_Down" => Some(XK_Page_Down),
84 "End" => Some(XK_End),
85 "Begin" => Some(XK_Begin),
86 "Win_L" => Some(XK_Win_L),
87 "Win_R" => Some(XK_Win_R),
88 "App" => Some(XK_App),
89 "Select" => Some(XK_Select),
90 "Print" => Some(XK_Print),
91 "Execute" => Some(XK_Execute),
92 "Insert" => Some(XK_Insert),
93 "Undo" => Some(XK_Undo),
94 "Redo" => Some(XK_Redo),
95 "Menu" => Some(XK_Menu),
96 "Find" => Some(XK_Find),
97 "Cancel" => Some(XK_Cancel),
98 "Help" => Some(XK_Help),
99 "Break" => Some(XK_Break),
100 "Mode_switch" => Some(XK_Mode_switch),
101 "script_switch" => Some(XK_script_switch),
102 "Num_Lock" => Some(XK_Num_Lock),
103 "KP_Space" => Some(XK_KP_Space),
104 "KP_Tab" => Some(XK_KP_Tab),
105 "KP_Enter" => Some(XK_KP_Enter),
106 "KP_F1" => Some(XK_KP_F1),
107 "KP_F2" => Some(XK_KP_F2),
108 "KP_F3" => Some(XK_KP_F3),
109 "KP_F4" => Some(XK_KP_F4),
110 "KP_Home" => Some(XK_KP_Home),
111 "KP_Left" => Some(XK_KP_Left),
112 "KP_Up" => Some(XK_KP_Up),
113 "KP_Right" => Some(XK_KP_Right),
114 "KP_Down" => Some(XK_KP_Down),
115 "KP_Prior" => Some(XK_KP_Prior),
116 "KP_Page_Up" => Some(XK_KP_Page_Up),
117 "KP_Next" => Some(XK_KP_Next),
118 "KP_Page_Down" => Some(XK_KP_Page_Down),
119 "KP_End" => Some(XK_KP_End),
120 "KP_Begin" => Some(XK_KP_Begin),
121 "KP_Insert" => Some(XK_KP_Insert),
122 "KP_Delete" => Some(XK_KP_Delete),
123 "KP_Equal" => Some(XK_KP_Equal),
124 "KP_Multiply" => Some(XK_KP_Multiply),
125 "KP_Add" => Some(XK_KP_Add),
126 "KP_Separator" => Some(XK_KP_Separator),
127 "KP_Subtract" => Some(XK_KP_Subtract),
128 "KP_Decimal" => Some(XK_KP_Decimal),
129 "KP_Divide" => Some(XK_KP_Divide),
130 "KP_0" => Some(XK_KP_0),
131 "KP_1" => Some(XK_KP_1),
132 "KP_2" => Some(XK_KP_2),
133 "KP_3" => Some(XK_KP_3),
134 "KP_4" => Some(XK_KP_4),
135 "KP_5" => Some(XK_KP_5),
136 "KP_6" => Some(XK_KP_6),
137 "KP_7" => Some(XK_KP_7),
138 "KP_8" => Some(XK_KP_8),
139 "KP_9" => Some(XK_KP_9),
140 "F1" => Some(XK_F1),
141 "F2" => Some(XK_F2),
142 "F3" => Some(XK_F3),
143 "F4" => Some(XK_F4),
144 "F5" => Some(XK_F5),
145 "F6" => Some(XK_F6),
146 "F7" => Some(XK_F7),
147 "F8" => Some(XK_F8),
148 "F9" => Some(XK_F9),
149 "F10" => Some(XK_F10),
150 "F11" => Some(XK_F11),
151 "L1" => Some(XK_L1),
152 "F12" => Some(XK_F12),
153 "L2" => Some(XK_L2),
154 "F13" => Some(XK_F13),
155 "L3" => Some(XK_L3),
156 "F14" => Some(XK_F14),
157 "L4" => Some(XK_L4),
158 "F15" => Some(XK_F15),
159 "L5" => Some(XK_L5),
160 "F16" => Some(XK_F16),
161 "L6" => Some(XK_L6),
162 "F17" => Some(XK_F17),
163 "L7" => Some(XK_L7),
164 "F18" => Some(XK_F18),
165 "L8" => Some(XK_L8),
166 "F19" => Some(XK_F19),
167 "L9" => Some(XK_L9),
168 "F20" => Some(XK_F20),
169 "L10" => Some(XK_L10),
170 "F21" => Some(XK_F21),
171 "R1" => Some(XK_R1),
172 "F22" => Some(XK_F22),
173 "R2" => Some(XK_R2),
174 "F23" => Some(XK_F23),
175 "R3" => Some(XK_R3),
176 "F24" => Some(XK_F24),
177 "R4" => Some(XK_R4),
178 "F25" => Some(XK_F25),
179 "R5" => Some(XK_R5),
180 "F26" => Some(XK_F26),
181 "R6" => Some(XK_R6),
182 "F27" => Some(XK_F27),
183 "R7" => Some(XK_R7),
184 "F28" => Some(XK_F28),
185 "R8" => Some(XK_R8),
186 "F29" => Some(XK_F29),
187 "R9" => Some(XK_R9),
188 "F30" => Some(XK_F30),
189 "R10" => Some(XK_R10),
190 "F31" => Some(XK_F31),
191 "R11" => Some(XK_R11),
192 "F32" => Some(XK_F32),
193 "R12" => Some(XK_R12),
194 "F33" => Some(XK_F33),
195 "R13" => Some(XK_R13),
196 "F34" => Some(XK_F34),
197 "R14" => Some(XK_R14),
198 "F35" => Some(XK_F35),
199 "R15" => Some(XK_R15),
200 "Shift_L" => Some(XK_Shift_L),
201 "Shift_R" => Some(XK_Shift_R),
202 "Control_L" => Some(XK_Control_L),
203 "Control_R" => Some(XK_Control_R),
204 "Caps_Lock" => Some(XK_Caps_Lock),
205 "Shift_Lock" => Some(XK_Shift_Lock),
206 "Meta_L" => Some(XK_Meta_L),
207 "Meta_R" => Some(XK_Meta_R),
208 "Alt_L" => Some(XK_Alt_L),
209 "Alt_R" => Some(XK_Alt_R),
210 "Super_L" => Some(XK_Super_L),
211 "Super_R" => Some(XK_Super_R),
212 "Hyper_L" => Some(XK_Hyper_L),
213 "Hyper_R" => Some(XK_Hyper_R),
214 "space" => Some(XK_space),
215 "exclam" => Some(XK_exclam),
216 "quotedbl" => Some(XK_quotedbl),
217 "numbersign" => Some(XK_numbersign),
218 "dollar" => Some(XK_dollar),
219 "percent" => Some(XK_percent),
220 "ampersand" => Some(XK_ampersand),
221 "apostrophe" => Some(XK_apostrophe),
222 "quoteright" => Some(XK_quoteright),
223 "parenleft" => Some(XK_parenleft),
224 "parenright" => Some(XK_parenright),
225 "asterisk" => Some(XK_asterisk),
226 "plus" => Some(XK_plus),
227 "comma" => Some(XK_comma),
228 "minus" => Some(XK_minus),
229 "period" => Some(XK_period),
230 "slash" => Some(XK_slash),
231 "0" => Some(XK_0),
232 "1" => Some(XK_1),
233 "2" => Some(XK_2),
234 "3" => Some(XK_3),
235 "4" => Some(XK_4),
236 "5" => Some(XK_5),
237 "6" => Some(XK_6),
238 "7" => Some(XK_7),
239 "8" => Some(XK_8),
240 "9" => Some(XK_9),
241 "colon" => Some(XK_colon),
242 "semicolon" => Some(XK_semicolon),
243 "less" => Some(XK_less),
244 "equal" => Some(XK_equal),
245 "greater" => Some(XK_greater),
246 "question" => Some(XK_question),
247 "at" => Some(XK_at),
248 "A" => Some(XK_A),
249 "B" => Some(XK_B),
250 "C" => Some(XK_C),
251 "D" => Some(XK_D),
252 "E" => Some(XK_E),
253 "F" => Some(XK_F),
254 "G" => Some(XK_G),
255 "H" => Some(XK_H),
256 "I" => Some(XK_I),
257 "J" => Some(XK_J),
258 "K" => Some(XK_K),
259 "L" => Some(XK_L),
260 "M" => Some(XK_M),
261 "N" => Some(XK_N),
262 "O" => Some(XK_O),
263 "P" => Some(XK_P),
264 "Q" => Some(XK_Q),
265 "R" => Some(XK_R),
266 "S" => Some(XK_S),
267 "T" => Some(XK_T),
268 "U" => Some(XK_U),
269 "V" => Some(XK_V),
270 "W" => Some(XK_W),
271 "X" => Some(XK_X),
272 "Y" => Some(XK_Y),
273 "Z" => Some(XK_Z),
274 "bracketleft" => Some(XK_bracketleft),
275 "backslash" => Some(XK_backslash),
276 "bracketright" => Some(XK_bracketright),
277 "asciicircum" => Some(XK_asciicircum),
278 "underscore" => Some(XK_underscore),
279 "grave" => Some(XK_grave),
280 "quoteleft" => Some(XK_quoteleft),
281 "a" => Some(XK_a),
282 "b" => Some(XK_b),
283 "c" => Some(XK_c),
284 "d" => Some(XK_d),
285 "e" => Some(XK_e),
286 "f" => Some(XK_f),
287 "g" => Some(XK_g),
288 "h" => Some(XK_h),
289 "i" => Some(XK_i),
290 "j" => Some(XK_j),
291 "k" => Some(XK_k),
292 "l" => Some(XK_l),
293 "m" => Some(XK_m),
294 "n" => Some(XK_n),
295 "o" => Some(XK_o),
296 "p" => Some(XK_p),
297 "q" => Some(XK_q),
298 "r" => Some(XK_r),
299 "s" => Some(XK_s),
300 "t" => Some(XK_t),
301 "u" => Some(XK_u),
302 "v" => Some(XK_v),
303 "w" => Some(XK_w),
304 "x" => Some(XK_x),
305 "y" => Some(XK_y),
306 "z" => Some(XK_z),
307 "braceleft" => Some(XK_braceleft),
308 "bar" => Some(XK_bar),
309 "braceright" => Some(XK_braceright),
310 "asciitilde" => Some(XK_asciitilde),
311 "nobreakspace" => Some(XK_nobreakspace),
312 "exclamdown" => Some(XK_exclamdown),
313 "cent" => Some(XK_cent),
314 "sterling" => Some(XK_sterling),
315 "currency" => Some(XK_currency),
316 "yen" => Some(XK_yen),
317 "brokenbar" => Some(XK_brokenbar),
318 "section" => Some(XK_section),
319 "diaeresis" => Some(XK_diaeresis),
320 "copyright" => Some(XK_copyright),
321 "ordfeminine" => Some(XK_ordfeminine),
322 "guillemotleft" => Some(XK_guillemotleft),
323 "notsign" => Some(XK_notsign),
324 "hyphen" => Some(XK_hyphen),
325 "registered" => Some(XK_registered),
326 "macron" => Some(XK_macron),
327 "degree" => Some(XK_degree),
328 "plusminus" => Some(XK_plusminus),
329 "twosuperior" => Some(XK_twosuperior),
330 "threesuperior" => Some(XK_threesuperior),
331 "acute" => Some(XK_acute),
332 "mu" => Some(XK_mu),
333 "paragraph" => Some(XK_paragraph),
334 "periodcentered" => Some(XK_periodcentered),
335 "cedilla" => Some(XK_cedilla),
336 "onesuperior" => Some(XK_onesuperior),
337 "masculine" => Some(XK_masculine),
338 "guillemotright" => Some(XK_guillemotright),
339 "onequarter" => Some(XK_onequarter),
340 "onehalf" => Some(XK_onehalf),
341 "threequarters" => Some(XK_threequarters),
342 "questiondown" => Some(XK_questiondown),
343 "Agrave" => Some(XK_Agrave),
344 "Aacute" => Some(XK_Aacute),
345 "Acircumflex" => Some(XK_Acircumflex),
346 "Atilde" => Some(XK_Atilde),
347 "Adiaeresis" => Some(XK_Adiaeresis),
348 "Aring" => Some(XK_Aring),
349 "AE" => Some(XK_AE),
350 "Ccedilla" => Some(XK_Ccedilla),
351 "Egrave" => Some(XK_Egrave),
352 "Eacute" => Some(XK_Eacute),
353 "Ecircumflex" => Some(XK_Ecircumflex),
354 "Ediaeresis" => Some(XK_Ediaeresis),
355 "Igrave" => Some(XK_Igrave),
356 "Iacute" => Some(XK_Iacute),
357 "Icircumflex" => Some(XK_Icircumflex),
358 "Idiaeresis" => Some(XK_Idiaeresis),
359 "ETH" => Some(XK_ETH),
360 "Eth" => Some(XK_Eth),
361 "Ntilde" => Some(XK_Ntilde),
362 "Ograve" => Some(XK_Ograve),
363 "Oacute" => Some(XK_Oacute),
364 "Ocircumflex" => Some(XK_Ocircumflex),
365 "Otilde" => Some(XK_Otilde),
366 "Odiaeresis" => Some(XK_Odiaeresis),
367 "multiply" => Some(XK_multiply),
368 "Ooblique" => Some(XK_Ooblique),
369 "Ugrave" => Some(XK_Ugrave),
370 "Uacute" => Some(XK_Uacute),
371 "Ucircumflex" => Some(XK_Ucircumflex),
372 "Udiaeresis" => Some(XK_Udiaeresis),
373 "Yacute" => Some(XK_Yacute),
374 "THORN" => Some(XK_THORN),
375 "Thorn" => Some(XK_Thorn),
376 "ssharp" => Some(XK_ssharp),
377 "agrave" => Some(XK_agrave),
378 "aacute" => Some(XK_aacute),
379 "acircumflex" => Some(XK_acircumflex),
380 "atilde" => Some(XK_atilde),
381 "adiaeresis" => Some(XK_adiaeresis),
382 "aring" => Some(XK_aring),
383 "ae" => Some(XK_ae),
384 "ccedilla" => Some(XK_ccedilla),
385 "egrave" => Some(XK_egrave),
386 "eacute" => Some(XK_eacute),
387 "ecircumflex" => Some(XK_ecircumflex),
388 "ediaeresis" => Some(XK_ediaeresis),
389 "igrave" => Some(XK_igrave),
390 "iacute" => Some(XK_iacute),
391 "icircumflex" => Some(XK_icircumflex),
392 "idiaeresis" => Some(XK_idiaeresis),
393 "eth" => Some(XK_eth),
394 "ntilde" => Some(XK_ntilde),
395 "ograve" => Some(XK_ograve),
396 "oacute" => Some(XK_oacute),
397 "ocircumflex" => Some(XK_ocircumflex),
398 "otilde" => Some(XK_otilde),
399 "odiaeresis" => Some(XK_odiaeresis),
400 "division" => Some(XK_division),
401 "oslash" => Some(XK_oslash),
402 "ugrave" => Some(XK_ugrave),
403 "uacute" => Some(XK_uacute),
404 "ucircumflex" => Some(XK_ucircumflex),
405 "udiaeresis" => Some(XK_udiaeresis),
406 "yacute" => Some(XK_yacute),
407 "thorn" => Some(XK_thorn),
408 "ydiaeresis" => Some(XK_ydiaeresis),
409 "Aogonek" => Some(XK_Aogonek),
410 "breve" => Some(XK_breve),
411 "Lstroke" => Some(XK_Lstroke),
412 "Lcaron" => Some(XK_Lcaron),
413 "Sacute" => Some(XK_Sacute),
414 "Scaron" => Some(XK_Scaron),
415 "Scedilla" => Some(XK_Scedilla),
416 "Tcaron" => Some(XK_Tcaron),
417 "Zacute" => Some(XK_Zacute),
418 "Zcaron" => Some(XK_Zcaron),
419 "Zabovedot" => Some(XK_Zabovedot),
420 "aogonek" => Some(XK_aogonek),
421 "ogonek" => Some(XK_ogonek),
422 "lstroke" => Some(XK_lstroke),
423 "lcaron" => Some(XK_lcaron),
424 "sacute" => Some(XK_sacute),
425 "caron" => Some(XK_caron),
426 "scaron" => Some(XK_scaron),
427 "scedilla" => Some(XK_scedilla),
428 "tcaron" => Some(XK_tcaron),
429 "zacute" => Some(XK_zacute),
430 "doubleacute" => Some(XK_doubleacute),
431 "zcaron" => Some(XK_zcaron),
432 "zabovedot" => Some(XK_zabovedot),
433 "Racute" => Some(XK_Racute),
434 "Abreve" => Some(XK_Abreve),
435 "Lacute" => Some(XK_Lacute),
436 "Cacute" => Some(XK_Cacute),
437 "Ccaron" => Some(XK_Ccaron),
438 "Eogonek" => Some(XK_Eogonek),
439 "Ecaron" => Some(XK_Ecaron),
440 "Dcaron" => Some(XK_Dcaron),
441 "Dstroke" => Some(XK_Dstroke),
442 "Nacute" => Some(XK_Nacute),
443 "Ncaron" => Some(XK_Ncaron),
444 "Odoubleacute" => Some(XK_Odoubleacute),
445 "Rcaron" => Some(XK_Rcaron),
446 "Uring" => Some(XK_Uring),
447 "Udoubleacute" => Some(XK_Udoubleacute),
448 "Tcedilla" => Some(XK_Tcedilla),
449 "racute" => Some(XK_racute),
450 "abreve" => Some(XK_abreve),
451 "lacute" => Some(XK_lacute),
452 "cacute" => Some(XK_cacute),
453 "ccaron" => Some(XK_ccaron),
454 "eogonek" => Some(XK_eogonek),
455 "ecaron" => Some(XK_ecaron),
456 "dcaron" => Some(XK_dcaron),
457 "dstroke" => Some(XK_dstroke),
458 "nacute" => Some(XK_nacute),
459 "ncaron" => Some(XK_ncaron),
460 "odoubleacute" => Some(XK_odoubleacute),
461 "udoubleacute" => Some(XK_udoubleacute),
462 "rcaron" => Some(XK_rcaron),
463 "uring" => Some(XK_uring),
464 "tcedilla" => Some(XK_tcedilla),
465 "abovedot" => Some(XK_abovedot),
466 "Hstroke" => Some(XK_Hstroke),
467 "Hcircumflex" => Some(XK_Hcircumflex),
468 "Iabovedot" => Some(XK_Iabovedot),
469 "Gbreve" => Some(XK_Gbreve),
470 "Jcircumflex" => Some(XK_Jcircumflex),
471 "hstroke" => Some(XK_hstroke),
472 "hcircumflex" => Some(XK_hcircumflex),
473 "idotless" => Some(XK_idotless),
474 "gbreve" => Some(XK_gbreve),
475 "jcircumflex" => Some(XK_jcircumflex),
476 "Cabovedot" => Some(XK_Cabovedot),
477 "Ccircumflex" => Some(XK_Ccircumflex),
478 "Gabovedot" => Some(XK_Gabovedot),
479 "Gcircumflex" => Some(XK_Gcircumflex),
480 "Ubreve" => Some(XK_Ubreve),
481 "Scircumflex" => Some(XK_Scircumflex),
482 "cabovedot" => Some(XK_cabovedot),
483 "ccircumflex" => Some(XK_ccircumflex),
484 "gabovedot" => Some(XK_gabovedot),
485 "gcircumflex" => Some(XK_gcircumflex),
486 "ubreve" => Some(XK_ubreve),
487 "scircumflex" => Some(XK_scircumflex),
488 "kra" => Some(XK_kra),
489 "kappa" => Some(XK_kappa),
490 "Rcedilla" => Some(XK_Rcedilla),
491 "Itilde" => Some(XK_Itilde),
492 "Lcedilla" => Some(XK_Lcedilla),
493 "Emacron" => Some(XK_Emacron),
494 "Gcedilla" => Some(XK_Gcedilla),
495 "Tslash" => Some(XK_Tslash),
496 "rcedilla" => Some(XK_rcedilla),
497 "itilde" => Some(XK_itilde),
498 "lcedilla" => Some(XK_lcedilla),
499 "emacron" => Some(XK_emacron),
500 "gcedilla" => Some(XK_gcedilla),
501 "tslash" => Some(XK_tslash),
502 "ENG" => Some(XK_ENG),
503 "eng" => Some(XK_eng),
504 "Amacron" => Some(XK_Amacron),
505 "Iogonek" => Some(XK_Iogonek),
506 "Eabovedot" => Some(XK_Eabovedot),
507 "Imacron" => Some(XK_Imacron),
508 "Ncedilla" => Some(XK_Ncedilla),
509 "Omacron" => Some(XK_Omacron),
510 "Kcedilla" => Some(XK_Kcedilla),
511 "Uogonek" => Some(XK_Uogonek),
512 "Utilde" => Some(XK_Utilde),
513 "Umacron" => Some(XK_Umacron),
514 "amacron" => Some(XK_amacron),
515 "iogonek" => Some(XK_iogonek),
516 "eabovedot" => Some(XK_eabovedot),
517 "imacron" => Some(XK_imacron),
518 "ncedilla" => Some(XK_ncedilla),
519 "omacron" => Some(XK_omacron),
520 "kcedilla" => Some(XK_kcedilla),
521 "uogonek" => Some(XK_uogonek),
522 "utilde" => Some(XK_utilde),
523 "umacron" => Some(XK_umacron),
524 "overline" => Some(XK_overline),
525 "kana_fullstop" => Some(XK_kana_fullstop),
526 "kana_openingbracket" => Some(XK_kana_openingbracket),
527 "kana_closingbracket" => Some(XK_kana_closingbracket),
528 "kana_comma" => Some(XK_kana_comma),
529 "kana_conjunctive" => Some(XK_kana_conjunctive),
530 "kana_middledot" => Some(XK_kana_middledot),
531 "kana_WO" => Some(XK_kana_WO),
532 "kana_a" => Some(XK_kana_a),
533 "kana_i" => Some(XK_kana_i),
534 "kana_u" => Some(XK_kana_u),
535 "kana_e" => Some(XK_kana_e),
536 "kana_o" => Some(XK_kana_o),
537 "kana_ya" => Some(XK_kana_ya),
538 "kana_yu" => Some(XK_kana_yu),
539 "kana_yo" => Some(XK_kana_yo),
540 "kana_tsu" => Some(XK_kana_tsu),
541 "kana_tu" => Some(XK_kana_tu),
542 "prolongedsound" => Some(XK_prolongedsound),
543 "kana_A" => Some(XK_kana_A),
544 "kana_I" => Some(XK_kana_I),
545 "kana_U" => Some(XK_kana_U),
546 "kana_E" => Some(XK_kana_E),
547 "kana_O" => Some(XK_kana_O),
548 "kana_KA" => Some(XK_kana_KA),
549 "kana_KI" => Some(XK_kana_KI),
550 "kana_KU" => Some(XK_kana_KU),
551 "kana_KE" => Some(XK_kana_KE),
552 "kana_KO" => Some(XK_kana_KO),
553 "kana_SA" => Some(XK_kana_SA),
554 "kana_SHI" => Some(XK_kana_SHI),
555 "kana_SU" => Some(XK_kana_SU),
556 "kana_SE" => Some(XK_kana_SE),
557 "kana_SO" => Some(XK_kana_SO),
558 "kana_TA" => Some(XK_kana_TA),
559 "kana_CHI" => Some(XK_kana_CHI),
560 "kana_TI" => Some(XK_kana_TI),
561 "kana_TSU" => Some(XK_kana_TSU),
562 "kana_TU" => Some(XK_kana_TU),
563 "kana_TE" => Some(XK_kana_TE),
564 "kana_TO" => Some(XK_kana_TO),
565 "kana_NA" => Some(XK_kana_NA),
566 "kana_NI" => Some(XK_kana_NI),
567 "kana_NU" => Some(XK_kana_NU),
568 "kana_NE" => Some(XK_kana_NE),
569 "kana_NO" => Some(XK_kana_NO),
570 "kana_HA" => Some(XK_kana_HA),
571 "kana_HI" => Some(XK_kana_HI),
572 "kana_FU" => Some(XK_kana_FU),
573 "kana_HU" => Some(XK_kana_HU),
574 "kana_HE" => Some(XK_kana_HE),
575 "kana_HO" => Some(XK_kana_HO),
576 "kana_MA" => Some(XK_kana_MA),
577 "kana_MI" => Some(XK_kana_MI),
578 "kana_MU" => Some(XK_kana_MU),
579 "kana_ME" => Some(XK_kana_ME),
580 "kana_MO" => Some(XK_kana_MO),
581 "kana_YA" => Some(XK_kana_YA),
582 "kana_YU" => Some(XK_kana_YU),
583 "kana_YO" => Some(XK_kana_YO),
584 "kana_RA" => Some(XK_kana_RA),
585 "kana_RI" => Some(XK_kana_RI),
586 "kana_RU" => Some(XK_kana_RU),
587 "kana_RE" => Some(XK_kana_RE),
588 "kana_RO" => Some(XK_kana_RO),
589 "kana_WA" => Some(XK_kana_WA),
590 "kana_N" => Some(XK_kana_N),
591 "voicedsound" => Some(XK_voicedsound),
592 "semivoicedsound" => Some(XK_semivoicedsound),
593 "kana_switch" => Some(XK_kana_switch),
594 "Arabic_comma" => Some(XK_Arabic_comma),
595 "Arabic_semicolon" => Some(XK_Arabic_semicolon),
596 "Arabic_question_mark" => Some(XK_Arabic_question_mark),
597 "Arabic_hamza" => Some(XK_Arabic_hamza),
598 "Arabic_maddaonalef" => Some(XK_Arabic_maddaonalef),
599 "Arabic_hamzaonalef" => Some(XK_Arabic_hamzaonalef),
600 "Arabic_hamzaonwaw" => Some(XK_Arabic_hamzaonwaw),
601 "Arabic_hamzaunderalef" => Some(XK_Arabic_hamzaunderalef),
602 "Arabic_hamzaonyeh" => Some(XK_Arabic_hamzaonyeh),
603 "Arabic_alef" => Some(XK_Arabic_alef),
604 "Arabic_beh" => Some(XK_Arabic_beh),
605 "Arabic_tehmarbuta" => Some(XK_Arabic_tehmarbuta),
606 "Arabic_teh" => Some(XK_Arabic_teh),
607 "Arabic_theh" => Some(XK_Arabic_theh),
608 "Arabic_jeem" => Some(XK_Arabic_jeem),
609 "Arabic_hah" => Some(XK_Arabic_hah),
610 "Arabic_khah" => Some(XK_Arabic_khah),
611 "Arabic_dal" => Some(XK_Arabic_dal),
612 "Arabic_thal" => Some(XK_Arabic_thal),
613 "Arabic_ra" => Some(XK_Arabic_ra),
614 "Arabic_zain" => Some(XK_Arabic_zain),
615 "Arabic_seen" => Some(XK_Arabic_seen),
616 "Arabic_sheen" => Some(XK_Arabic_sheen),
617 "Arabic_sad" => Some(XK_Arabic_sad),
618 "Arabic_dad" => Some(XK_Arabic_dad),
619 "Arabic_tah" => Some(XK_Arabic_tah),
620 "Arabic_zah" => Some(XK_Arabic_zah),
621 "Arabic_ain" => Some(XK_Arabic_ain),
622 "Arabic_ghain" => Some(XK_Arabic_ghain),
623 "Arabic_tatweel" => Some(XK_Arabic_tatweel),
624 "Arabic_feh" => Some(XK_Arabic_feh),
625 "Arabic_qaf" => Some(XK_Arabic_qaf),
626 "Arabic_kaf" => Some(XK_Arabic_kaf),
627 "Arabic_lam" => Some(XK_Arabic_lam),
628 "Arabic_meem" => Some(XK_Arabic_meem),
629 "Arabic_noon" => Some(XK_Arabic_noon),
630 "Arabic_ha" => Some(XK_Arabic_ha),
631 "Arabic_heh" => Some(XK_Arabic_heh),
632 "Arabic_waw" => Some(XK_Arabic_waw),
633 "Arabic_alefmaksura" => Some(XK_Arabic_alefmaksura),
634 "Arabic_yeh" => Some(XK_Arabic_yeh),
635 "Arabic_fathatan" => Some(XK_Arabic_fathatan),
636 "Arabic_dammatan" => Some(XK_Arabic_dammatan),
637 "Arabic_kasratan" => Some(XK_Arabic_kasratan),
638 "Arabic_fatha" => Some(XK_Arabic_fatha),
639 "Arabic_damma" => Some(XK_Arabic_damma),
640 "Arabic_kasra" => Some(XK_Arabic_kasra),
641 "Arabic_shadda" => Some(XK_Arabic_shadda),
642 "Arabic_sukun" => Some(XK_Arabic_sukun),
643 "Arabic_switch" => Some(XK_Arabic_switch),
644 "Serbian_dje" => Some(XK_Serbian_dje),
645 "Macedonia_gje" => Some(XK_Macedonia_gje),
646 "Cyrillic_io" => Some(XK_Cyrillic_io),
647 "Ukrainian_ie" => Some(XK_Ukrainian_ie),
648 "Ukranian_je" => Some(XK_Ukranian_je),
649 "Macedonia_dse" => Some(XK_Macedonia_dse),
650 "Ukrainian_i" => Some(XK_Ukrainian_i),
651 "Ukranian_i" => Some(XK_Ukranian_i),
652 "Ukrainian_yi" => Some(XK_Ukrainian_yi),
653 "Ukranian_yi" => Some(XK_Ukranian_yi),
654 "Cyrillic_je" => Some(XK_Cyrillic_je),
655 "Serbian_je" => Some(XK_Serbian_je),
656 "Cyrillic_lje" => Some(XK_Cyrillic_lje),
657 "Serbian_lje" => Some(XK_Serbian_lje),
658 "Cyrillic_nje" => Some(XK_Cyrillic_nje),
659 "Serbian_nje" => Some(XK_Serbian_nje),
660 "Serbian_tshe" => Some(XK_Serbian_tshe),
661 "Macedonia_kje" => Some(XK_Macedonia_kje),
662 "Byelorussian_shortu" => Some(XK_Byelorussian_shortu),
663 "Cyrillic_dzhe" => Some(XK_Cyrillic_dzhe),
664 "Serbian_dze" => Some(XK_Serbian_dze),
665 "numerosign" => Some(XK_numerosign),
666 "Serbian_DJE" => Some(XK_Serbian_DJE),
667 "Macedonia_GJE" => Some(XK_Macedonia_GJE),
668 "Cyrillic_IO" => Some(XK_Cyrillic_IO),
669 "Ukrainian_IE" => Some(XK_Ukrainian_IE),
670 "Ukranian_JE" => Some(XK_Ukranian_JE),
671 "Macedonia_DSE" => Some(XK_Macedonia_DSE),
672 "Ukrainian_I" => Some(XK_Ukrainian_I),
673 "Ukranian_I" => Some(XK_Ukranian_I),
674 "Ukrainian_YI" => Some(XK_Ukrainian_YI),
675 "Ukranian_YI" => Some(XK_Ukranian_YI),
676 "Cyrillic_JE" => Some(XK_Cyrillic_JE),
677 "Serbian_JE" => Some(XK_Serbian_JE),
678 "Cyrillic_LJE" => Some(XK_Cyrillic_LJE),
679 "Serbian_LJE" => Some(XK_Serbian_LJE),
680 "Cyrillic_NJE" => Some(XK_Cyrillic_NJE),
681 "Serbian_NJE" => Some(XK_Serbian_NJE),
682 "Serbian_TSHE" => Some(XK_Serbian_TSHE),
683 "Macedonia_KJE" => Some(XK_Macedonia_KJE),
684 "Byelorussian_SHORTU" => Some(XK_Byelorussian_SHORTU),
685 "Cyrillic_DZHE" => Some(XK_Cyrillic_DZHE),
686 "Serbian_DZE" => Some(XK_Serbian_DZE),
687 "Cyrillic_yu" => Some(XK_Cyrillic_yu),
688 "Cyrillic_a" => Some(XK_Cyrillic_a),
689 "Cyrillic_be" => Some(XK_Cyrillic_be),
690 "Cyrillic_tse" => Some(XK_Cyrillic_tse),
691 "Cyrillic_de" => Some(XK_Cyrillic_de),
692 "Cyrillic_ie" => Some(XK_Cyrillic_ie),
693 "Cyrillic_ef" => Some(XK_Cyrillic_ef),
694 "Cyrillic_ghe" => Some(XK_Cyrillic_ghe),
695 "Cyrillic_ha" => Some(XK_Cyrillic_ha),
696 "Cyrillic_i" => Some(XK_Cyrillic_i),
697 "Cyrillic_shorti" => Some(XK_Cyrillic_shorti),
698 "Cyrillic_ka" => Some(XK_Cyrillic_ka),
699 "Cyrillic_el" => Some(XK_Cyrillic_el),
700 "Cyrillic_em" => Some(XK_Cyrillic_em),
701 "Cyrillic_en" => Some(XK_Cyrillic_en),
702 "Cyrillic_o" => Some(XK_Cyrillic_o),
703 "Cyrillic_pe" => Some(XK_Cyrillic_pe),
704 "Cyrillic_ya" => Some(XK_Cyrillic_ya),
705 "Cyrillic_er" => Some(XK_Cyrillic_er),
706 "Cyrillic_es" => Some(XK_Cyrillic_es),
707 "Cyrillic_te" => Some(XK_Cyrillic_te),
708 "Cyrillic_u" => Some(XK_Cyrillic_u),
709 "Cyrillic_zhe" => Some(XK_Cyrillic_zhe),
710 "Cyrillic_ve" => Some(XK_Cyrillic_ve),
711 "Cyrillic_softsign" => Some(XK_Cyrillic_softsign),
712 "Cyrillic_yeru" => Some(XK_Cyrillic_yeru),
713 "Cyrillic_ze" => Some(XK_Cyrillic_ze),
714 "Cyrillic_sha" => Some(XK_Cyrillic_sha),
715 "Cyrillic_e" => Some(XK_Cyrillic_e),
716 "Cyrillic_shcha" => Some(XK_Cyrillic_shcha),
717 "Cyrillic_che" => Some(XK_Cyrillic_che),
718 "Cyrillic_hardsign" => Some(XK_Cyrillic_hardsign),
719 "Cyrillic_YU" => Some(XK_Cyrillic_YU),
720 "Cyrillic_A" => Some(XK_Cyrillic_A),
721 "Cyrillic_BE" => Some(XK_Cyrillic_BE),
722 "Cyrillic_TSE" => Some(XK_Cyrillic_TSE),
723 "Cyrillic_DE" => Some(XK_Cyrillic_DE),
724 "Cyrillic_IE" => Some(XK_Cyrillic_IE),
725 "Cyrillic_EF" => Some(XK_Cyrillic_EF),
726 "Cyrillic_GHE" => Some(XK_Cyrillic_GHE),
727 "Cyrillic_HA" => Some(XK_Cyrillic_HA),
728 "Cyrillic_I" => Some(XK_Cyrillic_I),
729 "Cyrillic_SHORTI" => Some(XK_Cyrillic_SHORTI),
730 "Cyrillic_KA" => Some(XK_Cyrillic_KA),
731 "Cyrillic_EL" => Some(XK_Cyrillic_EL),
732 "Cyrillic_EM" => Some(XK_Cyrillic_EM),
733 "Cyrillic_EN" => Some(XK_Cyrillic_EN),
734 "Cyrillic_O" => Some(XK_Cyrillic_O),
735 "Cyrillic_PE" => Some(XK_Cyrillic_PE),
736 "Cyrillic_YA" => Some(XK_Cyrillic_YA),
737 "Cyrillic_ER" => Some(XK_Cyrillic_ER),
738 "Cyrillic_ES" => Some(XK_Cyrillic_ES),
739 "Cyrillic_TE" => Some(XK_Cyrillic_TE),
740 "Cyrillic_U" => Some(XK_Cyrillic_U),
741 "Cyrillic_ZHE" => Some(XK_Cyrillic_ZHE),
742 "Cyrillic_VE" => Some(XK_Cyrillic_VE),
743 "Cyrillic_SOFTSIGN" => Some(XK_Cyrillic_SOFTSIGN),
744 "Cyrillic_YERU" => Some(XK_Cyrillic_YERU),
745 "Cyrillic_ZE" => Some(XK_Cyrillic_ZE),
746 "Cyrillic_SHA" => Some(XK_Cyrillic_SHA),
747 "Cyrillic_E" => Some(XK_Cyrillic_E),
748 "Cyrillic_SHCHA" => Some(XK_Cyrillic_SHCHA),
749 "Cyrillic_CHE" => Some(XK_Cyrillic_CHE),
750 "Cyrillic_HARDSIGN" => Some(XK_Cyrillic_HARDSIGN),
751 "Greek_ALPHAaccent" => Some(XK_Greek_ALPHAaccent),
752 "Greek_EPSILONaccent" => Some(XK_Greek_EPSILONaccent),
753 "Greek_ETAaccent" => Some(XK_Greek_ETAaccent),
754 "Greek_IOTAaccent" => Some(XK_Greek_IOTAaccent),
755 "Greek_IOTAdiaeresis" => Some(XK_Greek_IOTAdiaeresis),
756 "Greek_OMICRONaccent" => Some(XK_Greek_OMICRONaccent),
757 "Greek_UPSILONaccent" => Some(XK_Greek_UPSILONaccent),
758 "Greek_UPSILONdieresis" => Some(XK_Greek_UPSILONdieresis),
759 "Greek_OMEGAaccent" => Some(XK_Greek_OMEGAaccent),
760 "Greek_accentdieresis" => Some(XK_Greek_accentdieresis),
761 "Greek_horizbar" => Some(XK_Greek_horizbar),
762 "Greek_alphaaccent" => Some(XK_Greek_alphaaccent),
763 "Greek_epsilonaccent" => Some(XK_Greek_epsilonaccent),
764 "Greek_etaaccent" => Some(XK_Greek_etaaccent),
765 "Greek_iotaaccent" => Some(XK_Greek_iotaaccent),
766 "Greek_iotadieresis" => Some(XK_Greek_iotadieresis),
767 "Greek_iotaaccentdieresis" => Some(XK_Greek_iotaaccentdieresis),
768 "Greek_omicronaccent" => Some(XK_Greek_omicronaccent),
769 "Greek_upsilonaccent" => Some(XK_Greek_upsilonaccent),
770 "Greek_upsilondieresis" => Some(XK_Greek_upsilondieresis),
771 "Greek_upsilonaccentdieresis" => Some(XK_Greek_upsilonaccentdieresis),
772 "Greek_omegaaccent" => Some(XK_Greek_omegaaccent),
773 "Greek_ALPHA" => Some(XK_Greek_ALPHA),
774 "Greek_BETA" => Some(XK_Greek_BETA),
775 "Greek_GAMMA" => Some(XK_Greek_GAMMA),
776 "Greek_DELTA" => Some(XK_Greek_DELTA),
777 "Greek_EPSILON" => Some(XK_Greek_EPSILON),
778 "Greek_ZETA" => Some(XK_Greek_ZETA),
779 "Greek_ETA" => Some(XK_Greek_ETA),
780 "Greek_THETA" => Some(XK_Greek_THETA),
781 "Greek_IOTA" => Some(XK_Greek_IOTA),
782 "Greek_KAPPA" => Some(XK_Greek_KAPPA),
783 "Greek_LAMDA" => Some(XK_Greek_LAMDA),
784 "Greek_LAMBDA" => Some(XK_Greek_LAMBDA),
785 "Greek_MU" => Some(XK_Greek_MU),
786 "Greek_NU" => Some(XK_Greek_NU),
787 "Greek_XI" => Some(XK_Greek_XI),
788 "Greek_OMICRON" => Some(XK_Greek_OMICRON),
789 "Greek_PI" => Some(XK_Greek_PI),
790 "Greek_RHO" => Some(XK_Greek_RHO),
791 "Greek_SIGMA" => Some(XK_Greek_SIGMA),
792 "Greek_TAU" => Some(XK_Greek_TAU),
793 "Greek_UPSILON" => Some(XK_Greek_UPSILON),
794 "Greek_PHI" => Some(XK_Greek_PHI),
795 "Greek_CHI" => Some(XK_Greek_CHI),
796 "Greek_PSI" => Some(XK_Greek_PSI),
797 "Greek_OMEGA" => Some(XK_Greek_OMEGA),
798 "Greek_alpha" => Some(XK_Greek_alpha),
799 "Greek_beta" => Some(XK_Greek_beta),
800 "Greek_gamma" => Some(XK_Greek_gamma),
801 "Greek_delta" => Some(XK_Greek_delta),
802 "Greek_epsilon" => Some(XK_Greek_epsilon),
803 "Greek_zeta" => Some(XK_Greek_zeta),
804 "Greek_eta" => Some(XK_Greek_eta),
805 "Greek_theta" => Some(XK_Greek_theta),
806 "Greek_iota" => Some(XK_Greek_iota),
807 "Greek_kappa" => Some(XK_Greek_kappa),
808 "Greek_lamda" => Some(XK_Greek_lamda),
809 "Greek_lambda" => Some(XK_Greek_lambda),
810 "Greek_mu" => Some(XK_Greek_mu),
811 "Greek_nu" => Some(XK_Greek_nu),
812 "Greek_xi" => Some(XK_Greek_xi),
813 "Greek_omicron" => Some(XK_Greek_omicron),
814 "Greek_pi" => Some(XK_Greek_pi),
815 "Greek_rho" => Some(XK_Greek_rho),
816 "Greek_sigma" => Some(XK_Greek_sigma),
817 "Greek_finalsmallsigma" => Some(XK_Greek_finalsmallsigma),
818 "Greek_tau" => Some(XK_Greek_tau),
819 "Greek_upsilon" => Some(XK_Greek_upsilon),
820 "Greek_phi" => Some(XK_Greek_phi),
821 "Greek_chi" => Some(XK_Greek_chi),
822 "Greek_psi" => Some(XK_Greek_psi),
823 "Greek_omega" => Some(XK_Greek_omega),
824 "Greek_switch" => Some(XK_Greek_switch),
825 "leftradical" => Some(XK_leftradical),
826 "topleftradical" => Some(XK_topleftradical),
827 "horizconnector" => Some(XK_horizconnector),
828 "topintegral" => Some(XK_topintegral),
829 "botintegral" => Some(XK_botintegral),
830 "vertconnector" => Some(XK_vertconnector),
831 "topleftsqbracket" => Some(XK_topleftsqbracket),
832 "botleftsqbracket" => Some(XK_botleftsqbracket),
833 "toprightsqbracket" => Some(XK_toprightsqbracket),
834 "botrightsqbracket" => Some(XK_botrightsqbracket),
835 "topleftparens" => Some(XK_topleftparens),
836 "botleftparens" => Some(XK_botleftparens),
837 "toprightparens" => Some(XK_toprightparens),
838 "botrightparens" => Some(XK_botrightparens),
839 "leftmiddlecurlybrace" => Some(XK_leftmiddlecurlybrace),
840 "rightmiddlecurlybrace" => Some(XK_rightmiddlecurlybrace),
841 "topleftsummation" => Some(XK_topleftsummation),
842 "botleftsummation" => Some(XK_botleftsummation),
843 "topvertsummationconnector" => Some(XK_topvertsummationconnector),
844 "botvertsummationconnector" => Some(XK_botvertsummationconnector),
845 "toprightsummation" => Some(XK_toprightsummation),
846 "botrightsummation" => Some(XK_botrightsummation),
847 "rightmiddlesummation" => Some(XK_rightmiddlesummation),
848 "lessthanequal" => Some(XK_lessthanequal),
849 "notequal" => Some(XK_notequal),
850 "greaterthanequal" => Some(XK_greaterthanequal),
851 "integral" => Some(XK_integral),
852 "therefore" => Some(XK_therefore),
853 "variation" => Some(XK_variation),
854 "infinity" => Some(XK_infinity),
855 "nabla" => Some(XK_nabla),
856 "approximate" => Some(XK_approximate),
857 "similarequal" => Some(XK_similarequal),
858 "ifonlyif" => Some(XK_ifonlyif),
859 "implies" => Some(XK_implies),
860 "identical" => Some(XK_identical),
861 "radical" => Some(XK_radical),
862 "includedin" => Some(XK_includedin),
863 "includes" => Some(XK_includes),
864 "intersection" => Some(XK_intersection),
865 "union" => Some(XK_union),
866 "logicaland" => Some(XK_logicaland),
867 "logicalor" => Some(XK_logicalor),
868 "partialderivative" => Some(XK_partialderivative),
869 "function" => Some(XK_function),
870 "leftarrow" => Some(XK_leftarrow),
871 "uparrow" => Some(XK_uparrow),
872 "rightarrow" => Some(XK_rightarrow),
873 "downarrow" => Some(XK_downarrow),
874 "blank" => Some(XK_blank),
875 "soliddiamond" => Some(XK_soliddiamond),
876 "checkerboard" => Some(XK_checkerboard),
877 "ht" => Some(XK_ht),
878 "ff" => Some(XK_ff),
879 "cr" => Some(XK_cr),
880 "lf" => Some(XK_lf),
881 "nl" => Some(XK_nl),
882 "vt" => Some(XK_vt),
883 "lowrightcorner" => Some(XK_lowrightcorner),
884 "uprightcorner" => Some(XK_uprightcorner),
885 "upleftcorner" => Some(XK_upleftcorner),
886 "lowleftcorner" => Some(XK_lowleftcorner),
887 "crossinglines" => Some(XK_crossinglines),
888 "horizlinescan1" => Some(XK_horizlinescan1),
889 "horizlinescan3" => Some(XK_horizlinescan3),
890 "horizlinescan5" => Some(XK_horizlinescan5),
891 "horizlinescan7" => Some(XK_horizlinescan7),
892 "horizlinescan9" => Some(XK_horizlinescan9),
893 "leftt" => Some(XK_leftt),
894 "rightt" => Some(XK_rightt),
895 "bott" => Some(XK_bott),
896 "topt" => Some(XK_topt),
897 "vertbar" => Some(XK_vertbar),
898 "emspace" => Some(XK_emspace),
899 "enspace" => Some(XK_enspace),
900 "em3space" => Some(XK_em3space),
901 "em4space" => Some(XK_em4space),
902 "digitspace" => Some(XK_digitspace),
903 "punctspace" => Some(XK_punctspace),
904 "thinspace" => Some(XK_thinspace),
905 "hairspace" => Some(XK_hairspace),
906 "emdash" => Some(XK_emdash),
907 "endash" => Some(XK_endash),
908 "signifblank" => Some(XK_signifblank),
909 "ellipsis" => Some(XK_ellipsis),
910 "doubbaselinedot" => Some(XK_doubbaselinedot),
911 "onethird" => Some(XK_onethird),
912 "twothirds" => Some(XK_twothirds),
913 "onefifth" => Some(XK_onefifth),
914 "twofifths" => Some(XK_twofifths),
915 "threefifths" => Some(XK_threefifths),
916 "fourfifths" => Some(XK_fourfifths),
917 "onesixth" => Some(XK_onesixth),
918 "fivesixths" => Some(XK_fivesixths),
919 "careof" => Some(XK_careof),
920 "figdash" => Some(XK_figdash),
921 "leftanglebracket" => Some(XK_leftanglebracket),
922 "decimalpoint" => Some(XK_decimalpoint),
923 "rightanglebracket" => Some(XK_rightanglebracket),
924 "marker" => Some(XK_marker),
925 "oneeighth" => Some(XK_oneeighth),
926 "threeeighths" => Some(XK_threeeighths),
927 "fiveeighths" => Some(XK_fiveeighths),
928 "seveneighths" => Some(XK_seveneighths),
929 "trademark" => Some(XK_trademark),
930 "signaturemark" => Some(XK_signaturemark),
931 "trademarkincircle" => Some(XK_trademarkincircle),
932 "leftopentriangle" => Some(XK_leftopentriangle),
933 "rightopentriangle" => Some(XK_rightopentriangle),
934 "emopencircle" => Some(XK_emopencircle),
935 "emopenrectangle" => Some(XK_emopenrectangle),
936 "leftsinglequotemark" => Some(XK_leftsinglequotemark),
937 "rightsinglequotemark" => Some(XK_rightsinglequotemark),
938 "leftdoublequotemark" => Some(XK_leftdoublequotemark),
939 "rightdoublequotemark" => Some(XK_rightdoublequotemark),
940 "prescription" => Some(XK_prescription),
941 "minutes" => Some(XK_minutes),
942 "seconds" => Some(XK_seconds),
943 "latincross" => Some(XK_latincross),
944 "hexagram" => Some(XK_hexagram),
945 "filledrectbullet" => Some(XK_filledrectbullet),
946 "filledlefttribullet" => Some(XK_filledlefttribullet),
947 "filledrighttribullet" => Some(XK_filledrighttribullet),
948 "emfilledcircle" => Some(XK_emfilledcircle),
949 "emfilledrect" => Some(XK_emfilledrect),
950 "enopencircbullet" => Some(XK_enopencircbullet),
951 "enopensquarebullet" => Some(XK_enopensquarebullet),
952 "openrectbullet" => Some(XK_openrectbullet),
953 "opentribulletup" => Some(XK_opentribulletup),
954 "opentribulletdown" => Some(XK_opentribulletdown),
955 "openstar" => Some(XK_openstar),
956 "enfilledcircbullet" => Some(XK_enfilledcircbullet),
957 "enfilledsqbullet" => Some(XK_enfilledsqbullet),
958 "filledtribulletup" => Some(XK_filledtribulletup),
959 "filledtribulletdown" => Some(XK_filledtribulletdown),
960 "leftpointer" => Some(XK_leftpointer),
961 "rightpointer" => Some(XK_rightpointer),
962 "club" => Some(XK_club),
963 "diamond" => Some(XK_diamond),
964 "heart" => Some(XK_heart),
965 "maltesecross" => Some(XK_maltesecross),
966 "dagger" => Some(XK_dagger),
967 "doubledagger" => Some(XK_doubledagger),
968 "checkmark" => Some(XK_checkmark),
969 "ballotcross" => Some(XK_ballotcross),
970 "musicalsharp" => Some(XK_musicalsharp),
971 "musicalflat" => Some(XK_musicalflat),
972 "malesymbol" => Some(XK_malesymbol),
973 "femalesymbol" => Some(XK_femalesymbol),
974 "telephone" => Some(XK_telephone),
975 "telephonerecorder" => Some(XK_telephonerecorder),
976 "phonographcopyright" => Some(XK_phonographcopyright),
977 "caret" => Some(XK_caret),
978 "singlelowquotemark" => Some(XK_singlelowquotemark),
979 "doublelowquotemark" => Some(XK_doublelowquotemark),
980 "cursor" => Some(XK_cursor),
981 "leftcaret" => Some(XK_leftcaret),
982 "rightcaret" => Some(XK_rightcaret),
983 "downcaret" => Some(XK_downcaret),
984 "upcaret" => Some(XK_upcaret),
985 "overbar" => Some(XK_overbar),
986 "downtack" => Some(XK_downtack),
987 "upshoe" => Some(XK_upshoe),
988 "downstile" => Some(XK_downstile),
989 "underbar" => Some(XK_underbar),
990 "jot" => Some(XK_jot),
991 "quad" => Some(XK_quad),
992 "uptack" => Some(XK_uptack),
993 "circle" => Some(XK_circle),
994 "upstile" => Some(XK_upstile),
995 "downshoe" => Some(XK_downshoe),
996 "rightshoe" => Some(XK_rightshoe),
997 "leftshoe" => Some(XK_leftshoe),
998 "lefttack" => Some(XK_lefttack),
999 "righttack" => Some(XK_righttack),
1000 "hebrew_doublelowline" => Some(XK_hebrew_doublelowline),
1001 "hebrew_aleph" => Some(XK_hebrew_aleph),
1002 "hebrew_bet" => Some(XK_hebrew_bet),
1003 "hebrew_beth" => Some(XK_hebrew_beth),
1004 "hebrew_gimel" => Some(XK_hebrew_gimel),
1005 "hebrew_gimmel" => Some(XK_hebrew_gimmel),
1006 "hebrew_dalet" => Some(XK_hebrew_dalet),
1007 "hebrew_daleth" => Some(XK_hebrew_daleth),
1008 "hebrew_he" => Some(XK_hebrew_he),
1009 "hebrew_waw" => Some(XK_hebrew_waw),
1010 "hebrew_zain" => Some(XK_hebrew_zain),
1011 "hebrew_zayin" => Some(XK_hebrew_zayin),
1012 "hebrew_chet" => Some(XK_hebrew_chet),
1013 "hebrew_het" => Some(XK_hebrew_het),
1014 "hebrew_tet" => Some(XK_hebrew_tet),
1015 "hebrew_teth" => Some(XK_hebrew_teth),
1016 "hebrew_yod" => Some(XK_hebrew_yod),
1017 "hebrew_finalkaph" => Some(XK_hebrew_finalkaph),
1018 "hebrew_kaph" => Some(XK_hebrew_kaph),
1019 "hebrew_lamed" => Some(XK_hebrew_lamed),
1020 "hebrew_finalmem" => Some(XK_hebrew_finalmem),
1021 "hebrew_mem" => Some(XK_hebrew_mem),
1022 "hebrew_finalnun" => Some(XK_hebrew_finalnun),
1023 "hebrew_nun" => Some(XK_hebrew_nun),
1024 "hebrew_samech" => Some(XK_hebrew_samech),
1025 "hebrew_samekh" => Some(XK_hebrew_samekh),
1026 "hebrew_ayin" => Some(XK_hebrew_ayin),
1027 "hebrew_finalpe" => Some(XK_hebrew_finalpe),
1028 "hebrew_pe" => Some(XK_hebrew_pe),
1029 "hebrew_finalzade" => Some(XK_hebrew_finalzade),
1030 "hebrew_finalzadi" => Some(XK_hebrew_finalzadi),
1031 "hebrew_zade" => Some(XK_hebrew_zade),
1032 "hebrew_zadi" => Some(XK_hebrew_zadi),
1033 "hebrew_qoph" => Some(XK_hebrew_qoph),
1034 "hebrew_kuf" => Some(XK_hebrew_kuf),
1035 "hebrew_resh" => Some(XK_hebrew_resh),
1036 "hebrew_shin" => Some(XK_hebrew_shin),
1037 "hebrew_taw" => Some(XK_hebrew_taw),
1038 "hebrew_taf" => Some(XK_hebrew_taf),
1039 "Hebrew_switch" => Some(XK_Hebrew_switch),
1040 "XF86XK_ModeLock" => Some(XF86XK_ModeLock),
1041 "XF86XK_MonBrightnessUp" => Some(XF86XK_MonBrightnessUp),
1042 "XF86XK_MonBrightnessDown" => Some(XF86XK_MonBrightnessDown),
1043 "XF86XK_KbdLightOnOff" => Some(XF86XK_KbdLightOnOff),
1044 "XF86XK_KbdBrightnessUp" => Some(XF86XK_KbdBrightnessUp),
1045 "XF86XK_KbdBrightnessDown" => Some(XF86XK_KbdBrightnessDown),
1046 "XF86XK_Standby" => Some(XF86XK_Standby),
1047 "XF86XK_AudioLowerVolume" => Some(XF86XK_AudioLowerVolume),
1048 "XF86XK_AudioMute" => Some(XF86XK_AudioMute),
1049 "XF86XK_AudioRaiseVolume" => Some(XF86XK_AudioRaiseVolume),
1050 "XF86XK_AudioPlay" => Some(XF86XK_AudioPlay),
1051 "XF86XK_AudioStop" => Some(XF86XK_AudioStop),
1052 "XF86XK_AudioPrev" => Some(XF86XK_AudioPrev),
1053 "XF86XK_AudioNext" => Some(XF86XK_AudioNext),
1054 "XF86XK_HomePage" => Some(XF86XK_HomePage),
1055 "XF86XK_Mail" => Some(XF86XK_Mail),
1056 "XF86XK_Start" => Some(XF86XK_Start),
1057 "XF86XK_Search" => Some(XF86XK_Search),
1058 "XF86XK_AudioRecord" => Some(XF86XK_AudioRecord),
1059 "XF86XK_Calculator" => Some(XF86XK_Calculator),
1060 "XF86XK_Memo" => Some(XF86XK_Memo),
1061 "XF86XK_ToDoList" => Some(XF86XK_ToDoList),
1062 "XF86XK_Calendar" => Some(XF86XK_Calendar),
1063 "XF86XK_PowerDown" => Some(XF86XK_PowerDown),
1064 "XF86XK_ContrastAdjust" => Some(XF86XK_ContrastAdjust),
1065 "XF86XK_RockerUp" => Some(XF86XK_RockerUp),
1066 "XF86XK_RockerDown" => Some(XF86XK_RockerDown),
1067 "XF86XK_RockerEnter" => Some(XF86XK_RockerEnter),
1068 "XF86XK_Back" => Some(XF86XK_Back),
1069 "XF86XK_Forward" => Some(XF86XK_Forward),
1070 "XF86XK_Stop" => Some(XF86XK_Stop),
1071 "XF86XK_Refresh" => Some(XF86XK_Refresh),
1072 "XF86XK_PowerOff" => Some(XF86XK_PowerOff),
1073 "XF86XK_WakeUp" => Some(XF86XK_WakeUp),
1074 "XF86XK_Eject" => Some(XF86XK_Eject),
1075 "XF86XK_ScreenSaver" => Some(XF86XK_ScreenSaver),
1076 "XF86XK_WWW" => Some(XF86XK_WWW),
1077 "XF86XK_Sleep" => Some(XF86XK_Sleep),
1078 "XF86XK_Favorites" => Some(XF86XK_Favorites),
1079 "XF86XK_AudioPause" => Some(XF86XK_AudioPause),
1080 "XF86XK_AudioMedia" => Some(XF86XK_AudioMedia),
1081 "XF86XK_MyComputer" => Some(XF86XK_MyComputer),
1082 "XF86XK_VendorHome" => Some(XF86XK_VendorHome),
1083 "XF86XK_LightBulb" => Some(XF86XK_LightBulb),
1084 "XF86XK_Shop" => Some(XF86XK_Shop),
1085 "XF86XK_History" => Some(XF86XK_History),
1086 "XF86XK_OpenURL" => Some(XF86XK_OpenURL),
1087 "XF86XK_AddFavorite" => Some(XF86XK_AddFavorite),
1088 "XF86XK_HotLinks" => Some(XF86XK_HotLinks),
1089 "XF86XK_BrightnessAdjust" => Some(XF86XK_BrightnessAdjust),
1090 "XF86XK_Finance" => Some(XF86XK_Finance),
1091 "XF86XK_Community" => Some(XF86XK_Community),
1092 "XF86XK_AudioRewind" => Some(XF86XK_AudioRewind),
1093 "XF86XK_BackForward" => Some(XF86XK_BackForward),
1094 "XF86XK_Launch0" => Some(XF86XK_Launch0),
1095 "XF86XK_Launch1" => Some(XF86XK_Launch1),
1096 "XF86XK_Launch2" => Some(XF86XK_Launch2),
1097 "XF86XK_Launch3" => Some(XF86XK_Launch3),
1098 "XF86XK_Launch4" => Some(XF86XK_Launch4),
1099 "XF86XK_Launch5" => Some(XF86XK_Launch5),
1100 "XF86XK_Launch6" => Some(XF86XK_Launch6),
1101 "XF86XK_Launch7" => Some(XF86XK_Launch7),
1102 "XF86XK_Launch8" => Some(XF86XK_Launch8),
1103 "XF86XK_Launch9" => Some(XF86XK_Launch9),
1104 "XF86XK_LaunchA" => Some(XF86XK_LaunchA),
1105 "XF86XK_LaunchB" => Some(XF86XK_LaunchB),
1106 "XF86XK_LaunchC" => Some(XF86XK_LaunchC),
1107 "XF86XK_LaunchD" => Some(XF86XK_LaunchD),
1108 "XF86XK_LaunchE" => Some(XF86XK_LaunchE),
1109 "XF86XK_LaunchF" => Some(XF86XK_LaunchF),
1110 "XF86XK_ApplicationLeft" => Some(XF86XK_ApplicationLeft),
1111 "XF86XK_ApplicationRight" => Some(XF86XK_ApplicationRight),
1112 "XF86XK_Book" => Some(XF86XK_Book),
1113 "XF86XK_CD" => Some(XF86XK_CD),
1114 "XF86XK_Calculater" => Some(XF86XK_Calculater),
1115 "XF86XK_Clear" => Some(XF86XK_Clear),
1116 "XF86XK_Close" => Some(XF86XK_Close),
1117 "XF86XK_Copy" => Some(XF86XK_Copy),
1118 "XF86XK_Cut" => Some(XF86XK_Cut),
1119 "XF86XK_Display" => Some(XF86XK_Display),
1120 "XF86XK_DOS" => Some(XF86XK_DOS),
1121 "XF86XK_Documents" => Some(XF86XK_Documents),
1122 "XF86XK_Excel" => Some(XF86XK_Excel),
1123 "XF86XK_Explorer" => Some(XF86XK_Explorer),
1124 "XF86XK_Game" => Some(XF86XK_Game),
1125 "XF86XK_Go" => Some(XF86XK_Go),
1126 "XF86XK_iTouch" => Some(XF86XK_iTouch),
1127 "XF86XK_LogOff" => Some(XF86XK_LogOff),
1128 "XF86XK_Market" => Some(XF86XK_Market),
1129 "XF86XK_Meeting" => Some(XF86XK_Meeting),
1130 "XF86XK_MenuKB" => Some(XF86XK_MenuKB),
1131 "XF86XK_MenuPB" => Some(XF86XK_MenuPB),
1132 "XF86XK_MySites" => Some(XF86XK_MySites),
1133 "XF86XK_New" => Some(XF86XK_New),
1134 "XF86XK_News" => Some(XF86XK_News),
1135 "XF86XK_OfficeHome" => Some(XF86XK_OfficeHome),
1136 "XF86XK_Open" => Some(XF86XK_Open),
1137 "XF86XK_Option" => Some(XF86XK_Option),
1138 "XF86XK_Paste" => Some(XF86XK_Paste),
1139 "XF86XK_Phone" => Some(XF86XK_Phone),
1140 "XF86XK_Q" => Some(XF86XK_Q),
1141 "XF86XK_Reply" => Some(XF86XK_Reply),
1142 "XF86XK_Reload" => Some(XF86XK_Reload),
1143 "XF86XK_RotateWindows" => Some(XF86XK_RotateWindows),
1144 "XF86XK_RotationPB" => Some(XF86XK_RotationPB),
1145 "XF86XK_RotationKB" => Some(XF86XK_RotationKB),
1146 "XF86XK_Save" => Some(XF86XK_Save),
1147 "XF86XK_ScrollUp" => Some(XF86XK_ScrollUp),
1148 "XF86XK_ScrollDown" => Some(XF86XK_ScrollDown),
1149 "XF86XK_ScrollClick" => Some(XF86XK_ScrollClick),
1150 "XF86XK_Send" => Some(XF86XK_Send),
1151 "XF86XK_Spell" => Some(XF86XK_Spell),
1152 "XF86XK_SplitScreen" => Some(XF86XK_SplitScreen),
1153 "XF86XK_Support" => Some(XF86XK_Support),
1154 "XF86XK_TaskPane" => Some(XF86XK_TaskPane),
1155 "XF86XK_Terminal" => Some(XF86XK_Terminal),
1156 "XF86XK_Tools" => Some(XF86XK_Tools),
1157 "XF86XK_Travel" => Some(XF86XK_Travel),
1158 "XF86XK_UserPB" => Some(XF86XK_UserPB),
1159 "XF86XK_User1KB" => Some(XF86XK_User1KB),
1160 "XF86XK_User2KB" => Some(XF86XK_User2KB),
1161 "XF86XK_Video" => Some(XF86XK_Video),
1162 "XF86XK_WheelButton" => Some(XF86XK_WheelButton),
1163 "XF86XK_Word" => Some(XF86XK_Word),
1164 "XF86XK_Xfer" => Some(XF86XK_Xfer),
1165 "XF86XK_ZoomIn" => Some(XF86XK_ZoomIn),
1166 "XF86XK_ZoomOut" => Some(XF86XK_ZoomOut),
1167 "XF86XK_Away" => Some(XF86XK_Away),
1168 "XF86XK_Messenger" => Some(XF86XK_Messenger),
1169 "XF86XK_WebCam" => Some(XF86XK_WebCam),
1170 "XF86XK_MailForward" => Some(XF86XK_MailForward),
1171 "XF86XK_Pictures" => Some(XF86XK_Pictures),
1172 "XF86XK_Music" => Some(XF86XK_Music),
1173 "XF86XK_Battery" => Some(XF86XK_Battery),
1174 "XF86XK_Bluetooth" => Some(XF86XK_Bluetooth),
1175 "XF86XK_WLAN" => Some(XF86XK_WLAN),
1176 "XF86XK_UWB" => Some(XF86XK_UWB),
1177 "XF86XK_AudioForward" => Some(XF86XK_AudioForward),
1178 "XF86XK_AudioRepeat" => Some(XF86XK_AudioRepeat),
1179 "XF86XK_AudioRandomPlay" => Some(XF86XK_AudioRandomPlay),
1180 "XF86XK_Subtitle" => Some(XF86XK_Subtitle),
1181 "XF86XK_AudioCycleTrack" => Some(XF86XK_AudioCycleTrack),
1182 "XF86XK_CycleAngle" => Some(XF86XK_CycleAngle),
1183 "XF86XK_FrameBack" => Some(XF86XK_FrameBack),
1184 "XF86XK_FrameForward" => Some(XF86XK_FrameForward),
1185 "XF86XK_Time" => Some(XF86XK_Time),
1186 "XF86XK_Select" => Some(XF86XK_Select),
1187 "XF86XK_View" => Some(XF86XK_View),
1188 "XF86XK_TopMenu" => Some(XF86XK_TopMenu),
1189 "XF86XK_Red" => Some(XF86XK_Red),
1190 "XF86XK_Green" => Some(XF86XK_Green),
1191 "XF86XK_Yellow" => Some(XF86XK_Yellow),
1192 "XF86XK_Blue" => Some(XF86XK_Blue),
1193 "XF86XK_Suspend" => Some(XF86XK_Suspend),
1194 "XF86XK_Hibernate" => Some(XF86XK_Hibernate),
1195 "XF86XK_TouchpadToggle" => Some(XF86XK_TouchpadToggle),
1196 "XF86XK_TouchpadOn" => Some(XF86XK_TouchpadOn),
1197 "XF86XK_TouchpadOff" => Some(XF86XK_TouchpadOff),
1198 "XF86XK_AudioMicMute" => Some(XF86XK_AudioMicMute),
1199 "XF86XK_Switch_VT_1" => Some(XF86XK_Switch_VT_1),
1200 "XF86XK_Switch_VT_2" => Some(XF86XK_Switch_VT_2),
1201 "XF86XK_Switch_VT_3" => Some(XF86XK_Switch_VT_3),
1202 "XF86XK_Switch_VT_4" => Some(XF86XK_Switch_VT_4),
1203 "XF86XK_Switch_VT_5" => Some(XF86XK_Switch_VT_5),
1204 "XF86XK_Switch_VT_6" => Some(XF86XK_Switch_VT_6),
1205 "XF86XK_Switch_VT_7" => Some(XF86XK_Switch_VT_7),
1206 "XF86XK_Switch_VT_8" => Some(XF86XK_Switch_VT_8),
1207 "XF86XK_Switch_VT_9" => Some(XF86XK_Switch_VT_9),
1208 "XF86XK_Switch_VT_10" => Some(XF86XK_Switch_VT_10),
1209 "XF86XK_Switch_VT_11" => Some(XF86XK_Switch_VT_11),
1210 "XF86XK_Switch_VT_12" => Some(XF86XK_Switch_VT_12),
1211 "XF86XK_Ungrab" => Some(XF86XK_Ungrab),
1212 "XF86XK_ClearGrab" => Some(XF86XK_ClearGrab),
1213 "XF86XK_Next_VMode" => Some(XF86XK_Next_VMode),
1214 "XF86XK_Prev_VMode" => Some(XF86XK_Prev_VMode),
1215 "XF86XK_LogWindowTree" => Some(XF86XK_LogWindowTree),
1216 "XF86XK_LogGrabInfo" => Some(XF86XK_LogGrabInfo),
1217 "ISO_Lock" => Some(XK_ISO_Lock),
1218 "ISO_Level2_Latch" => Some(XK_ISO_Level2_Latch),
1219 "ISO_Level3_Shift" => Some(XK_ISO_Level3_Shift),
1220 "ISO_Level3_Latch" => Some(XK_ISO_Level3_Latch),
1221 "ISO_Level3_Lock" => Some(XK_ISO_Level3_Lock),
1222 "ISO_Level5_Shift" => Some(XK_ISO_Level5_Shift),
1223 "ISO_Level5_Latch" => Some(XK_ISO_Level5_Latch),
1224 "ISO_Level5_Lock" => Some(XK_ISO_Level5_Lock),
1225 "ISO_Group_Shift" => Some(XK_ISO_Group_Shift),
1226 "ISO_Group_Latch" => Some(XK_ISO_Group_Latch),
1227 "ISO_Group_Lock" => Some(XK_ISO_Group_Lock),
1228 "ISO_Next_Group" => Some(XK_ISO_Next_Group),
1229 "ISO_Next_Group_Lock" => Some(XK_ISO_Next_Group_Lock),
1230 "ISO_Prev_Group" => Some(XK_ISO_Prev_Group),
1231 "ISO_Prev_Group_Lock" => Some(XK_ISO_Prev_Group_Lock),
1232 "ISO_First_Group" => Some(XK_ISO_First_Group),
1233 "ISO_First_Group_Lock" => Some(XK_ISO_First_Group_Lock),
1234 "ISO_Last_Group" => Some(XK_ISO_Last_Group),
1235 "ISO_Last_Group_Lock" => Some(XK_ISO_Last_Group_Lock),
1236 "ISO_Left_Tab" => Some(XK_ISO_Left_Tab),
1237 "ISO_Move_Line_Up" => Some(XK_ISO_Move_Line_Up),
1238 "ISO_Move_Line_Down" => Some(XK_ISO_Move_Line_Down),
1239 "ISO_Partial_Line_Up" => Some(XK_ISO_Partial_Line_Up),
1240 "ISO_Partial_Line_Down" => Some(XK_ISO_Partial_Line_Down),
1241 "ISO_Partial_Space_Left" => Some(XK_ISO_Partial_Space_Left),
1242 "ISO_Partial_Space_Right" => Some(XK_ISO_Partial_Space_Right),
1243 "ISO_Set_Margin_Left" => Some(XK_ISO_Set_Margin_Left),
1244 "ISO_Set_Margin_Right" => Some(XK_ISO_Set_Margin_Right),
1245 "ISO_Release_Margin_Left" => Some(XK_ISO_Release_Margin_Left),
1246 "ISO_Release_Margin_Right" => Some(XK_ISO_Release_Margin_Right),
1247 "ISO_Release_Both_Margins" => Some(XK_ISO_Release_Both_Margins),
1248 "ISO_Fast_Cursor_Left" => Some(XK_ISO_Fast_Cursor_Left),
1249 "ISO_Fast_Cursor_Right" => Some(XK_ISO_Fast_Cursor_Right),
1250 "ISO_Fast_Cursor_Up" => Some(XK_ISO_Fast_Cursor_Up),
1251 "ISO_Fast_Cursor_Down" => Some(XK_ISO_Fast_Cursor_Down),
1252 "ISO_Continuous_Underline" => Some(XK_ISO_Continuous_Underline),
1253 "ISO_Discontinuous_Underline" => Some(XK_ISO_Discontinuous_Underline),
1254 "ISO_Emphasize" => Some(XK_ISO_Emphasize),
1255 "ISO_Center_Object" => Some(XK_ISO_Center_Object),
1256 "ISO_Enter" => Some(XK_ISO_Enter),
1257 "dead_grave" => Some(XK_dead_grave),
1258 "dead_acute" => Some(XK_dead_acute),
1259 "dead_circumflex" => Some(XK_dead_circumflex),
1260 "dead_tilde" => Some(XK_dead_tilde),
1261 "dead_perispomeni" => Some(XK_dead_perispomeni),
1262 "dead_macron" => Some(XK_dead_macron),
1263 "dead_breve" => Some(XK_dead_breve),
1264 "dead_abovedot" => Some(XK_dead_abovedot),
1265 "dead_diaeresis" => Some(XK_dead_diaeresis),
1266 "dead_abovering" => Some(XK_dead_abovering),
1267 "dead_doubleacute" => Some(XK_dead_doubleacute),
1268 "dead_caron" => Some(XK_dead_caron),
1269 "dead_cedilla" => Some(XK_dead_cedilla),
1270 "dead_ogonek" => Some(XK_dead_ogonek),
1271 "dead_iota" => Some(XK_dead_iota),
1272 "dead_voiced_sound" => Some(XK_dead_voiced_sound),
1273 "dead_semivoiced_sound" => Some(XK_dead_semivoiced_sound),
1274 "dead_belowdot" => Some(XK_dead_belowdot),
1275 "dead_hook" => Some(XK_dead_hook),
1276 "dead_horn" => Some(XK_dead_horn),
1277 "dead_stroke" => Some(XK_dead_stroke),
1278 "dead_abovecomma" => Some(XK_dead_abovecomma),
1279 "dead_psili" => Some(XK_dead_psili),
1280 "dead_abovereversedcomma" => Some(XK_dead_abovereversedcomma),
1281 "dead_dasia" => Some(XK_dead_dasia),
1282 "dead_doublegrave" => Some(XK_dead_doublegrave),
1283 "dead_belowring" => Some(XK_dead_belowring),
1284 "dead_belowmacron" => Some(XK_dead_belowmacron),
1285 "dead_belowcircumflex" => Some(XK_dead_belowcircumflex),
1286 "dead_belowtilde" => Some(XK_dead_belowtilde),
1287 "dead_belowbreve" => Some(XK_dead_belowbreve),
1288 "dead_belowdiaeresis" => Some(XK_dead_belowdiaeresis),
1289 "dead_invertedbreve" => Some(XK_dead_invertedbreve),
1290 "dead_belowcomma" => Some(XK_dead_belowcomma),
1291 "dead_currency" => Some(XK_dead_currency),
1292 "dead_lowline" => Some(XK_dead_lowline),
1293 "dead_aboveverticalline" => Some(XK_dead_aboveverticalline),
1294 "dead_belowverticalline" => Some(XK_dead_belowverticalline),
1295 "dead_longsolidusoverlay" => Some(XK_dead_longsolidusoverlay),
1296 "dead_a" => Some(XK_dead_a),
1297 "dead_A" => Some(XK_dead_A),
1298 "dead_e" => Some(XK_dead_e),
1299 "dead_E" => Some(XK_dead_E),
1300 "dead_i" => Some(XK_dead_i),
1301 "dead_I" => Some(XK_dead_I),
1302 "dead_o" => Some(XK_dead_o),
1303 "dead_O" => Some(XK_dead_O),
1304 "dead_u" => Some(XK_dead_u),
1305 "dead_U" => Some(XK_dead_U),
1306 "dead_small_schwa" => Some(XK_dead_small_schwa),
1307 "dead_capital_schwa" => Some(XK_dead_capital_schwa),
1308 "dead_greek" => Some(XK_dead_greek),
1309 "First_Virtual_Screen" => Some(XK_First_Virtual_Screen),
1310 "Prev_Virtual_Screen" => Some(XK_Prev_Virtual_Screen),
1311 "Next_Virtual_Screen" => Some(XK_Next_Virtual_Screen),
1312 "Last_Virtual_Screen" => Some(XK_Last_Virtual_Screen),
1313 "Terminate_Server" => Some(XK_Terminate_Server),
1314 "AccessX_Enable" => Some(XK_AccessX_Enable),
1315 "AccessX_Feedback_Enable" => Some(XK_AccessX_Feedback_Enable),
1316 "RepeatKeys_Enable" => Some(XK_RepeatKeys_Enable),
1317 "SlowKeys_Enable" => Some(XK_SlowKeys_Enable),
1318 "BounceKeys_Enable" => Some(XK_BounceKeys_Enable),
1319 "StickyKeys_Enable" => Some(XK_StickyKeys_Enable),
1320 "MouseKeys_Enable" => Some(XK_MouseKeys_Enable),
1321 "MouseKeys_Accel_Enable" => Some(XK_MouseKeys_Accel_Enable),
1322 "Overlay1_Enable" => Some(XK_Overlay1_Enable),
1323 "Overlay2_Enable" => Some(XK_Overlay2_Enable),
1324 "AudibleBell_Enable" => Some(XK_AudibleBell_Enable),
1325 "Pointer_Left" => Some(XK_Pointer_Left),
1326 "Pointer_Right" => Some(XK_Pointer_Right),
1327 "Pointer_Up" => Some(XK_Pointer_Up),
1328 "Pointer_Down" => Some(XK_Pointer_Down),
1329 "Pointer_UpLeft" => Some(XK_Pointer_UpLeft),
1330 "Pointer_UpRight" => Some(XK_Pointer_UpRight),
1331 "Pointer_DownLeft" => Some(XK_Pointer_DownLeft),
1332 "Pointer_DownRight" => Some(XK_Pointer_DownRight),
1333 "Pointer_Button_Dflt" => Some(XK_Pointer_Button_Dflt),
1334 "Pointer_Button1" => Some(XK_Pointer_Button1),
1335 "Pointer_Button2" => Some(XK_Pointer_Button2),
1336 "Pointer_Button3" => Some(XK_Pointer_Button3),
1337 "Pointer_Button4" => Some(XK_Pointer_Button4),
1338 "Pointer_Button5" => Some(XK_Pointer_Button5),
1339 "Pointer_DblClick_Dflt" => Some(XK_Pointer_DblClick_Dflt),
1340 "Pointer_DblClick1" => Some(XK_Pointer_DblClick1),
1341 "Pointer_DblClick2" => Some(XK_Pointer_DblClick2),
1342 "Pointer_DblClick3" => Some(XK_Pointer_DblClick3),
1343 "Pointer_DblClick4" => Some(XK_Pointer_DblClick4),
1344 "Pointer_DblClick5" => Some(XK_Pointer_DblClick5),
1345 "Pointer_Drag_Dflt" => Some(XK_Pointer_Drag_Dflt),
1346 "Pointer_Drag1" => Some(XK_Pointer_Drag1),
1347 "Pointer_Drag2" => Some(XK_Pointer_Drag2),
1348 "Pointer_Drag3" => Some(XK_Pointer_Drag3),
1349 "Pointer_Drag4" => Some(XK_Pointer_Drag4),
1350 "Pointer_Drag5" => Some(XK_Pointer_Drag5),
1351 "Pointer_EnableKeys" => Some(XK_Pointer_EnableKeys),
1352 "Pointer_Accelerate" => Some(XK_Pointer_Accelerate),
1353 "Pointer_DfltBtnNext" => Some(XK_Pointer_DfltBtnNext),
1354 "Pointer_DfltBtnPrev" => Some(XK_Pointer_DfltBtnPrev),
1355 "ch" => Some(XK_ch),
1356 "Ch" => Some(XK_Ch),
1357 "CH" => Some(XK_CH),
1358 "c_h" => Some(XK_c_h),
1359 "C_h" => Some(XK_C_h),
1360 "C_H" => Some(XK_C_H),
1361 _ => None,
1362 }
1363 }
1364