penrose_keysyms/
lib.rs

1//! Auto generated Keysym enum for use with xcb keycodes
2use strum::*;
3
4/// X keysym mappings: auto generated from X11/keysymdef.h
5#[allow(non_camel_case_types)]
6#[derive(AsRefStr, EnumString, EnumIter, Debug, Clone, Copy, Hash, PartialEq, Eq)]
7pub enum XKeySym {
8    /// XK_BackSpace
9    #[strum(serialize = "BackSpace")]
10    XK_BackSpace,
11    /// XK_Tab
12    #[strum(serialize = "Tab")]
13    XK_Tab,
14    /// XK_Linefeed
15    #[strum(serialize = "Linefeed")]
16    XK_Linefeed,
17    /// XK_Clear
18    #[strum(serialize = "Clear")]
19    XK_Clear,
20    /// XK_Return
21    #[strum(serialize = "Return")]
22    XK_Return,
23    /// XK_Pause
24    #[strum(serialize = "Pause")]
25    XK_Pause,
26    /// XK_Scroll_Lock
27    #[strum(serialize = "Scroll_Lock")]
28    XK_Scroll_Lock,
29    /// XK_Sys_Req
30    #[strum(serialize = "Sys_Req")]
31    XK_Sys_Req,
32    /// XK_Escape
33    #[strum(serialize = "Escape")]
34    XK_Escape,
35    /// XK_Delete
36    #[strum(serialize = "Delete")]
37    XK_Delete,
38    /// XK_Home
39    #[strum(serialize = "Home")]
40    XK_Home,
41    /// XK_Left
42    #[strum(serialize = "Left")]
43    XK_Left,
44    /// XK_Up
45    #[strum(serialize = "Up")]
46    XK_Up,
47    /// XK_Right
48    #[strum(serialize = "Right")]
49    XK_Right,
50    /// XK_Down
51    #[strum(serialize = "Down")]
52    XK_Down,
53    /// XK_Prior
54    #[strum(serialize = "Prior")]
55    XK_Prior,
56    /// XK_Page_Up
57    #[strum(serialize = "Page_Up")]
58    XK_Page_Up,
59    /// XK_Next
60    #[strum(serialize = "Next")]
61    XK_Next,
62    /// XK_Page_Down
63    #[strum(serialize = "Page_Down")]
64    XK_Page_Down,
65    /// XK_End
66    #[strum(serialize = "End")]
67    XK_End,
68    /// XK_Begin
69    #[strum(serialize = "Begin")]
70    XK_Begin,
71    /// XK_Select
72    #[strum(serialize = "Select")]
73    XK_Select,
74    /// XK_Print
75    #[strum(serialize = "Print")]
76    XK_Print,
77    /// XK_Execute
78    #[strum(serialize = "Execute")]
79    XK_Execute,
80    /// XK_Insert
81    #[strum(serialize = "Insert")]
82    XK_Insert,
83    /// XK_Undo
84    #[strum(serialize = "Undo")]
85    XK_Undo,
86    /// XK_Redo
87    #[strum(serialize = "Redo")]
88    XK_Redo,
89    /// XK_Menu
90    #[strum(serialize = "Menu")]
91    XK_Menu,
92    /// XK_Find
93    #[strum(serialize = "Find")]
94    XK_Find,
95    /// XK_Cancel
96    #[strum(serialize = "Cancel")]
97    XK_Cancel,
98    /// XK_Help
99    #[strum(serialize = "Help")]
100    XK_Help,
101    /// XK_Break
102    #[strum(serialize = "Break")]
103    XK_Break,
104    /// XK_Mode_switch
105    #[strum(serialize = "Mode_switch")]
106    XK_Mode_switch,
107    /// XK_script_switch
108    #[strum(serialize = "script_switch")]
109    XK_script_switch,
110    /// XK_Num_Lock
111    #[strum(serialize = "Num_Lock")]
112    XK_Num_Lock,
113    /// XK_KP_Space
114    #[strum(serialize = "KP_Space")]
115    XK_KP_Space,
116    /// XK_KP_Tab
117    #[strum(serialize = "KP_Tab")]
118    XK_KP_Tab,
119    /// XK_KP_Enter
120    #[strum(serialize = "KP_Enter")]
121    XK_KP_Enter,
122    /// XK_KP_F1
123    #[strum(serialize = "KP_F1")]
124    XK_KP_F1,
125    /// XK_KP_F2
126    #[strum(serialize = "KP_F2")]
127    XK_KP_F2,
128    /// XK_KP_F3
129    #[strum(serialize = "KP_F3")]
130    XK_KP_F3,
131    /// XK_KP_F4
132    #[strum(serialize = "KP_F4")]
133    XK_KP_F4,
134    /// XK_KP_Home
135    #[strum(serialize = "KP_Home")]
136    XK_KP_Home,
137    /// XK_KP_Left
138    #[strum(serialize = "KP_Left")]
139    XK_KP_Left,
140    /// XK_KP_Up
141    #[strum(serialize = "KP_Up")]
142    XK_KP_Up,
143    /// XK_KP_Right
144    #[strum(serialize = "KP_Right")]
145    XK_KP_Right,
146    /// XK_KP_Down
147    #[strum(serialize = "KP_Down")]
148    XK_KP_Down,
149    /// XK_KP_Prior
150    #[strum(serialize = "KP_Prior")]
151    XK_KP_Prior,
152    /// XK_KP_Page_Up
153    #[strum(serialize = "KP_Page_Up")]
154    XK_KP_Page_Up,
155    /// XK_KP_Next
156    #[strum(serialize = "KP_Next")]
157    XK_KP_Next,
158    /// XK_KP_Page_Down
159    #[strum(serialize = "KP_Page_Down")]
160    XK_KP_Page_Down,
161    /// XK_KP_End
162    #[strum(serialize = "KP_End")]
163    XK_KP_End,
164    /// XK_KP_Begin
165    #[strum(serialize = "KP_Begin")]
166    XK_KP_Begin,
167    /// XK_KP_Insert
168    #[strum(serialize = "KP_Insert")]
169    XK_KP_Insert,
170    /// XK_KP_Delete
171    #[strum(serialize = "KP_Delete")]
172    XK_KP_Delete,
173    /// XK_KP_Equal
174    #[strum(serialize = "KP_Equal")]
175    XK_KP_Equal,
176    /// XK_KP_Multiply
177    #[strum(serialize = "KP_Multiply")]
178    XK_KP_Multiply,
179    /// XK_KP_Add
180    #[strum(serialize = "KP_Add")]
181    XK_KP_Add,
182    /// XK_KP_Separator
183    #[strum(serialize = "KP_Separator")]
184    XK_KP_Separator,
185    /// XK_KP_Subtract
186    #[strum(serialize = "KP_Subtract")]
187    XK_KP_Subtract,
188    /// XK_KP_Decimal
189    #[strum(serialize = "KP_Decimal")]
190    XK_KP_Decimal,
191    /// XK_KP_Divide
192    #[strum(serialize = "KP_Divide")]
193    XK_KP_Divide,
194    /// XK_KP_0
195    #[strum(serialize = "KP_0")]
196    XK_KP_0,
197    /// XK_KP_1
198    #[strum(serialize = "KP_1")]
199    XK_KP_1,
200    /// XK_KP_2
201    #[strum(serialize = "KP_2")]
202    XK_KP_2,
203    /// XK_KP_3
204    #[strum(serialize = "KP_3")]
205    XK_KP_3,
206    /// XK_KP_4
207    #[strum(serialize = "KP_4")]
208    XK_KP_4,
209    /// XK_KP_5
210    #[strum(serialize = "KP_5")]
211    XK_KP_5,
212    /// XK_KP_6
213    #[strum(serialize = "KP_6")]
214    XK_KP_6,
215    /// XK_KP_7
216    #[strum(serialize = "KP_7")]
217    XK_KP_7,
218    /// XK_KP_8
219    #[strum(serialize = "KP_8")]
220    XK_KP_8,
221    /// XK_KP_9
222    #[strum(serialize = "KP_9")]
223    XK_KP_9,
224    /// XK_F1
225    #[strum(serialize = "F1")]
226    XK_F1,
227    /// XK_F2
228    #[strum(serialize = "F2")]
229    XK_F2,
230    /// XK_F3
231    #[strum(serialize = "F3")]
232    XK_F3,
233    /// XK_F4
234    #[strum(serialize = "F4")]
235    XK_F4,
236    /// XK_F5
237    #[strum(serialize = "F5")]
238    XK_F5,
239    /// XK_F6
240    #[strum(serialize = "F6")]
241    XK_F6,
242    /// XK_F7
243    #[strum(serialize = "F7")]
244    XK_F7,
245    /// XK_F8
246    #[strum(serialize = "F8")]
247    XK_F8,
248    /// XK_F9
249    #[strum(serialize = "F9")]
250    XK_F9,
251    /// XK_F10
252    #[strum(serialize = "F10")]
253    XK_F10,
254    /// XK_F11
255    #[strum(serialize = "F11")]
256    XK_F11,
257    /// XK_L1
258    #[strum(serialize = "L1")]
259    XK_L1,
260    /// XK_F12
261    #[strum(serialize = "F12")]
262    XK_F12,
263    /// XK_L2
264    #[strum(serialize = "L2")]
265    XK_L2,
266    /// XK_F13
267    #[strum(serialize = "F13")]
268    XK_F13,
269    /// XK_L3
270    #[strum(serialize = "L3")]
271    XK_L3,
272    /// XK_F14
273    #[strum(serialize = "F14")]
274    XK_F14,
275    /// XK_L4
276    #[strum(serialize = "L4")]
277    XK_L4,
278    /// XK_F15
279    #[strum(serialize = "F15")]
280    XK_F15,
281    /// XK_L5
282    #[strum(serialize = "L5")]
283    XK_L5,
284    /// XK_F16
285    #[strum(serialize = "F16")]
286    XK_F16,
287    /// XK_L6
288    #[strum(serialize = "L6")]
289    XK_L6,
290    /// XK_F17
291    #[strum(serialize = "F17")]
292    XK_F17,
293    /// XK_L7
294    #[strum(serialize = "L7")]
295    XK_L7,
296    /// XK_F18
297    #[strum(serialize = "F18")]
298    XK_F18,
299    /// XK_L8
300    #[strum(serialize = "L8")]
301    XK_L8,
302    /// XK_F19
303    #[strum(serialize = "F19")]
304    XK_F19,
305    /// XK_L9
306    #[strum(serialize = "L9")]
307    XK_L9,
308    /// XK_F20
309    #[strum(serialize = "F20")]
310    XK_F20,
311    /// XK_L10
312    #[strum(serialize = "L10")]
313    XK_L10,
314    /// XK_F21
315    #[strum(serialize = "F21")]
316    XK_F21,
317    /// XK_R1
318    #[strum(serialize = "R1")]
319    XK_R1,
320    /// XK_F22
321    #[strum(serialize = "F22")]
322    XK_F22,
323    /// XK_R2
324    #[strum(serialize = "R2")]
325    XK_R2,
326    /// XK_F23
327    #[strum(serialize = "F23")]
328    XK_F23,
329    /// XK_R3
330    #[strum(serialize = "R3")]
331    XK_R3,
332    /// XK_F24
333    #[strum(serialize = "F24")]
334    XK_F24,
335    /// XK_R4
336    #[strum(serialize = "R4")]
337    XK_R4,
338    /// XK_F25
339    #[strum(serialize = "F25")]
340    XK_F25,
341    /// XK_R5
342    #[strum(serialize = "R5")]
343    XK_R5,
344    /// XK_F26
345    #[strum(serialize = "F26")]
346    XK_F26,
347    /// XK_R6
348    #[strum(serialize = "R6")]
349    XK_R6,
350    /// XK_F27
351    #[strum(serialize = "F27")]
352    XK_F27,
353    /// XK_R7
354    #[strum(serialize = "R7")]
355    XK_R7,
356    /// XK_F28
357    #[strum(serialize = "F28")]
358    XK_F28,
359    /// XK_R8
360    #[strum(serialize = "R8")]
361    XK_R8,
362    /// XK_F29
363    #[strum(serialize = "F29")]
364    XK_F29,
365    /// XK_R9
366    #[strum(serialize = "R9")]
367    XK_R9,
368    /// XK_F30
369    #[strum(serialize = "F30")]
370    XK_F30,
371    /// XK_R10
372    #[strum(serialize = "R10")]
373    XK_R10,
374    /// XK_F31
375    #[strum(serialize = "F31")]
376    XK_F31,
377    /// XK_R11
378    #[strum(serialize = "R11")]
379    XK_R11,
380    /// XK_F32
381    #[strum(serialize = "F32")]
382    XK_F32,
383    /// XK_R12
384    #[strum(serialize = "R12")]
385    XK_R12,
386    /// XK_F33
387    #[strum(serialize = "F33")]
388    XK_F33,
389    /// XK_R13
390    #[strum(serialize = "R13")]
391    XK_R13,
392    /// XK_F34
393    #[strum(serialize = "F34")]
394    XK_F34,
395    /// XK_R14
396    #[strum(serialize = "R14")]
397    XK_R14,
398    /// XK_F35
399    #[strum(serialize = "F35")]
400    XK_F35,
401    /// XK_R15
402    #[strum(serialize = "R15")]
403    XK_R15,
404    /// XK_Shift_L
405    #[strum(serialize = "Shift_L")]
406    XK_Shift_L,
407    /// XK_Shift_R
408    #[strum(serialize = "Shift_R")]
409    XK_Shift_R,
410    /// XK_Control_L
411    #[strum(serialize = "Control_L")]
412    XK_Control_L,
413    /// XK_Control_R
414    #[strum(serialize = "Control_R")]
415    XK_Control_R,
416    /// XK_Caps_Lock
417    #[strum(serialize = "Caps_Lock")]
418    XK_Caps_Lock,
419    /// XK_Shift_Lock
420    #[strum(serialize = "Shift_Lock")]
421    XK_Shift_Lock,
422    /// XK_Meta_L
423    #[strum(serialize = "Meta_L")]
424    XK_Meta_L,
425    /// XK_Meta_R
426    #[strum(serialize = "Meta_R")]
427    XK_Meta_R,
428    /// XK_Alt_L
429    #[strum(serialize = "Alt_L")]
430    XK_Alt_L,
431    /// XK_Alt_R
432    #[strum(serialize = "Alt_R")]
433    XK_Alt_R,
434    /// XK_Super_L
435    #[strum(serialize = "Super_L")]
436    XK_Super_L,
437    /// XK_Super_R
438    #[strum(serialize = "Super_R")]
439    XK_Super_R,
440    /// XK_Hyper_L
441    #[strum(serialize = "Hyper_L")]
442    XK_Hyper_L,
443    /// XK_Hyper_R
444    #[strum(serialize = "Hyper_R")]
445    XK_Hyper_R,
446    /// XK_ISO_Lock
447    #[strum(serialize = "ISO_Lock")]
448    XK_ISO_Lock,
449    /// XK_ISO_Level2_Latch
450    #[strum(serialize = "ISO_Level2_Latch")]
451    XK_ISO_Level2_Latch,
452    /// XK_ISO_Level3_Shift
453    #[strum(serialize = "ISO_Level3_Shift")]
454    XK_ISO_Level3_Shift,
455    /// XK_ISO_Level3_Latch
456    #[strum(serialize = "ISO_Level3_Latch")]
457    XK_ISO_Level3_Latch,
458    /// XK_ISO_Level3_Lock
459    #[strum(serialize = "ISO_Level3_Lock")]
460    XK_ISO_Level3_Lock,
461    /// XK_ISO_Level5_Shift
462    #[strum(serialize = "ISO_Level5_Shift")]
463    XK_ISO_Level5_Shift,
464    /// XK_ISO_Level5_Latch
465    #[strum(serialize = "ISO_Level5_Latch")]
466    XK_ISO_Level5_Latch,
467    /// XK_ISO_Level5_Lock
468    #[strum(serialize = "ISO_Level5_Lock")]
469    XK_ISO_Level5_Lock,
470    /// XK_ISO_Left_Tab
471    #[strum(serialize = "ISO_Left_Tab")]
472    XK_ISO_Left_Tab,
473    /// XK_ISO_Partial_Space_Left
474    #[strum(serialize = "ISO_Partial_Space_Left")]
475    XK_ISO_Partial_Space_Left,
476    /// XK_ISO_Partial_Space_Right
477    #[strum(serialize = "ISO_Partial_Space_Right")]
478    XK_ISO_Partial_Space_Right,
479    /// XK_ISO_Set_Margin_Left
480    #[strum(serialize = "ISO_Set_Margin_Left")]
481    XK_ISO_Set_Margin_Left,
482    /// XK_ISO_Set_Margin_Right
483    #[strum(serialize = "ISO_Set_Margin_Right")]
484    XK_ISO_Set_Margin_Right,
485    /// XK_ISO_Continuous_Underline
486    #[strum(serialize = "ISO_Continuous_Underline")]
487    XK_ISO_Continuous_Underline,
488    /// XK_ISO_Discontinuous_Underline
489    #[strum(serialize = "ISO_Discontinuous_Underline")]
490    XK_ISO_Discontinuous_Underline,
491    /// XK_ISO_Emphasize
492    #[strum(serialize = "ISO_Emphasize")]
493    XK_ISO_Emphasize,
494    /// XK_ISO_Center_Object
495    #[strum(serialize = "ISO_Center_Object")]
496    XK_ISO_Center_Object,
497    /// XK_ISO_Enter
498    #[strum(serialize = "ISO_Enter")]
499    XK_ISO_Enter,
500    /// XK_Terminate_Server
501    #[strum(serialize = "Terminate_Server")]
502    XK_Terminate_Server,
503    /// XK_ch
504    #[strum(serialize = "ch")]
505    XK_ch,
506    /// XK_Ch
507    #[strum(serialize = "Ch")]
508    XK_Ch,
509    /// XK_CH
510    #[strum(serialize = "CH")]
511    XK_CH,
512    /// XK_c_h
513    #[strum(serialize = "c_h")]
514    XK_c_h,
515    /// XK_C_h
516    #[strum(serialize = "C_h")]
517    XK_C_h,
518    /// XK_C_H
519    #[strum(serialize = "C_H")]
520    XK_C_H,
521    /// XK_3270_Duplicate
522    #[strum(serialize = "3270_Duplicate")]
523    XK_3270_Duplicate,
524    /// XK_3270_FieldMark
525    #[strum(serialize = "3270_FieldMark")]
526    XK_3270_FieldMark,
527    /// XK_3270_Right2
528    #[strum(serialize = "3270_Right2")]
529    XK_3270_Right2,
530    /// XK_3270_Left2
531    #[strum(serialize = "3270_Left2")]
532    XK_3270_Left2,
533    /// XK_3270_BackTab
534    #[strum(serialize = "3270_BackTab")]
535    XK_3270_BackTab,
536    /// XK_3270_EraseEOF
537    #[strum(serialize = "3270_EraseEOF")]
538    XK_3270_EraseEOF,
539    /// XK_3270_EraseInput
540    #[strum(serialize = "3270_EraseInput")]
541    XK_3270_EraseInput,
542    /// XK_3270_Reset
543    #[strum(serialize = "3270_Reset")]
544    XK_3270_Reset,
545    /// XK_3270_Quit
546    #[strum(serialize = "3270_Quit")]
547    XK_3270_Quit,
548    /// XK_3270_PA1
549    #[strum(serialize = "3270_PA1")]
550    XK_3270_PA1,
551    /// XK_3270_PA2
552    #[strum(serialize = "3270_PA2")]
553    XK_3270_PA2,
554    /// XK_3270_PA3
555    #[strum(serialize = "3270_PA3")]
556    XK_3270_PA3,
557    /// XK_3270_Test
558    #[strum(serialize = "3270_Test")]
559    XK_3270_Test,
560    /// XK_3270_Attn
561    #[strum(serialize = "3270_Attn")]
562    XK_3270_Attn,
563    /// XK_3270_CursorBlink
564    #[strum(serialize = "3270_CursorBlink")]
565    XK_3270_CursorBlink,
566    /// XK_3270_AltCursor
567    #[strum(serialize = "3270_AltCursor")]
568    XK_3270_AltCursor,
569    /// XK_3270_KeyClick
570    #[strum(serialize = "3270_KeyClick")]
571    XK_3270_KeyClick,
572    /// XK_3270_Jump
573    #[strum(serialize = "3270_Jump")]
574    XK_3270_Jump,
575    /// XK_3270_Ident
576    #[strum(serialize = "3270_Ident")]
577    XK_3270_Ident,
578    /// XK_3270_Rule
579    #[strum(serialize = "3270_Rule")]
580    XK_3270_Rule,
581    /// XK_3270_Copy
582    #[strum(serialize = "3270_Copy")]
583    XK_3270_Copy,
584    /// XK_3270_Play
585    #[strum(serialize = "3270_Play")]
586    XK_3270_Play,
587    /// XK_3270_Setup
588    #[strum(serialize = "3270_Setup")]
589    XK_3270_Setup,
590    /// XK_3270_Record
591    #[strum(serialize = "3270_Record")]
592    XK_3270_Record,
593    /// XK_3270_DeleteWord
594    #[strum(serialize = "3270_DeleteWord")]
595    XK_3270_DeleteWord,
596    /// XK_3270_ExSelect
597    #[strum(serialize = "3270_ExSelect")]
598    XK_3270_ExSelect,
599    /// XK_3270_CursorSelect
600    #[strum(serialize = "3270_CursorSelect")]
601    XK_3270_CursorSelect,
602    /// XK_3270_Enter
603    #[strum(serialize = "3270_Enter")]
604    XK_3270_Enter,
605    /// XK_space
606    #[strum(serialize = "space")]
607    XK_space,
608    /// XK_exclam
609    #[strum(serialize = "exclam")]
610    XK_exclam,
611    /// XK_quotedbl
612    #[strum(serialize = "quotedbl")]
613    XK_quotedbl,
614    /// XK_numbersign
615    #[strum(serialize = "numbersign")]
616    XK_numbersign,
617    /// XK_dollar
618    #[strum(serialize = "dollar")]
619    XK_dollar,
620    /// XK_percent
621    #[strum(serialize = "percent")]
622    XK_percent,
623    /// XK_ampersand
624    #[strum(serialize = "ampersand")]
625    XK_ampersand,
626    /// XK_apostrophe
627    #[strum(serialize = "apostrophe")]
628    XK_apostrophe,
629    /// XK_quoteright
630    #[strum(serialize = "quoteright")]
631    XK_quoteright,
632    /// XK_parenleft
633    #[strum(serialize = "parenleft")]
634    XK_parenleft,
635    /// XK_parenright
636    #[strum(serialize = "parenright")]
637    XK_parenright,
638    /// XK_asterisk
639    #[strum(serialize = "asterisk")]
640    XK_asterisk,
641    /// XK_plus
642    #[strum(serialize = "plus")]
643    XK_plus,
644    /// XK_comma
645    #[strum(serialize = "comma")]
646    XK_comma,
647    /// XK_minus
648    #[strum(serialize = "minus")]
649    XK_minus,
650    /// XK_period
651    #[strum(serialize = "period")]
652    XK_period,
653    /// XK_slash
654    #[strum(serialize = "slash")]
655    XK_slash,
656    /// XK_0
657    #[strum(serialize = "0")]
658    XK_0,
659    /// XK_1
660    #[strum(serialize = "1")]
661    XK_1,
662    /// XK_2
663    #[strum(serialize = "2")]
664    XK_2,
665    /// XK_3
666    #[strum(serialize = "3")]
667    XK_3,
668    /// XK_4
669    #[strum(serialize = "4")]
670    XK_4,
671    /// XK_5
672    #[strum(serialize = "5")]
673    XK_5,
674    /// XK_6
675    #[strum(serialize = "6")]
676    XK_6,
677    /// XK_7
678    #[strum(serialize = "7")]
679    XK_7,
680    /// XK_8
681    #[strum(serialize = "8")]
682    XK_8,
683    /// XK_9
684    #[strum(serialize = "9")]
685    XK_9,
686    /// XK_colon
687    #[strum(serialize = "colon")]
688    XK_colon,
689    /// XK_semicolon
690    #[strum(serialize = "semicolon")]
691    XK_semicolon,
692    /// XK_less
693    #[strum(serialize = "less")]
694    XK_less,
695    /// XK_equal
696    #[strum(serialize = "equal")]
697    XK_equal,
698    /// XK_greater
699    #[strum(serialize = "greater")]
700    XK_greater,
701    /// XK_question
702    #[strum(serialize = "question")]
703    XK_question,
704    /// XK_at
705    #[strum(serialize = "at")]
706    XK_at,
707    /// XK_A
708    #[strum(serialize = "A")]
709    XK_A,
710    /// XK_B
711    #[strum(serialize = "B")]
712    XK_B,
713    /// XK_C
714    #[strum(serialize = "C")]
715    XK_C,
716    /// XK_D
717    #[strum(serialize = "D")]
718    XK_D,
719    /// XK_E
720    #[strum(serialize = "E")]
721    XK_E,
722    /// XK_F
723    #[strum(serialize = "F")]
724    XK_F,
725    /// XK_G
726    #[strum(serialize = "G")]
727    XK_G,
728    /// XK_H
729    #[strum(serialize = "H")]
730    XK_H,
731    /// XK_I
732    #[strum(serialize = "I")]
733    XK_I,
734    /// XK_J
735    #[strum(serialize = "J")]
736    XK_J,
737    /// XK_K
738    #[strum(serialize = "K")]
739    XK_K,
740    /// XK_L
741    #[strum(serialize = "L")]
742    XK_L,
743    /// XK_M
744    #[strum(serialize = "M")]
745    XK_M,
746    /// XK_N
747    #[strum(serialize = "N")]
748    XK_N,
749    /// XK_O
750    #[strum(serialize = "O")]
751    XK_O,
752    /// XK_P
753    #[strum(serialize = "P")]
754    XK_P,
755    /// XK_Q
756    #[strum(serialize = "Q")]
757    XK_Q,
758    /// XK_R
759    #[strum(serialize = "R")]
760    XK_R,
761    /// XK_S
762    #[strum(serialize = "S")]
763    XK_S,
764    /// XK_T
765    #[strum(serialize = "T")]
766    XK_T,
767    /// XK_U
768    #[strum(serialize = "U")]
769    XK_U,
770    /// XK_V
771    #[strum(serialize = "V")]
772    XK_V,
773    /// XK_W
774    #[strum(serialize = "W")]
775    XK_W,
776    /// XK_X
777    #[strum(serialize = "X")]
778    XK_X,
779    /// XK_Y
780    #[strum(serialize = "Y")]
781    XK_Y,
782    /// XK_Z
783    #[strum(serialize = "Z")]
784    XK_Z,
785    /// XK_bracketleft
786    #[strum(serialize = "bracketleft")]
787    XK_bracketleft,
788    /// XK_backslash
789    #[strum(serialize = "backslash")]
790    XK_backslash,
791    /// XK_bracketright
792    #[strum(serialize = "bracketright")]
793    XK_bracketright,
794    /// XK_asciicircum
795    #[strum(serialize = "asciicircum")]
796    XK_asciicircum,
797    /// XK_underscore
798    #[strum(serialize = "underscore")]
799    XK_underscore,
800    /// XK_grave
801    #[strum(serialize = "grave")]
802    XK_grave,
803    /// XK_quoteleft
804    #[strum(serialize = "quoteleft")]
805    XK_quoteleft,
806    /// XK_a
807    #[strum(serialize = "a")]
808    XK_a,
809    /// XK_b
810    #[strum(serialize = "b")]
811    XK_b,
812    /// XK_c
813    #[strum(serialize = "c")]
814    XK_c,
815    /// XK_d
816    #[strum(serialize = "d")]
817    XK_d,
818    /// XK_e
819    #[strum(serialize = "e")]
820    XK_e,
821    /// XK_f
822    #[strum(serialize = "f")]
823    XK_f,
824    /// XK_g
825    #[strum(serialize = "g")]
826    XK_g,
827    /// XK_h
828    #[strum(serialize = "h")]
829    XK_h,
830    /// XK_i
831    #[strum(serialize = "i")]
832    XK_i,
833    /// XK_j
834    #[strum(serialize = "j")]
835    XK_j,
836    /// XK_k
837    #[strum(serialize = "k")]
838    XK_k,
839    /// XK_l
840    #[strum(serialize = "l")]
841    XK_l,
842    /// XK_m
843    #[strum(serialize = "m")]
844    XK_m,
845    /// XK_n
846    #[strum(serialize = "n")]
847    XK_n,
848    /// XK_o
849    #[strum(serialize = "o")]
850    XK_o,
851    /// XK_p
852    #[strum(serialize = "p")]
853    XK_p,
854    /// XK_q
855    #[strum(serialize = "q")]
856    XK_q,
857    /// XK_r
858    #[strum(serialize = "r")]
859    XK_r,
860    /// XK_s
861    #[strum(serialize = "s")]
862    XK_s,
863    /// XK_t
864    #[strum(serialize = "t")]
865    XK_t,
866    /// XK_u
867    #[strum(serialize = "u")]
868    XK_u,
869    /// XK_v
870    #[strum(serialize = "v")]
871    XK_v,
872    /// XK_w
873    #[strum(serialize = "w")]
874    XK_w,
875    /// XK_x
876    #[strum(serialize = "x")]
877    XK_x,
878    /// XK_y
879    #[strum(serialize = "y")]
880    XK_y,
881    /// XK_z
882    #[strum(serialize = "z")]
883    XK_z,
884    /// XK_braceleft
885    #[strum(serialize = "braceleft")]
886    XK_braceleft,
887    /// XK_bar
888    #[strum(serialize = "bar")]
889    XK_bar,
890    /// XK_braceright
891    #[strum(serialize = "braceright")]
892    XK_braceright,
893    /// XK_asciitilde
894    #[strum(serialize = "asciitilde")]
895    XK_asciitilde,
896    /// XK_nobreakspace
897    #[strum(serialize = "nobreakspace")]
898    XK_nobreakspace,
899    /// XK_exclamdown
900    #[strum(serialize = "exclamdown")]
901    XK_exclamdown,
902    /// XK_cent
903    #[strum(serialize = "cent")]
904    XK_cent,
905    /// XK_sterling
906    #[strum(serialize = "sterling")]
907    XK_sterling,
908    /// XK_currency
909    #[strum(serialize = "currency")]
910    XK_currency,
911    /// XK_yen
912    #[strum(serialize = "yen")]
913    XK_yen,
914    /// XK_brokenbar
915    #[strum(serialize = "brokenbar")]
916    XK_brokenbar,
917    /// XK_section
918    #[strum(serialize = "section")]
919    XK_section,
920    /// XK_diaeresis
921    #[strum(serialize = "diaeresis")]
922    XK_diaeresis,
923    /// XK_copyright
924    #[strum(serialize = "copyright")]
925    XK_copyright,
926    /// XK_ordfeminine
927    #[strum(serialize = "ordfeminine")]
928    XK_ordfeminine,
929    /// XK_guillemotleft
930    #[strum(serialize = "guillemotleft")]
931    XK_guillemotleft,
932    /// XK_notsign
933    #[strum(serialize = "notsign")]
934    XK_notsign,
935    /// XK_hyphen
936    #[strum(serialize = "hyphen")]
937    XK_hyphen,
938    /// XK_registered
939    #[strum(serialize = "registered")]
940    XK_registered,
941    /// XK_macron
942    #[strum(serialize = "macron")]
943    XK_macron,
944    /// XK_degree
945    #[strum(serialize = "degree")]
946    XK_degree,
947    /// XK_plusminus
948    #[strum(serialize = "plusminus")]
949    XK_plusminus,
950    /// XK_acute
951    #[strum(serialize = "acute")]
952    XK_acute,
953    /// XK_mu
954    #[strum(serialize = "mu")]
955    XK_mu,
956    /// XK_paragraph
957    #[strum(serialize = "paragraph")]
958    XK_paragraph,
959    /// XK_periodcentered
960    #[strum(serialize = "periodcentered")]
961    XK_periodcentered,
962    /// XK_cedilla
963    #[strum(serialize = "cedilla")]
964    XK_cedilla,
965    /// XK_masculine
966    #[strum(serialize = "masculine")]
967    XK_masculine,
968    /// XK_guillemotright
969    #[strum(serialize = "guillemotright")]
970    XK_guillemotright,
971    /// XK_onequarter
972    #[strum(serialize = "onequarter")]
973    XK_onequarter,
974    /// XK_onehalf
975    #[strum(serialize = "onehalf")]
976    XK_onehalf,
977    /// XK_threequarters
978    #[strum(serialize = "threequarters")]
979    XK_threequarters,
980    /// XK_questiondown
981    #[strum(serialize = "questiondown")]
982    XK_questiondown,
983    /// XK_Aacute
984    #[strum(serialize = "Aacute")]
985    XK_Aacute,
986    /// XK_Atilde
987    #[strum(serialize = "Atilde")]
988    XK_Atilde,
989    /// XK_Adiaeresis
990    #[strum(serialize = "Adiaeresis")]
991    XK_Adiaeresis,
992    /// XK_Aring
993    #[strum(serialize = "Aring")]
994    XK_Aring,
995    /// XK_AE
996    #[strum(serialize = "AE")]
997    XK_AE,
998    /// XK_Ccedilla
999    #[strum(serialize = "Ccedilla")]
1000    XK_Ccedilla,
1001    /// XK_Eacute
1002    #[strum(serialize = "Eacute")]
1003    XK_Eacute,
1004    /// XK_Ediaeresis
1005    #[strum(serialize = "Ediaeresis")]
1006    XK_Ediaeresis,
1007    /// XK_Iacute
1008    #[strum(serialize = "Iacute")]
1009    XK_Iacute,
1010    /// XK_Idiaeresis
1011    #[strum(serialize = "Idiaeresis")]
1012    XK_Idiaeresis,
1013    /// XK_ETH
1014    #[strum(serialize = "ETH")]
1015    XK_ETH,
1016    /// XK_Eth
1017    #[strum(serialize = "Eth")]
1018    XK_Eth,
1019    /// XK_Ntilde
1020    #[strum(serialize = "Ntilde")]
1021    XK_Ntilde,
1022    /// XK_Oacute
1023    #[strum(serialize = "Oacute")]
1024    XK_Oacute,
1025    /// XK_Otilde
1026    #[strum(serialize = "Otilde")]
1027    XK_Otilde,
1028    /// XK_Odiaeresis
1029    #[strum(serialize = "Odiaeresis")]
1030    XK_Odiaeresis,
1031    /// XK_multiply
1032    #[strum(serialize = "multiply")]
1033    XK_multiply,
1034    /// XK_Oslash
1035    #[strum(serialize = "Oslash")]
1036    XK_Oslash,
1037    /// XK_Ooblique
1038    #[strum(serialize = "Ooblique")]
1039    XK_Ooblique,
1040    /// XK_Uacute
1041    #[strum(serialize = "Uacute")]
1042    XK_Uacute,
1043    /// XK_Udiaeresis
1044    #[strum(serialize = "Udiaeresis")]
1045    XK_Udiaeresis,
1046    /// XK_Yacute
1047    #[strum(serialize = "Yacute")]
1048    XK_Yacute,
1049    /// XK_ssharp
1050    #[strum(serialize = "ssharp")]
1051    XK_ssharp,
1052    /// XK_aacute
1053    #[strum(serialize = "aacute")]
1054    XK_aacute,
1055    /// XK_atilde
1056    #[strum(serialize = "atilde")]
1057    XK_atilde,
1058    /// XK_adiaeresis
1059    #[strum(serialize = "adiaeresis")]
1060    XK_adiaeresis,
1061    /// XK_aring
1062    #[strum(serialize = "aring")]
1063    XK_aring,
1064    /// XK_ae
1065    #[strum(serialize = "ae")]
1066    XK_ae,
1067    /// XK_ccedilla
1068    #[strum(serialize = "ccedilla")]
1069    XK_ccedilla,
1070    /// XK_eacute
1071    #[strum(serialize = "eacute")]
1072    XK_eacute,
1073    /// XK_ediaeresis
1074    #[strum(serialize = "ediaeresis")]
1075    XK_ediaeresis,
1076    /// XK_iacute
1077    #[strum(serialize = "iacute")]
1078    XK_iacute,
1079    /// XK_idiaeresis
1080    #[strum(serialize = "idiaeresis")]
1081    XK_idiaeresis,
1082    /// XK_eth
1083    #[strum(serialize = "eth")]
1084    XK_eth,
1085    /// XK_ntilde
1086    #[strum(serialize = "ntilde")]
1087    XK_ntilde,
1088    /// XK_oacute
1089    #[strum(serialize = "oacute")]
1090    XK_oacute,
1091    /// XK_otilde
1092    #[strum(serialize = "otilde")]
1093    XK_otilde,
1094    /// XK_odiaeresis
1095    #[strum(serialize = "odiaeresis")]
1096    XK_odiaeresis,
1097    /// XK_division
1098    #[strum(serialize = "division")]
1099    XK_division,
1100    /// XK_oslash
1101    #[strum(serialize = "oslash")]
1102    XK_oslash,
1103    /// XK_ooblique
1104    #[strum(serialize = "ooblique")]
1105    XK_ooblique,
1106    /// XK_uacute
1107    #[strum(serialize = "uacute")]
1108    XK_uacute,
1109    /// XK_udiaeresis
1110    #[strum(serialize = "udiaeresis")]
1111    XK_udiaeresis,
1112    /// XK_yacute
1113    #[strum(serialize = "yacute")]
1114    XK_yacute,
1115    /// XK_ydiaeresis
1116    #[strum(serialize = "ydiaeresis")]
1117    XK_ydiaeresis,
1118    /// XK_Aogonek
1119    #[strum(serialize = "Aogonek")]
1120    XK_Aogonek,
1121    /// XK_breve
1122    #[strum(serialize = "breve")]
1123    XK_breve,
1124    /// XK_Lstroke
1125    #[strum(serialize = "Lstroke")]
1126    XK_Lstroke,
1127    /// XK_Lcaron
1128    #[strum(serialize = "Lcaron")]
1129    XK_Lcaron,
1130    /// XK_Sacute
1131    #[strum(serialize = "Sacute")]
1132    XK_Sacute,
1133    /// XK_Scaron
1134    #[strum(serialize = "Scaron")]
1135    XK_Scaron,
1136    /// XK_Scedilla
1137    #[strum(serialize = "Scedilla")]
1138    XK_Scedilla,
1139    /// XK_Tcaron
1140    #[strum(serialize = "Tcaron")]
1141    XK_Tcaron,
1142    /// XK_Zacute
1143    #[strum(serialize = "Zacute")]
1144    XK_Zacute,
1145    /// XK_Zcaron
1146    #[strum(serialize = "Zcaron")]
1147    XK_Zcaron,
1148    /// XK_aogonek
1149    #[strum(serialize = "aogonek")]
1150    XK_aogonek,
1151    /// XK_ogonek
1152    #[strum(serialize = "ogonek")]
1153    XK_ogonek,
1154    /// XK_lstroke
1155    #[strum(serialize = "lstroke")]
1156    XK_lstroke,
1157    /// XK_lcaron
1158    #[strum(serialize = "lcaron")]
1159    XK_lcaron,
1160    /// XK_sacute
1161    #[strum(serialize = "sacute")]
1162    XK_sacute,
1163    /// XK_caron
1164    #[strum(serialize = "caron")]
1165    XK_caron,
1166    /// XK_scaron
1167    #[strum(serialize = "scaron")]
1168    XK_scaron,
1169    /// XK_scedilla
1170    #[strum(serialize = "scedilla")]
1171    XK_scedilla,
1172    /// XK_tcaron
1173    #[strum(serialize = "tcaron")]
1174    XK_tcaron,
1175    /// XK_zacute
1176    #[strum(serialize = "zacute")]
1177    XK_zacute,
1178    /// XK_doubleacute
1179    #[strum(serialize = "doubleacute")]
1180    XK_doubleacute,
1181    /// XK_zcaron
1182    #[strum(serialize = "zcaron")]
1183    XK_zcaron,
1184    /// XK_Racute
1185    #[strum(serialize = "Racute")]
1186    XK_Racute,
1187    /// XK_Abreve
1188    #[strum(serialize = "Abreve")]
1189    XK_Abreve,
1190    /// XK_Lacute
1191    #[strum(serialize = "Lacute")]
1192    XK_Lacute,
1193    /// XK_Cacute
1194    #[strum(serialize = "Cacute")]
1195    XK_Cacute,
1196    /// XK_Ccaron
1197    #[strum(serialize = "Ccaron")]
1198    XK_Ccaron,
1199    /// XK_Eogonek
1200    #[strum(serialize = "Eogonek")]
1201    XK_Eogonek,
1202    /// XK_Ecaron
1203    #[strum(serialize = "Ecaron")]
1204    XK_Ecaron,
1205    /// XK_Dcaron
1206    #[strum(serialize = "Dcaron")]
1207    XK_Dcaron,
1208    /// XK_Dstroke
1209    #[strum(serialize = "Dstroke")]
1210    XK_Dstroke,
1211    /// XK_Nacute
1212    #[strum(serialize = "Nacute")]
1213    XK_Nacute,
1214    /// XK_Ncaron
1215    #[strum(serialize = "Ncaron")]
1216    XK_Ncaron,
1217    /// XK_Odoubleacute
1218    #[strum(serialize = "Odoubleacute")]
1219    XK_Odoubleacute,
1220    /// XK_Rcaron
1221    #[strum(serialize = "Rcaron")]
1222    XK_Rcaron,
1223    /// XK_Uring
1224    #[strum(serialize = "Uring")]
1225    XK_Uring,
1226    /// XK_Udoubleacute
1227    #[strum(serialize = "Udoubleacute")]
1228    XK_Udoubleacute,
1229    /// XK_Tcedilla
1230    #[strum(serialize = "Tcedilla")]
1231    XK_Tcedilla,
1232    /// XK_racute
1233    #[strum(serialize = "racute")]
1234    XK_racute,
1235    /// XK_abreve
1236    #[strum(serialize = "abreve")]
1237    XK_abreve,
1238    /// XK_lacute
1239    #[strum(serialize = "lacute")]
1240    XK_lacute,
1241    /// XK_cacute
1242    #[strum(serialize = "cacute")]
1243    XK_cacute,
1244    /// XK_ccaron
1245    #[strum(serialize = "ccaron")]
1246    XK_ccaron,
1247    /// XK_eogonek
1248    #[strum(serialize = "eogonek")]
1249    XK_eogonek,
1250    /// XK_ecaron
1251    #[strum(serialize = "ecaron")]
1252    XK_ecaron,
1253    /// XK_dcaron
1254    #[strum(serialize = "dcaron")]
1255    XK_dcaron,
1256    /// XK_dstroke
1257    #[strum(serialize = "dstroke")]
1258    XK_dstroke,
1259    /// XK_nacute
1260    #[strum(serialize = "nacute")]
1261    XK_nacute,
1262    /// XK_ncaron
1263    #[strum(serialize = "ncaron")]
1264    XK_ncaron,
1265    /// XK_odoubleacute
1266    #[strum(serialize = "odoubleacute")]
1267    XK_odoubleacute,
1268    /// XK_rcaron
1269    #[strum(serialize = "rcaron")]
1270    XK_rcaron,
1271    /// XK_uring
1272    #[strum(serialize = "uring")]
1273    XK_uring,
1274    /// XK_udoubleacute
1275    #[strum(serialize = "udoubleacute")]
1276    XK_udoubleacute,
1277    /// XK_tcedilla
1278    #[strum(serialize = "tcedilla")]
1279    XK_tcedilla,
1280    /// XK_Hstroke
1281    #[strum(serialize = "Hstroke")]
1282    XK_Hstroke,
1283    /// XK_Gbreve
1284    #[strum(serialize = "Gbreve")]
1285    XK_Gbreve,
1286    /// XK_hstroke
1287    #[strum(serialize = "hstroke")]
1288    XK_hstroke,
1289    /// XK_idotless
1290    #[strum(serialize = "idotless")]
1291    XK_idotless,
1292    /// XK_gbreve
1293    #[strum(serialize = "gbreve")]
1294    XK_gbreve,
1295    /// XK_Ubreve
1296    #[strum(serialize = "Ubreve")]
1297    XK_Ubreve,
1298    /// XK_ubreve
1299    #[strum(serialize = "ubreve")]
1300    XK_ubreve,
1301    /// XK_kra
1302    #[strum(serialize = "kra")]
1303    XK_kra,
1304    /// XK_kappa
1305    #[strum(serialize = "kappa")]
1306    XK_kappa,
1307    /// XK_Rcedilla
1308    #[strum(serialize = "Rcedilla")]
1309    XK_Rcedilla,
1310    /// XK_Itilde
1311    #[strum(serialize = "Itilde")]
1312    XK_Itilde,
1313    /// XK_Lcedilla
1314    #[strum(serialize = "Lcedilla")]
1315    XK_Lcedilla,
1316    /// XK_Emacron
1317    #[strum(serialize = "Emacron")]
1318    XK_Emacron,
1319    /// XK_Gcedilla
1320    #[strum(serialize = "Gcedilla")]
1321    XK_Gcedilla,
1322    /// XK_Tslash
1323    #[strum(serialize = "Tslash")]
1324    XK_Tslash,
1325    /// XK_rcedilla
1326    #[strum(serialize = "rcedilla")]
1327    XK_rcedilla,
1328    /// XK_itilde
1329    #[strum(serialize = "itilde")]
1330    XK_itilde,
1331    /// XK_lcedilla
1332    #[strum(serialize = "lcedilla")]
1333    XK_lcedilla,
1334    /// XK_emacron
1335    #[strum(serialize = "emacron")]
1336    XK_emacron,
1337    /// XK_gcedilla
1338    #[strum(serialize = "gcedilla")]
1339    XK_gcedilla,
1340    /// XK_tslash
1341    #[strum(serialize = "tslash")]
1342    XK_tslash,
1343    /// XK_ENG
1344    #[strum(serialize = "ENG")]
1345    XK_ENG,
1346    /// XK_eng
1347    #[strum(serialize = "eng")]
1348    XK_eng,
1349    /// XK_Amacron
1350    #[strum(serialize = "Amacron")]
1351    XK_Amacron,
1352    /// XK_Iogonek
1353    #[strum(serialize = "Iogonek")]
1354    XK_Iogonek,
1355    /// XK_Imacron
1356    #[strum(serialize = "Imacron")]
1357    XK_Imacron,
1358    /// XK_Ncedilla
1359    #[strum(serialize = "Ncedilla")]
1360    XK_Ncedilla,
1361    /// XK_Omacron
1362    #[strum(serialize = "Omacron")]
1363    XK_Omacron,
1364    /// XK_Kcedilla
1365    #[strum(serialize = "Kcedilla")]
1366    XK_Kcedilla,
1367    /// XK_Uogonek
1368    #[strum(serialize = "Uogonek")]
1369    XK_Uogonek,
1370    /// XK_Utilde
1371    #[strum(serialize = "Utilde")]
1372    XK_Utilde,
1373    /// XK_Umacron
1374    #[strum(serialize = "Umacron")]
1375    XK_Umacron,
1376    /// XK_amacron
1377    #[strum(serialize = "amacron")]
1378    XK_amacron,
1379    /// XK_iogonek
1380    #[strum(serialize = "iogonek")]
1381    XK_iogonek,
1382    /// XK_imacron
1383    #[strum(serialize = "imacron")]
1384    XK_imacron,
1385    /// XK_ncedilla
1386    #[strum(serialize = "ncedilla")]
1387    XK_ncedilla,
1388    /// XK_omacron
1389    #[strum(serialize = "omacron")]
1390    XK_omacron,
1391    /// XK_kcedilla
1392    #[strum(serialize = "kcedilla")]
1393    XK_kcedilla,
1394    /// XK_uogonek
1395    #[strum(serialize = "uogonek")]
1396    XK_uogonek,
1397    /// XK_utilde
1398    #[strum(serialize = "utilde")]
1399    XK_utilde,
1400    /// XK_umacron
1401    #[strum(serialize = "umacron")]
1402    XK_umacron,
1403    /// XK_Wacute
1404    #[strum(serialize = "Wacute")]
1405    XK_Wacute,
1406    /// XK_wacute
1407    #[strum(serialize = "wacute")]
1408    XK_wacute,
1409    /// XK_Wdiaeresis
1410    #[strum(serialize = "Wdiaeresis")]
1411    XK_Wdiaeresis,
1412    /// XK_wdiaeresis
1413    #[strum(serialize = "wdiaeresis")]
1414    XK_wdiaeresis,
1415    /// XK_OE
1416    #[strum(serialize = "OE")]
1417    XK_OE,
1418    /// XK_oe
1419    #[strum(serialize = "oe")]
1420    XK_oe,
1421    /// XK_Ydiaeresis
1422    #[strum(serialize = "Ydiaeresis")]
1423    XK_Ydiaeresis,
1424    /// XK_overline
1425    #[strum(serialize = "overline")]
1426    XK_overline,
1427    /// XK_prolongedsound
1428    #[strum(serialize = "prolongedsound")]
1429    XK_prolongedsound,
1430    /// XK_voicedsound
1431    #[strum(serialize = "voicedsound")]
1432    XK_voicedsound,
1433    /// XK_semivoicedsound
1434    #[strum(serialize = "semivoicedsound")]
1435    XK_semivoicedsound,
1436    /// XK_numerosign
1437    #[strum(serialize = "numerosign")]
1438    XK_numerosign,
1439    /// XK_leftradical
1440    #[strum(serialize = "leftradical")]
1441    XK_leftradical,
1442    /// XK_topleftradical
1443    #[strum(serialize = "topleftradical")]
1444    XK_topleftradical,
1445    /// XK_horizconnector
1446    #[strum(serialize = "horizconnector")]
1447    XK_horizconnector,
1448    /// XK_topintegral
1449    #[strum(serialize = "topintegral")]
1450    XK_topintegral,
1451    /// XK_botintegral
1452    #[strum(serialize = "botintegral")]
1453    XK_botintegral,
1454    /// XK_vertconnector
1455    #[strum(serialize = "vertconnector")]
1456    XK_vertconnector,
1457    /// XK_topleftsqbracket
1458    #[strum(serialize = "topleftsqbracket")]
1459    XK_topleftsqbracket,
1460    /// XK_botleftsqbracket
1461    #[strum(serialize = "botleftsqbracket")]
1462    XK_botleftsqbracket,
1463    /// XK_toprightsqbracket
1464    #[strum(serialize = "toprightsqbracket")]
1465    XK_toprightsqbracket,
1466    /// XK_botrightsqbracket
1467    #[strum(serialize = "botrightsqbracket")]
1468    XK_botrightsqbracket,
1469    /// XK_topleftparens
1470    #[strum(serialize = "topleftparens")]
1471    XK_topleftparens,
1472    /// XK_botleftparens
1473    #[strum(serialize = "botleftparens")]
1474    XK_botleftparens,
1475    /// XK_toprightparens
1476    #[strum(serialize = "toprightparens")]
1477    XK_toprightparens,
1478    /// XK_botrightparens
1479    #[strum(serialize = "botrightparens")]
1480    XK_botrightparens,
1481    /// XK_leftmiddlecurlybrace
1482    #[strum(serialize = "leftmiddlecurlybrace")]
1483    XK_leftmiddlecurlybrace,
1484    /// XK_rightmiddlecurlybrace
1485    #[strum(serialize = "rightmiddlecurlybrace")]
1486    XK_rightmiddlecurlybrace,
1487    /// XK_lessthanequal
1488    #[strum(serialize = "lessthanequal")]
1489    XK_lessthanequal,
1490    /// XK_notequal
1491    #[strum(serialize = "notequal")]
1492    XK_notequal,
1493    /// XK_greaterthanequal
1494    #[strum(serialize = "greaterthanequal")]
1495    XK_greaterthanequal,
1496    /// XK_integral
1497    #[strum(serialize = "integral")]
1498    XK_integral,
1499    /// XK_therefore
1500    #[strum(serialize = "therefore")]
1501    XK_therefore,
1502    /// XK_variation
1503    #[strum(serialize = "variation")]
1504    XK_variation,
1505    /// XK_infinity
1506    #[strum(serialize = "infinity")]
1507    XK_infinity,
1508    /// XK_nabla
1509    #[strum(serialize = "nabla")]
1510    XK_nabla,
1511    /// XK_approximate
1512    #[strum(serialize = "approximate")]
1513    XK_approximate,
1514    /// XK_similarequal
1515    #[strum(serialize = "similarequal")]
1516    XK_similarequal,
1517    /// XK_ifonlyif
1518    #[strum(serialize = "ifonlyif")]
1519    XK_ifonlyif,
1520    /// XK_implies
1521    #[strum(serialize = "implies")]
1522    XK_implies,
1523    /// XK_identical
1524    #[strum(serialize = "identical")]
1525    XK_identical,
1526    /// XK_radical
1527    #[strum(serialize = "radical")]
1528    XK_radical,
1529    /// XK_includedin
1530    #[strum(serialize = "includedin")]
1531    XK_includedin,
1532    /// XK_includes
1533    #[strum(serialize = "includes")]
1534    XK_includes,
1535    /// XK_intersection
1536    #[strum(serialize = "intersection")]
1537    XK_intersection,
1538    /// XK_union
1539    #[strum(serialize = "union")]
1540    XK_union,
1541    /// XK_logicaland
1542    #[strum(serialize = "logicaland")]
1543    XK_logicaland,
1544    /// XK_logicalor
1545    #[strum(serialize = "logicalor")]
1546    XK_logicalor,
1547    /// XK_partialderivative
1548    #[strum(serialize = "partialderivative")]
1549    XK_partialderivative,
1550    /// XK_function
1551    #[strum(serialize = "function")]
1552    XK_function,
1553    /// XK_leftarrow
1554    #[strum(serialize = "leftarrow")]
1555    XK_leftarrow,
1556    /// XK_uparrow
1557    #[strum(serialize = "uparrow")]
1558    XK_uparrow,
1559    /// XK_rightarrow
1560    #[strum(serialize = "rightarrow")]
1561    XK_rightarrow,
1562    /// XK_downarrow
1563    #[strum(serialize = "downarrow")]
1564    XK_downarrow,
1565    /// XK_blank
1566    #[strum(serialize = "blank")]
1567    XK_blank,
1568    /// XK_soliddiamond
1569    #[strum(serialize = "soliddiamond")]
1570    XK_soliddiamond,
1571    /// XK_checkerboard
1572    #[strum(serialize = "checkerboard")]
1573    XK_checkerboard,
1574    /// XK_ht
1575    #[strum(serialize = "ht")]
1576    XK_ht,
1577    /// XK_ff
1578    #[strum(serialize = "ff")]
1579    XK_ff,
1580    /// XK_cr
1581    #[strum(serialize = "cr")]
1582    XK_cr,
1583    /// XK_lf
1584    #[strum(serialize = "lf")]
1585    XK_lf,
1586    /// XK_nl
1587    #[strum(serialize = "nl")]
1588    XK_nl,
1589    /// XK_vt
1590    #[strum(serialize = "vt")]
1591    XK_vt,
1592    /// XK_lowrightcorner
1593    #[strum(serialize = "lowrightcorner")]
1594    XK_lowrightcorner,
1595    /// XK_uprightcorner
1596    #[strum(serialize = "uprightcorner")]
1597    XK_uprightcorner,
1598    /// XK_upleftcorner
1599    #[strum(serialize = "upleftcorner")]
1600    XK_upleftcorner,
1601    /// XK_lowleftcorner
1602    #[strum(serialize = "lowleftcorner")]
1603    XK_lowleftcorner,
1604    /// XK_crossinglines
1605    #[strum(serialize = "crossinglines")]
1606    XK_crossinglines,
1607    /// XK_leftt
1608    #[strum(serialize = "leftt")]
1609    XK_leftt,
1610    /// XK_rightt
1611    #[strum(serialize = "rightt")]
1612    XK_rightt,
1613    /// XK_bott
1614    #[strum(serialize = "bott")]
1615    XK_bott,
1616    /// XK_topt
1617    #[strum(serialize = "topt")]
1618    XK_topt,
1619    /// XK_vertbar
1620    #[strum(serialize = "vertbar")]
1621    XK_vertbar,
1622    /// XK_emspace
1623    #[strum(serialize = "emspace")]
1624    XK_emspace,
1625    /// XK_enspace
1626    #[strum(serialize = "enspace")]
1627    XK_enspace,
1628    /// XK_em3space
1629    #[strum(serialize = "em3space")]
1630    XK_em3space,
1631    /// XK_em4space
1632    #[strum(serialize = "em4space")]
1633    XK_em4space,
1634    /// XK_digitspace
1635    #[strum(serialize = "digitspace")]
1636    XK_digitspace,
1637    /// XK_punctspace
1638    #[strum(serialize = "punctspace")]
1639    XK_punctspace,
1640    /// XK_thinspace
1641    #[strum(serialize = "thinspace")]
1642    XK_thinspace,
1643    /// XK_hairspace
1644    #[strum(serialize = "hairspace")]
1645    XK_hairspace,
1646    /// XK_emdash
1647    #[strum(serialize = "emdash")]
1648    XK_emdash,
1649    /// XK_endash
1650    #[strum(serialize = "endash")]
1651    XK_endash,
1652    /// XK_signifblank
1653    #[strum(serialize = "signifblank")]
1654    XK_signifblank,
1655    /// XK_ellipsis
1656    #[strum(serialize = "ellipsis")]
1657    XK_ellipsis,
1658    /// XK_doubbaselinedot
1659    #[strum(serialize = "doubbaselinedot")]
1660    XK_doubbaselinedot,
1661    /// XK_onethird
1662    #[strum(serialize = "onethird")]
1663    XK_onethird,
1664    /// XK_twothirds
1665    #[strum(serialize = "twothirds")]
1666    XK_twothirds,
1667    /// XK_onefifth
1668    #[strum(serialize = "onefifth")]
1669    XK_onefifth,
1670    /// XK_twofifths
1671    #[strum(serialize = "twofifths")]
1672    XK_twofifths,
1673    /// XK_threefifths
1674    #[strum(serialize = "threefifths")]
1675    XK_threefifths,
1676    /// XK_fourfifths
1677    #[strum(serialize = "fourfifths")]
1678    XK_fourfifths,
1679    /// XK_onesixth
1680    #[strum(serialize = "onesixth")]
1681    XK_onesixth,
1682    /// XK_fivesixths
1683    #[strum(serialize = "fivesixths")]
1684    XK_fivesixths,
1685    /// XK_careof
1686    #[strum(serialize = "careof")]
1687    XK_careof,
1688    /// XK_figdash
1689    #[strum(serialize = "figdash")]
1690    XK_figdash,
1691    /// XK_leftanglebracket
1692    #[strum(serialize = "leftanglebracket")]
1693    XK_leftanglebracket,
1694    /// XK_decimalpoint
1695    #[strum(serialize = "decimalpoint")]
1696    XK_decimalpoint,
1697    /// XK_rightanglebracket
1698    #[strum(serialize = "rightanglebracket")]
1699    XK_rightanglebracket,
1700    /// XK_marker
1701    #[strum(serialize = "marker")]
1702    XK_marker,
1703    /// XK_oneeighth
1704    #[strum(serialize = "oneeighth")]
1705    XK_oneeighth,
1706    /// XK_threeeighths
1707    #[strum(serialize = "threeeighths")]
1708    XK_threeeighths,
1709    /// XK_fiveeighths
1710    #[strum(serialize = "fiveeighths")]
1711    XK_fiveeighths,
1712    /// XK_seveneighths
1713    #[strum(serialize = "seveneighths")]
1714    XK_seveneighths,
1715    /// XK_trademark
1716    #[strum(serialize = "trademark")]
1717    XK_trademark,
1718    /// XK_signaturemark
1719    #[strum(serialize = "signaturemark")]
1720    XK_signaturemark,
1721    /// XK_leftopentriangle
1722    #[strum(serialize = "leftopentriangle")]
1723    XK_leftopentriangle,
1724    /// XK_rightopentriangle
1725    #[strum(serialize = "rightopentriangle")]
1726    XK_rightopentriangle,
1727    /// XK_emopenrectangle
1728    #[strum(serialize = "emopenrectangle")]
1729    XK_emopenrectangle,
1730    /// XK_leftsinglequotemark
1731    #[strum(serialize = "leftsinglequotemark")]
1732    XK_leftsinglequotemark,
1733    /// XK_rightsinglequotemark
1734    #[strum(serialize = "rightsinglequotemark")]
1735    XK_rightsinglequotemark,
1736    /// XK_leftdoublequotemark
1737    #[strum(serialize = "leftdoublequotemark")]
1738    XK_leftdoublequotemark,
1739    /// XK_rightdoublequotemark
1740    #[strum(serialize = "rightdoublequotemark")]
1741    XK_rightdoublequotemark,
1742    /// XK_prescription
1743    #[strum(serialize = "prescription")]
1744    XK_prescription,
1745    /// XK_permille
1746    #[strum(serialize = "permille")]
1747    XK_permille,
1748    /// XK_minutes
1749    #[strum(serialize = "minutes")]
1750    XK_minutes,
1751    /// XK_seconds
1752    #[strum(serialize = "seconds")]
1753    XK_seconds,
1754    /// XK_latincross
1755    #[strum(serialize = "latincross")]
1756    XK_latincross,
1757    /// XK_hexagram
1758    #[strum(serialize = "hexagram")]
1759    XK_hexagram,
1760    /// XK_emfilledrect
1761    #[strum(serialize = "emfilledrect")]
1762    XK_emfilledrect,
1763    /// XK_openstar
1764    #[strum(serialize = "openstar")]
1765    XK_openstar,
1766    /// XK_leftpointer
1767    #[strum(serialize = "leftpointer")]
1768    XK_leftpointer,
1769    /// XK_rightpointer
1770    #[strum(serialize = "rightpointer")]
1771    XK_rightpointer,
1772    /// XK_club
1773    #[strum(serialize = "club")]
1774    XK_club,
1775    /// XK_diamond
1776    #[strum(serialize = "diamond")]
1777    XK_diamond,
1778    /// XK_heart
1779    #[strum(serialize = "heart")]
1780    XK_heart,
1781    /// XK_maltesecross
1782    #[strum(serialize = "maltesecross")]
1783    XK_maltesecross,
1784    /// XK_dagger
1785    #[strum(serialize = "dagger")]
1786    XK_dagger,
1787    /// XK_doubledagger
1788    #[strum(serialize = "doubledagger")]
1789    XK_doubledagger,
1790    /// XK_checkmark
1791    #[strum(serialize = "checkmark")]
1792    XK_checkmark,
1793    /// XK_ballotcross
1794    #[strum(serialize = "ballotcross")]
1795    XK_ballotcross,
1796    /// XK_musicalsharp
1797    #[strum(serialize = "musicalsharp")]
1798    XK_musicalsharp,
1799    /// XK_musicalflat
1800    #[strum(serialize = "musicalflat")]
1801    XK_musicalflat,
1802    /// XK_malesymbol
1803    #[strum(serialize = "malesymbol")]
1804    XK_malesymbol,
1805    /// XK_femalesymbol
1806    #[strum(serialize = "femalesymbol")]
1807    XK_femalesymbol,
1808    /// XK_telephone
1809    #[strum(serialize = "telephone")]
1810    XK_telephone,
1811    /// XK_telephonerecorder
1812    #[strum(serialize = "telephonerecorder")]
1813    XK_telephonerecorder,
1814    /// XK_phonographcopyright
1815    #[strum(serialize = "phonographcopyright")]
1816    XK_phonographcopyright,
1817    /// XK_caret
1818    #[strum(serialize = "caret")]
1819    XK_caret,
1820    /// XK_singlelowquotemark
1821    #[strum(serialize = "singlelowquotemark")]
1822    XK_singlelowquotemark,
1823    /// XK_doublelowquotemark
1824    #[strum(serialize = "doublelowquotemark")]
1825    XK_doublelowquotemark,
1826    /// XK_cursor
1827    #[strum(serialize = "cursor")]
1828    XK_cursor,
1829    /// XK_leftcaret
1830    #[strum(serialize = "leftcaret")]
1831    XK_leftcaret,
1832    /// XK_rightcaret
1833    #[strum(serialize = "rightcaret")]
1834    XK_rightcaret,
1835    /// XK_downcaret
1836    #[strum(serialize = "downcaret")]
1837    XK_downcaret,
1838    /// XK_upcaret
1839    #[strum(serialize = "upcaret")]
1840    XK_upcaret,
1841    /// XK_overbar
1842    #[strum(serialize = "overbar")]
1843    XK_overbar,
1844    /// XK_downtack
1845    #[strum(serialize = "downtack")]
1846    XK_downtack,
1847    /// XK_upshoe
1848    #[strum(serialize = "upshoe")]
1849    XK_upshoe,
1850    /// XK_downstile
1851    #[strum(serialize = "downstile")]
1852    XK_downstile,
1853    /// XK_underbar
1854    #[strum(serialize = "underbar")]
1855    XK_underbar,
1856    /// XK_jot
1857    #[strum(serialize = "jot")]
1858    XK_jot,
1859    /// XK_quad
1860    #[strum(serialize = "quad")]
1861    XK_quad,
1862    /// XK_uptack
1863    #[strum(serialize = "uptack")]
1864    XK_uptack,
1865    /// XK_upstile
1866    #[strum(serialize = "upstile")]
1867    XK_upstile,
1868    /// XK_downshoe
1869    #[strum(serialize = "downshoe")]
1870    XK_downshoe,
1871    /// XK_rightshoe
1872    #[strum(serialize = "rightshoe")]
1873    XK_rightshoe,
1874    /// XK_leftshoe
1875    #[strum(serialize = "leftshoe")]
1876    XK_leftshoe,
1877    /// XK_lefttack
1878    #[strum(serialize = "lefttack")]
1879    XK_lefttack,
1880    /// XK_righttack
1881    #[strum(serialize = "righttack")]
1882    XK_righttack,
1883    /// XK_Korean_Won
1884    #[strum(serialize = "Korean_Won")]
1885    XK_Korean_Won,
1886    /// XK_Ibreve
1887    #[strum(serialize = "Ibreve")]
1888    XK_Ibreve,
1889    /// XK_Zstroke
1890    #[strum(serialize = "Zstroke")]
1891    XK_Zstroke,
1892    /// XK_Gcaron
1893    #[strum(serialize = "Gcaron")]
1894    XK_Gcaron,
1895    /// XK_Ocaron
1896    #[strum(serialize = "Ocaron")]
1897    XK_Ocaron,
1898    /// XK_Obarred
1899    #[strum(serialize = "Obarred")]
1900    XK_Obarred,
1901    /// XK_ibreve
1902    #[strum(serialize = "ibreve")]
1903    XK_ibreve,
1904    /// XK_zstroke
1905    #[strum(serialize = "zstroke")]
1906    XK_zstroke,
1907    /// XK_gcaron
1908    #[strum(serialize = "gcaron")]
1909    XK_gcaron,
1910    /// XK_ocaron
1911    #[strum(serialize = "ocaron")]
1912    XK_ocaron,
1913    /// XK_obarred
1914    #[strum(serialize = "obarred")]
1915    XK_obarred,
1916    /// XK_SCHWA
1917    #[strum(serialize = "SCHWA")]
1918    XK_SCHWA,
1919    /// XK_schwa
1920    #[strum(serialize = "schwa")]
1921    XK_schwa,
1922    /// XK_EZH
1923    #[strum(serialize = "EZH")]
1924    XK_EZH,
1925    /// XK_ezh
1926    #[strum(serialize = "ezh")]
1927    XK_ezh,
1928    /// XK_Abreveacute
1929    #[strum(serialize = "Abreveacute")]
1930    XK_Abreveacute,
1931    /// XK_abreveacute
1932    #[strum(serialize = "abreveacute")]
1933    XK_abreveacute,
1934    /// XK_Abrevetilde
1935    #[strum(serialize = "Abrevetilde")]
1936    XK_Abrevetilde,
1937    /// XK_abrevetilde
1938    #[strum(serialize = "abrevetilde")]
1939    XK_abrevetilde,
1940    /// XK_Etilde
1941    #[strum(serialize = "Etilde")]
1942    XK_Etilde,
1943    /// XK_etilde
1944    #[strum(serialize = "etilde")]
1945    XK_etilde,
1946    /// XK_Ytilde
1947    #[strum(serialize = "Ytilde")]
1948    XK_Ytilde,
1949    /// XK_ytilde
1950    #[strum(serialize = "ytilde")]
1951    XK_ytilde,
1952    /// XK_EcuSign
1953    #[strum(serialize = "EcuSign")]
1954    XK_EcuSign,
1955    /// XK_ColonSign
1956    #[strum(serialize = "ColonSign")]
1957    XK_ColonSign,
1958    /// XK_CruzeiroSign
1959    #[strum(serialize = "CruzeiroSign")]
1960    XK_CruzeiroSign,
1961    /// XK_FFrancSign
1962    #[strum(serialize = "FFrancSign")]
1963    XK_FFrancSign,
1964    /// XK_LiraSign
1965    #[strum(serialize = "LiraSign")]
1966    XK_LiraSign,
1967    /// XK_MillSign
1968    #[strum(serialize = "MillSign")]
1969    XK_MillSign,
1970    /// XK_NairaSign
1971    #[strum(serialize = "NairaSign")]
1972    XK_NairaSign,
1973    /// XK_PesetaSign
1974    #[strum(serialize = "PesetaSign")]
1975    XK_PesetaSign,
1976    /// XK_RupeeSign
1977    #[strum(serialize = "RupeeSign")]
1978    XK_RupeeSign,
1979    /// XK_WonSign
1980    #[strum(serialize = "WonSign")]
1981    XK_WonSign,
1982    /// XK_NewSheqelSign
1983    #[strum(serialize = "NewSheqelSign")]
1984    XK_NewSheqelSign,
1985    /// XK_DongSign
1986    #[strum(serialize = "DongSign")]
1987    XK_DongSign,
1988    /// XK_EuroSign
1989    #[strum(serialize = "EuroSign")]
1990    XK_EuroSign,
1991
1992    /// XF86XK_MonBrightnessUp
1993    #[strum(serialize = "XF86MonBrightnessUp")]
1994    XF86XK_MonBrightnessUp,
1995
1996    /// XF86XK_MonBrightnessDown
1997    #[strum(serialize = "XF86MonBrightnessDown")]
1998    XF86XK_MonBrightnessDown,
1999
2000    /// XF86XK_KbdLightOnOff
2001    #[strum(serialize = "XF86KbdLightOnOff")]
2002    XF86XK_KbdLightOnOff,
2003
2004    /// XF86XK_KbdBrightnessUp
2005    #[strum(serialize = "XF86KbdBrightnessUp")]
2006    XF86XK_KbdBrightnessUp,
2007
2008    /// XF86XK_KbdBrightnessDown
2009    #[strum(serialize = "XF86KbdBrightnessDown")]
2010    XF86XK_KbdBrightnessDown,
2011
2012    /// XF86XK_MonBrightnessCycle
2013    #[strum(serialize = "XF86MonBrightnessCycle")]
2014    XF86XK_MonBrightnessCycle,
2015
2016    /// XF86XK_Standby
2017    #[strum(serialize = "XF86Standby")]
2018    XF86XK_Standby,
2019
2020    /// XF86XK_AudioLowerVolume
2021    #[strum(serialize = "XF86AudioLowerVolume")]
2022    XF86XK_AudioLowerVolume,
2023    /// XF86XK_AudioMute
2024    #[strum(serialize = "XF86AudioMute")]
2025    XF86XK_AudioMute,
2026    /// XF86XK_AudioRaiseVolume
2027    #[strum(serialize = "XF86AudioRaiseVolume")]
2028    XF86XK_AudioRaiseVolume,
2029    /// XF86XK_AudioPlay
2030    #[strum(serialize = "XF86AudioPlay")]
2031    XF86XK_AudioPlay,
2032    /// XF86XK_AudioStop
2033    #[strum(serialize = "XF86AudioStop")]
2034    XF86XK_AudioStop,
2035    /// XF86XK_AudioPrev
2036    #[strum(serialize = "XF86AudioPrev")]
2037    XF86XK_AudioPrev,
2038    /// XF86XK_AudioNext
2039    #[strum(serialize = "XF86AudioNext")]
2040    XF86XK_AudioNext,
2041    /// XF86XK_AudioMicMute
2042    #[strum(serialize = "XF86AudioMicMute")]
2043    XF86XK_AudioMicMute,
2044    /// XF86XK_DisplayOff
2045    #[strum(serialize = "XF86DisplayOff")]
2046    XF86XK_DisplayOff,
2047    /// XF86XK_TouchpadToggle
2048    #[strum(serialize = "XF86TouchpadToggle")]
2049    XF86XK_TouchpadToggle,
2050    /// XF86XK_Calculator
2051    #[strum(serialize = "XF86Calculator")]
2052    XF86XK_Calculator,
2053}
2054
2055impl XKeySym {
2056    /// Convert this keysym to its utf8 representation if possible
2057    pub fn as_utf8_string(&self) -> Result<String, std::string::FromUtf8Error> {
2058        String::from_utf8(
2059            (match self {
2060                XKeySym::XK_BackSpace => 0xff08,
2061                XKeySym::XK_Tab => 0xff09,
2062                XKeySym::XK_Linefeed => 0xff0a,
2063                XKeySym::XK_Clear => 0xff0b,
2064                XKeySym::XK_Return => 0xff0d,
2065                XKeySym::XK_Pause => 0xff13,
2066                XKeySym::XK_Scroll_Lock => 0xff14,
2067                XKeySym::XK_Sys_Req => 0xff15,
2068                XKeySym::XK_Escape => 0xff1b,
2069                XKeySym::XK_Delete => 0xffff,
2070                XKeySym::XK_Home => 0xff50,
2071                XKeySym::XK_Left => 0xff51,
2072                XKeySym::XK_Up => 0xff52,
2073                XKeySym::XK_Right => 0xff53,
2074                XKeySym::XK_Down => 0xff54,
2075                XKeySym::XK_Prior => 0xff55,
2076                XKeySym::XK_Page_Up => 0xff55,
2077                XKeySym::XK_Next => 0xff56,
2078                XKeySym::XK_Page_Down => 0xff56,
2079                XKeySym::XK_End => 0xff57,
2080                XKeySym::XK_Begin => 0xff58,
2081                XKeySym::XK_Select => 0xff60,
2082                XKeySym::XK_Print => 0xff61,
2083                XKeySym::XK_Execute => 0xff62,
2084                XKeySym::XK_Insert => 0xff63,
2085                XKeySym::XK_Undo => 0xff65,
2086                XKeySym::XK_Redo => 0xff66,
2087                XKeySym::XK_Menu => 0xff67,
2088                XKeySym::XK_Find => 0xff68,
2089                XKeySym::XK_Cancel => 0xff69,
2090                XKeySym::XK_Help => 0xff6a,
2091                XKeySym::XK_Break => 0xff6b,
2092                XKeySym::XK_Mode_switch => 0xff7e,
2093                XKeySym::XK_script_switch => 0xff7e,
2094                XKeySym::XK_Num_Lock => 0xff7f,
2095                XKeySym::XK_KP_Space => 0xff80,
2096                XKeySym::XK_KP_Tab => 0xff89,
2097                XKeySym::XK_KP_Enter => 0xff8d,
2098                XKeySym::XK_KP_F1 => 0xff91,
2099                XKeySym::XK_KP_F2 => 0xff92,
2100                XKeySym::XK_KP_F3 => 0xff93,
2101                XKeySym::XK_KP_F4 => 0xff94,
2102                XKeySym::XK_KP_Home => 0xff95,
2103                XKeySym::XK_KP_Left => 0xff96,
2104                XKeySym::XK_KP_Up => 0xff97,
2105                XKeySym::XK_KP_Right => 0xff98,
2106                XKeySym::XK_KP_Down => 0xff99,
2107                XKeySym::XK_KP_Prior => 0xff9a,
2108                XKeySym::XK_KP_Page_Up => 0xff9a,
2109                XKeySym::XK_KP_Next => 0xff9b,
2110                XKeySym::XK_KP_Page_Down => 0xff9b,
2111                XKeySym::XK_KP_End => 0xff9c,
2112                XKeySym::XK_KP_Begin => 0xff9d,
2113                XKeySym::XK_KP_Insert => 0xff9e,
2114                XKeySym::XK_KP_Delete => 0xff9f,
2115                XKeySym::XK_KP_Equal => 0xffbd,
2116                XKeySym::XK_KP_Multiply => 0xffaa,
2117                XKeySym::XK_KP_Add => 0xffab,
2118                XKeySym::XK_KP_Separator => 0xffac,
2119                XKeySym::XK_KP_Subtract => 0xffad,
2120                XKeySym::XK_KP_Decimal => 0xffae,
2121                XKeySym::XK_KP_Divide => 0xffaf,
2122                XKeySym::XK_KP_0 => 0xffb0,
2123                XKeySym::XK_KP_1 => 0xffb1,
2124                XKeySym::XK_KP_2 => 0xffb2,
2125                XKeySym::XK_KP_3 => 0xffb3,
2126                XKeySym::XK_KP_4 => 0xffb4,
2127                XKeySym::XK_KP_5 => 0xffb5,
2128                XKeySym::XK_KP_6 => 0xffb6,
2129                XKeySym::XK_KP_7 => 0xffb7,
2130                XKeySym::XK_KP_8 => 0xffb8,
2131                XKeySym::XK_KP_9 => 0xffb9,
2132                XKeySym::XK_F1 => 0xffbe,
2133                XKeySym::XK_F2 => 0xffbf,
2134                XKeySym::XK_F3 => 0xffc0,
2135                XKeySym::XK_F4 => 0xffc1,
2136                XKeySym::XK_F5 => 0xffc2,
2137                XKeySym::XK_F6 => 0xffc3,
2138                XKeySym::XK_F7 => 0xffc4,
2139                XKeySym::XK_F8 => 0xffc5,
2140                XKeySym::XK_F9 => 0xffc6,
2141                XKeySym::XK_F10 => 0xffc7,
2142                XKeySym::XK_F11 => 0xffc8,
2143                XKeySym::XK_L1 => 0xffc8,
2144                XKeySym::XK_F12 => 0xffc9,
2145                XKeySym::XK_L2 => 0xffc9,
2146                XKeySym::XK_F13 => 0xffca,
2147                XKeySym::XK_L3 => 0xffca,
2148                XKeySym::XK_F14 => 0xffcb,
2149                XKeySym::XK_L4 => 0xffcb,
2150                XKeySym::XK_F15 => 0xffcc,
2151                XKeySym::XK_L5 => 0xffcc,
2152                XKeySym::XK_F16 => 0xffcd,
2153                XKeySym::XK_L6 => 0xffcd,
2154                XKeySym::XK_F17 => 0xffce,
2155                XKeySym::XK_L7 => 0xffce,
2156                XKeySym::XK_F18 => 0xffcf,
2157                XKeySym::XK_L8 => 0xffcf,
2158                XKeySym::XK_F19 => 0xffd0,
2159                XKeySym::XK_L9 => 0xffd0,
2160                XKeySym::XK_F20 => 0xffd1,
2161                XKeySym::XK_L10 => 0xffd1,
2162                XKeySym::XK_F21 => 0xffd2,
2163                XKeySym::XK_R1 => 0xffd2,
2164                XKeySym::XK_F22 => 0xffd3,
2165                XKeySym::XK_R2 => 0xffd3,
2166                XKeySym::XK_F23 => 0xffd4,
2167                XKeySym::XK_R3 => 0xffd4,
2168                XKeySym::XK_F24 => 0xffd5,
2169                XKeySym::XK_R4 => 0xffd5,
2170                XKeySym::XK_F25 => 0xffd6,
2171                XKeySym::XK_R5 => 0xffd6,
2172                XKeySym::XK_F26 => 0xffd7,
2173                XKeySym::XK_R6 => 0xffd7,
2174                XKeySym::XK_F27 => 0xffd8,
2175                XKeySym::XK_R7 => 0xffd8,
2176                XKeySym::XK_F28 => 0xffd9,
2177                XKeySym::XK_R8 => 0xffd9,
2178                XKeySym::XK_F29 => 0xffda,
2179                XKeySym::XK_R9 => 0xffda,
2180                XKeySym::XK_F30 => 0xffdb,
2181                XKeySym::XK_R10 => 0xffdb,
2182                XKeySym::XK_F31 => 0xffdc,
2183                XKeySym::XK_R11 => 0xffdc,
2184                XKeySym::XK_F32 => 0xffdd,
2185                XKeySym::XK_R12 => 0xffdd,
2186                XKeySym::XK_F33 => 0xffde,
2187                XKeySym::XK_R13 => 0xffde,
2188                XKeySym::XK_F34 => 0xffdf,
2189                XKeySym::XK_R14 => 0xffdf,
2190                XKeySym::XK_F35 => 0xffe0,
2191                XKeySym::XK_R15 => 0xffe0,
2192                XKeySym::XK_Shift_L => 0xffe1,
2193                XKeySym::XK_Shift_R => 0xffe2,
2194                XKeySym::XK_Control_L => 0xffe3,
2195                XKeySym::XK_Control_R => 0xffe4,
2196                XKeySym::XK_Caps_Lock => 0xffe5,
2197                XKeySym::XK_Shift_Lock => 0xffe6,
2198                XKeySym::XK_Meta_L => 0xffe7,
2199                XKeySym::XK_Meta_R => 0xffe8,
2200                XKeySym::XK_Alt_L => 0xffe9,
2201                XKeySym::XK_Alt_R => 0xffea,
2202                XKeySym::XK_Super_L => 0xffeb,
2203                XKeySym::XK_Super_R => 0xffec,
2204                XKeySym::XK_Hyper_L => 0xffed,
2205                XKeySym::XK_Hyper_R => 0xffee,
2206                XKeySym::XK_ISO_Lock => 0xfe01,
2207                XKeySym::XK_ISO_Level2_Latch => 0xfe02,
2208                XKeySym::XK_ISO_Level3_Shift => 0xfe03,
2209                XKeySym::XK_ISO_Level3_Latch => 0xfe04,
2210                XKeySym::XK_ISO_Level3_Lock => 0xfe05,
2211                XKeySym::XK_ISO_Level5_Shift => 0xfe11,
2212                XKeySym::XK_ISO_Level5_Latch => 0xfe12,
2213                XKeySym::XK_ISO_Level5_Lock => 0xfe13,
2214                XKeySym::XK_ISO_Left_Tab => 0xfe20,
2215                XKeySym::XK_ISO_Partial_Space_Left => 0xfe25,
2216                XKeySym::XK_ISO_Partial_Space_Right => 0xfe26,
2217                XKeySym::XK_ISO_Set_Margin_Left => 0xfe27,
2218                XKeySym::XK_ISO_Set_Margin_Right => 0xfe28,
2219                XKeySym::XK_ISO_Continuous_Underline => 0xfe30,
2220                XKeySym::XK_ISO_Discontinuous_Underline => 0xfe31,
2221                XKeySym::XK_ISO_Emphasize => 0xfe32,
2222                XKeySym::XK_ISO_Center_Object => 0xfe33,
2223                XKeySym::XK_ISO_Enter => 0xfe34,
2224                XKeySym::XK_Terminate_Server => 0xfed5,
2225                XKeySym::XK_ch => 0xfea0,
2226                XKeySym::XK_Ch => 0xfea1,
2227                XKeySym::XK_CH => 0xfea2,
2228                XKeySym::XK_c_h => 0xfea3,
2229                XKeySym::XK_C_h => 0xfea4,
2230                XKeySym::XK_C_H => 0xfea5,
2231                XKeySym::XK_3270_Duplicate => 0xfd01,
2232                XKeySym::XK_3270_FieldMark => 0xfd02,
2233                XKeySym::XK_3270_Right2 => 0xfd03,
2234                XKeySym::XK_3270_Left2 => 0xfd04,
2235                XKeySym::XK_3270_BackTab => 0xfd05,
2236                XKeySym::XK_3270_EraseEOF => 0xfd06,
2237                XKeySym::XK_3270_EraseInput => 0xfd07,
2238                XKeySym::XK_3270_Reset => 0xfd08,
2239                XKeySym::XK_3270_Quit => 0xfd09,
2240                XKeySym::XK_3270_PA1 => 0xfd0a,
2241                XKeySym::XK_3270_PA2 => 0xfd0b,
2242                XKeySym::XK_3270_PA3 => 0xfd0c,
2243                XKeySym::XK_3270_Test => 0xfd0d,
2244                XKeySym::XK_3270_Attn => 0xfd0e,
2245                XKeySym::XK_3270_CursorBlink => 0xfd0f,
2246                XKeySym::XK_3270_AltCursor => 0xfd10,
2247                XKeySym::XK_3270_KeyClick => 0xfd11,
2248                XKeySym::XK_3270_Jump => 0xfd12,
2249                XKeySym::XK_3270_Ident => 0xfd13,
2250                XKeySym::XK_3270_Rule => 0xfd14,
2251                XKeySym::XK_3270_Copy => 0xfd15,
2252                XKeySym::XK_3270_Play => 0xfd16,
2253                XKeySym::XK_3270_Setup => 0xfd17,
2254                XKeySym::XK_3270_Record => 0xfd18,
2255                XKeySym::XK_3270_DeleteWord => 0xfd1a,
2256                XKeySym::XK_3270_ExSelect => 0xfd1b,
2257                XKeySym::XK_3270_CursorSelect => 0xfd1c,
2258                XKeySym::XK_3270_Enter => 0xfd1e,
2259                XKeySym::XK_space => 0x0020,
2260                XKeySym::XK_exclam => 0x0021,
2261                XKeySym::XK_quotedbl => 0x0022,
2262                XKeySym::XK_numbersign => 0x0023,
2263                XKeySym::XK_dollar => 0x0024,
2264                XKeySym::XK_percent => 0x0025,
2265                XKeySym::XK_ampersand => 0x0026,
2266                XKeySym::XK_apostrophe => 0x0027,
2267                XKeySym::XK_quoteright => 0x0027,
2268                XKeySym::XK_parenleft => 0x0028,
2269                XKeySym::XK_parenright => 0x0029,
2270                XKeySym::XK_asterisk => 0x002a,
2271                XKeySym::XK_plus => 0x002b,
2272                XKeySym::XK_comma => 0x002c,
2273                XKeySym::XK_minus => 0x002d,
2274                XKeySym::XK_period => 0x002e,
2275                XKeySym::XK_slash => 0x002f,
2276                XKeySym::XK_0 => 0x0030,
2277                XKeySym::XK_1 => 0x0031,
2278                XKeySym::XK_2 => 0x0032,
2279                XKeySym::XK_3 => 0x0033,
2280                XKeySym::XK_4 => 0x0034,
2281                XKeySym::XK_5 => 0x0035,
2282                XKeySym::XK_6 => 0x0036,
2283                XKeySym::XK_7 => 0x0037,
2284                XKeySym::XK_8 => 0x0038,
2285                XKeySym::XK_9 => 0x0039,
2286                XKeySym::XK_colon => 0x003a,
2287                XKeySym::XK_semicolon => 0x003b,
2288                XKeySym::XK_less => 0x003c,
2289                XKeySym::XK_equal => 0x003d,
2290                XKeySym::XK_greater => 0x003e,
2291                XKeySym::XK_question => 0x003f,
2292                XKeySym::XK_at => 0x0040,
2293                XKeySym::XK_A => 0x0041,
2294                XKeySym::XK_B => 0x0042,
2295                XKeySym::XK_C => 0x0043,
2296                XKeySym::XK_D => 0x0044,
2297                XKeySym::XK_E => 0x0045,
2298                XKeySym::XK_F => 0x0046,
2299                XKeySym::XK_G => 0x0047,
2300                XKeySym::XK_H => 0x0048,
2301                XKeySym::XK_I => 0x0049,
2302                XKeySym::XK_J => 0x004a,
2303                XKeySym::XK_K => 0x004b,
2304                XKeySym::XK_L => 0x004c,
2305                XKeySym::XK_M => 0x004d,
2306                XKeySym::XK_N => 0x004e,
2307                XKeySym::XK_O => 0x004f,
2308                XKeySym::XK_P => 0x0050,
2309                XKeySym::XK_Q => 0x0051,
2310                XKeySym::XK_R => 0x0052,
2311                XKeySym::XK_S => 0x0053,
2312                XKeySym::XK_T => 0x0054,
2313                XKeySym::XK_U => 0x0055,
2314                XKeySym::XK_V => 0x0056,
2315                XKeySym::XK_W => 0x0057,
2316                XKeySym::XK_X => 0x0058,
2317                XKeySym::XK_Y => 0x0059,
2318                XKeySym::XK_Z => 0x005a,
2319                XKeySym::XK_bracketleft => 0x005b,
2320                XKeySym::XK_backslash => 0x005c,
2321                XKeySym::XK_bracketright => 0x005d,
2322                XKeySym::XK_asciicircum => 0x005e,
2323                XKeySym::XK_underscore => 0x005f,
2324                XKeySym::XK_grave => 0x0060,
2325                XKeySym::XK_quoteleft => 0x0060,
2326                XKeySym::XK_a => 0x0061,
2327                XKeySym::XK_b => 0x0062,
2328                XKeySym::XK_c => 0x0063,
2329                XKeySym::XK_d => 0x0064,
2330                XKeySym::XK_e => 0x0065,
2331                XKeySym::XK_f => 0x0066,
2332                XKeySym::XK_g => 0x0067,
2333                XKeySym::XK_h => 0x0068,
2334                XKeySym::XK_i => 0x0069,
2335                XKeySym::XK_j => 0x006a,
2336                XKeySym::XK_k => 0x006b,
2337                XKeySym::XK_l => 0x006c,
2338                XKeySym::XK_m => 0x006d,
2339                XKeySym::XK_n => 0x006e,
2340                XKeySym::XK_o => 0x006f,
2341                XKeySym::XK_p => 0x0070,
2342                XKeySym::XK_q => 0x0071,
2343                XKeySym::XK_r => 0x0072,
2344                XKeySym::XK_s => 0x0073,
2345                XKeySym::XK_t => 0x0074,
2346                XKeySym::XK_u => 0x0075,
2347                XKeySym::XK_v => 0x0076,
2348                XKeySym::XK_w => 0x0077,
2349                XKeySym::XK_x => 0x0078,
2350                XKeySym::XK_y => 0x0079,
2351                XKeySym::XK_z => 0x007a,
2352                XKeySym::XK_braceleft => 0x007b,
2353                XKeySym::XK_bar => 0x007c,
2354                XKeySym::XK_braceright => 0x007d,
2355                XKeySym::XK_asciitilde => 0x007e,
2356                XKeySym::XK_nobreakspace => 0x00a0,
2357                XKeySym::XK_exclamdown => 0x00a1,
2358                XKeySym::XK_cent => 0x00a2,
2359                XKeySym::XK_sterling => 0x00a3,
2360                XKeySym::XK_currency => 0x00a4,
2361                XKeySym::XK_yen => 0x00a5,
2362                XKeySym::XK_brokenbar => 0x00a6,
2363                XKeySym::XK_section => 0x00a7,
2364                XKeySym::XK_diaeresis => 0x00a8,
2365                XKeySym::XK_copyright => 0x00a9,
2366                XKeySym::XK_ordfeminine => 0x00aa,
2367                XKeySym::XK_guillemotleft => 0x00ab,
2368                XKeySym::XK_notsign => 0x00ac,
2369                XKeySym::XK_hyphen => 0x00ad,
2370                XKeySym::XK_registered => 0x00ae,
2371                XKeySym::XK_macron => 0x00af,
2372                XKeySym::XK_degree => 0x00b0,
2373                XKeySym::XK_plusminus => 0x00b1,
2374                XKeySym::XK_acute => 0x00b4,
2375                XKeySym::XK_mu => 0x00b5,
2376                XKeySym::XK_paragraph => 0x00b6,
2377                XKeySym::XK_periodcentered => 0x00b7,
2378                XKeySym::XK_cedilla => 0x00b8,
2379                XKeySym::XK_masculine => 0x00ba,
2380                XKeySym::XK_guillemotright => 0x00bb,
2381                XKeySym::XK_onequarter => 0x00bc,
2382                XKeySym::XK_onehalf => 0x00bd,
2383                XKeySym::XK_threequarters => 0x00be,
2384                XKeySym::XK_questiondown => 0x00bf,
2385                XKeySym::XK_Aacute => 0x00c1,
2386                XKeySym::XK_Atilde => 0x00c3,
2387                XKeySym::XK_Adiaeresis => 0x00c4,
2388                XKeySym::XK_Aring => 0x00c5,
2389                XKeySym::XK_AE => 0x00c6,
2390                XKeySym::XK_Ccedilla => 0x00c7,
2391                XKeySym::XK_Eacute => 0x00c9,
2392                XKeySym::XK_Ediaeresis => 0x00cb,
2393                XKeySym::XK_Iacute => 0x00cd,
2394                XKeySym::XK_Idiaeresis => 0x00cf,
2395                XKeySym::XK_ETH => 0x00d0,
2396                XKeySym::XK_Eth => 0x00d0,
2397                XKeySym::XK_Ntilde => 0x00d1,
2398                XKeySym::XK_Oacute => 0x00d3,
2399                XKeySym::XK_Otilde => 0x00d5,
2400                XKeySym::XK_Odiaeresis => 0x00d6,
2401                XKeySym::XK_multiply => 0x00d7,
2402                XKeySym::XK_Oslash => 0x00d8,
2403                XKeySym::XK_Ooblique => 0x00d8,
2404                XKeySym::XK_Uacute => 0x00da,
2405                XKeySym::XK_Udiaeresis => 0x00dc,
2406                XKeySym::XK_Yacute => 0x00dd,
2407                XKeySym::XK_ssharp => 0x00df,
2408                XKeySym::XK_aacute => 0x00e1,
2409                XKeySym::XK_atilde => 0x00e3,
2410                XKeySym::XK_adiaeresis => 0x00e4,
2411                XKeySym::XK_aring => 0x00e5,
2412                XKeySym::XK_ae => 0x00e6,
2413                XKeySym::XK_ccedilla => 0x00e7,
2414                XKeySym::XK_eacute => 0x00e9,
2415                XKeySym::XK_ediaeresis => 0x00eb,
2416                XKeySym::XK_iacute => 0x00ed,
2417                XKeySym::XK_idiaeresis => 0x00ef,
2418                XKeySym::XK_eth => 0x00f0,
2419                XKeySym::XK_ntilde => 0x00f1,
2420                XKeySym::XK_oacute => 0x00f3,
2421                XKeySym::XK_otilde => 0x00f5,
2422                XKeySym::XK_odiaeresis => 0x00f6,
2423                XKeySym::XK_division => 0x00f7,
2424                XKeySym::XK_oslash => 0x00f8,
2425                XKeySym::XK_ooblique => 0x00f8,
2426                XKeySym::XK_uacute => 0x00fa,
2427                XKeySym::XK_udiaeresis => 0x00fc,
2428                XKeySym::XK_yacute => 0x00fd,
2429                XKeySym::XK_ydiaeresis => 0x00ff,
2430                XKeySym::XK_Aogonek => 0x01a1,
2431                XKeySym::XK_breve => 0x01a2,
2432                XKeySym::XK_Lstroke => 0x01a3,
2433                XKeySym::XK_Lcaron => 0x01a5,
2434                XKeySym::XK_Sacute => 0x01a6,
2435                XKeySym::XK_Scaron => 0x01a9,
2436                XKeySym::XK_Scedilla => 0x01aa,
2437                XKeySym::XK_Tcaron => 0x01ab,
2438                XKeySym::XK_Zacute => 0x01ac,
2439                XKeySym::XK_Zcaron => 0x01ae,
2440                XKeySym::XK_aogonek => 0x01b1,
2441                XKeySym::XK_ogonek => 0x01b2,
2442                XKeySym::XK_lstroke => 0x01b3,
2443                XKeySym::XK_lcaron => 0x01b5,
2444                XKeySym::XK_sacute => 0x01b6,
2445                XKeySym::XK_caron => 0x01b7,
2446                XKeySym::XK_scaron => 0x01b9,
2447                XKeySym::XK_scedilla => 0x01ba,
2448                XKeySym::XK_tcaron => 0x01bb,
2449                XKeySym::XK_zacute => 0x01bc,
2450                XKeySym::XK_doubleacute => 0x01bd,
2451                XKeySym::XK_zcaron => 0x01be,
2452                XKeySym::XK_Racute => 0x01c0,
2453                XKeySym::XK_Abreve => 0x01c3,
2454                XKeySym::XK_Lacute => 0x01c5,
2455                XKeySym::XK_Cacute => 0x01c6,
2456                XKeySym::XK_Ccaron => 0x01c8,
2457                XKeySym::XK_Eogonek => 0x01ca,
2458                XKeySym::XK_Ecaron => 0x01cc,
2459                XKeySym::XK_Dcaron => 0x01cf,
2460                XKeySym::XK_Dstroke => 0x01d0,
2461                XKeySym::XK_Nacute => 0x01d1,
2462                XKeySym::XK_Ncaron => 0x01d2,
2463                XKeySym::XK_Odoubleacute => 0x01d5,
2464                XKeySym::XK_Rcaron => 0x01d8,
2465                XKeySym::XK_Uring => 0x01d9,
2466                XKeySym::XK_Udoubleacute => 0x01db,
2467                XKeySym::XK_Tcedilla => 0x01de,
2468                XKeySym::XK_racute => 0x01e0,
2469                XKeySym::XK_abreve => 0x01e3,
2470                XKeySym::XK_lacute => 0x01e5,
2471                XKeySym::XK_cacute => 0x01e6,
2472                XKeySym::XK_ccaron => 0x01e8,
2473                XKeySym::XK_eogonek => 0x01ea,
2474                XKeySym::XK_ecaron => 0x01ec,
2475                XKeySym::XK_dcaron => 0x01ef,
2476                XKeySym::XK_dstroke => 0x01f0,
2477                XKeySym::XK_nacute => 0x01f1,
2478                XKeySym::XK_ncaron => 0x01f2,
2479                XKeySym::XK_odoubleacute => 0x01f5,
2480                XKeySym::XK_rcaron => 0x01f8,
2481                XKeySym::XK_uring => 0x01f9,
2482                XKeySym::XK_udoubleacute => 0x01fb,
2483                XKeySym::XK_tcedilla => 0x01fe,
2484                XKeySym::XK_Hstroke => 0x02a1,
2485                XKeySym::XK_Gbreve => 0x02ab,
2486                XKeySym::XK_hstroke => 0x02b1,
2487                XKeySym::XK_idotless => 0x02b9,
2488                XKeySym::XK_gbreve => 0x02bb,
2489                XKeySym::XK_Ubreve => 0x02dd,
2490                XKeySym::XK_ubreve => 0x02fd,
2491                XKeySym::XK_kra => 0x03a2,
2492                XKeySym::XK_kappa => 0x03a2,
2493                XKeySym::XK_Rcedilla => 0x03a3,
2494                XKeySym::XK_Itilde => 0x03a5,
2495                XKeySym::XK_Lcedilla => 0x03a6,
2496                XKeySym::XK_Emacron => 0x03aa,
2497                XKeySym::XK_Gcedilla => 0x03ab,
2498                XKeySym::XK_Tslash => 0x03ac,
2499                XKeySym::XK_rcedilla => 0x03b3,
2500                XKeySym::XK_itilde => 0x03b5,
2501                XKeySym::XK_lcedilla => 0x03b6,
2502                XKeySym::XK_emacron => 0x03ba,
2503                XKeySym::XK_gcedilla => 0x03bb,
2504                XKeySym::XK_tslash => 0x03bc,
2505                XKeySym::XK_ENG => 0x03bd,
2506                XKeySym::XK_eng => 0x03bf,
2507                XKeySym::XK_Amacron => 0x03c0,
2508                XKeySym::XK_Iogonek => 0x03c7,
2509                XKeySym::XK_Imacron => 0x03cf,
2510                XKeySym::XK_Ncedilla => 0x03d1,
2511                XKeySym::XK_Omacron => 0x03d2,
2512                XKeySym::XK_Kcedilla => 0x03d3,
2513                XKeySym::XK_Uogonek => 0x03d9,
2514                XKeySym::XK_Utilde => 0x03dd,
2515                XKeySym::XK_Umacron => 0x03de,
2516                XKeySym::XK_amacron => 0x03e0,
2517                XKeySym::XK_iogonek => 0x03e7,
2518                XKeySym::XK_imacron => 0x03ef,
2519                XKeySym::XK_ncedilla => 0x03f1,
2520                XKeySym::XK_omacron => 0x03f2,
2521                XKeySym::XK_kcedilla => 0x03f3,
2522                XKeySym::XK_uogonek => 0x03f9,
2523                XKeySym::XK_utilde => 0x03fd,
2524                XKeySym::XK_umacron => 0x03fe,
2525                XKeySym::XK_Wacute => 0x1001e82,
2526                XKeySym::XK_wacute => 0x1001e83,
2527                XKeySym::XK_Wdiaeresis => 0x1001e84,
2528                XKeySym::XK_wdiaeresis => 0x1001e85,
2529                XKeySym::XK_OE => 0x13bc,
2530                XKeySym::XK_oe => 0x13bd,
2531                XKeySym::XK_Ydiaeresis => 0x13be,
2532                XKeySym::XK_overline => 0x047e,
2533                XKeySym::XK_prolongedsound => 0x04b0,
2534                XKeySym::XK_voicedsound => 0x04de,
2535                XKeySym::XK_semivoicedsound => 0x04df,
2536                XKeySym::XK_numerosign => 0x06b0,
2537                XKeySym::XK_leftradical => 0x08a1,
2538                XKeySym::XK_topleftradical => 0x08a2,
2539                XKeySym::XK_horizconnector => 0x08a3,
2540                XKeySym::XK_topintegral => 0x08a4,
2541                XKeySym::XK_botintegral => 0x08a5,
2542                XKeySym::XK_vertconnector => 0x08a6,
2543                XKeySym::XK_topleftsqbracket => 0x08a7,
2544                XKeySym::XK_botleftsqbracket => 0x08a8,
2545                XKeySym::XK_toprightsqbracket => 0x08a9,
2546                XKeySym::XK_botrightsqbracket => 0x08aa,
2547                XKeySym::XK_topleftparens => 0x08ab,
2548                XKeySym::XK_botleftparens => 0x08ac,
2549                XKeySym::XK_toprightparens => 0x08ad,
2550                XKeySym::XK_botrightparens => 0x08ae,
2551                XKeySym::XK_leftmiddlecurlybrace => 0x08af,
2552                XKeySym::XK_rightmiddlecurlybrace => 0x08b0,
2553                XKeySym::XK_lessthanequal => 0x08bc,
2554                XKeySym::XK_notequal => 0x08bd,
2555                XKeySym::XK_greaterthanequal => 0x08be,
2556                XKeySym::XK_integral => 0x08bf,
2557                XKeySym::XK_therefore => 0x08c0,
2558                XKeySym::XK_variation => 0x08c1,
2559                XKeySym::XK_infinity => 0x08c2,
2560                XKeySym::XK_nabla => 0x08c5,
2561                XKeySym::XK_approximate => 0x08c8,
2562                XKeySym::XK_similarequal => 0x08c9,
2563                XKeySym::XK_ifonlyif => 0x08cd,
2564                XKeySym::XK_implies => 0x08ce,
2565                XKeySym::XK_identical => 0x08cf,
2566                XKeySym::XK_radical => 0x08d6,
2567                XKeySym::XK_includedin => 0x08da,
2568                XKeySym::XK_includes => 0x08db,
2569                XKeySym::XK_intersection => 0x08dc,
2570                XKeySym::XK_union => 0x08dd,
2571                XKeySym::XK_logicaland => 0x08de,
2572                XKeySym::XK_logicalor => 0x08df,
2573                XKeySym::XK_partialderivative => 0x08ef,
2574                XKeySym::XK_function => 0x08f6,
2575                XKeySym::XK_leftarrow => 0x08fb,
2576                XKeySym::XK_uparrow => 0x08fc,
2577                XKeySym::XK_rightarrow => 0x08fd,
2578                XKeySym::XK_downarrow => 0x08fe,
2579                XKeySym::XK_blank => 0x09df,
2580                XKeySym::XK_soliddiamond => 0x09e0,
2581                XKeySym::XK_checkerboard => 0x09e1,
2582                XKeySym::XK_ht => 0x09e2,
2583                XKeySym::XK_ff => 0x09e3,
2584                XKeySym::XK_cr => 0x09e4,
2585                XKeySym::XK_lf => 0x09e5,
2586                XKeySym::XK_nl => 0x09e8,
2587                XKeySym::XK_vt => 0x09e9,
2588                XKeySym::XK_lowrightcorner => 0x09ea,
2589                XKeySym::XK_uprightcorner => 0x09eb,
2590                XKeySym::XK_upleftcorner => 0x09ec,
2591                XKeySym::XK_lowleftcorner => 0x09ed,
2592                XKeySym::XK_crossinglines => 0x09ee,
2593                XKeySym::XK_leftt => 0x09f4,
2594                XKeySym::XK_rightt => 0x09f5,
2595                XKeySym::XK_bott => 0x09f6,
2596                XKeySym::XK_topt => 0x09f7,
2597                XKeySym::XK_vertbar => 0x09f8,
2598                XKeySym::XK_emspace => 0x0aa1,
2599                XKeySym::XK_enspace => 0x0aa2,
2600                XKeySym::XK_em3space => 0x0aa3,
2601                XKeySym::XK_em4space => 0x0aa4,
2602                XKeySym::XK_digitspace => 0x0aa5,
2603                XKeySym::XK_punctspace => 0x0aa6,
2604                XKeySym::XK_thinspace => 0x0aa7,
2605                XKeySym::XK_hairspace => 0x0aa8,
2606                XKeySym::XK_emdash => 0x0aa9,
2607                XKeySym::XK_endash => 0x0aaa,
2608                XKeySym::XK_signifblank => 0x0aac,
2609                XKeySym::XK_ellipsis => 0x0aae,
2610                XKeySym::XK_doubbaselinedot => 0x0aaf,
2611                XKeySym::XK_onethird => 0x0ab0,
2612                XKeySym::XK_twothirds => 0x0ab1,
2613                XKeySym::XK_onefifth => 0x0ab2,
2614                XKeySym::XK_twofifths => 0x0ab3,
2615                XKeySym::XK_threefifths => 0x0ab4,
2616                XKeySym::XK_fourfifths => 0x0ab5,
2617                XKeySym::XK_onesixth => 0x0ab6,
2618                XKeySym::XK_fivesixths => 0x0ab7,
2619                XKeySym::XK_careof => 0x0ab8,
2620                XKeySym::XK_figdash => 0x0abb,
2621                XKeySym::XK_leftanglebracket => 0x0abc,
2622                XKeySym::XK_decimalpoint => 0x0abd,
2623                XKeySym::XK_rightanglebracket => 0x0abe,
2624                XKeySym::XK_marker => 0x0abf,
2625                XKeySym::XK_oneeighth => 0x0ac3,
2626                XKeySym::XK_threeeighths => 0x0ac4,
2627                XKeySym::XK_fiveeighths => 0x0ac5,
2628                XKeySym::XK_seveneighths => 0x0ac6,
2629                XKeySym::XK_trademark => 0x0ac9,
2630                XKeySym::XK_signaturemark => 0x0aca,
2631                XKeySym::XK_leftopentriangle => 0x0acc,
2632                XKeySym::XK_rightopentriangle => 0x0acd,
2633                XKeySym::XK_emopenrectangle => 0x0acf,
2634                XKeySym::XK_leftsinglequotemark => 0x0ad0,
2635                XKeySym::XK_rightsinglequotemark => 0x0ad1,
2636                XKeySym::XK_leftdoublequotemark => 0x0ad2,
2637                XKeySym::XK_rightdoublequotemark => 0x0ad3,
2638                XKeySym::XK_prescription => 0x0ad4,
2639                XKeySym::XK_permille => 0x0ad5,
2640                XKeySym::XK_minutes => 0x0ad6,
2641                XKeySym::XK_seconds => 0x0ad7,
2642                XKeySym::XK_latincross => 0x0ad9,
2643                XKeySym::XK_hexagram => 0x0ada,
2644                XKeySym::XK_emfilledrect => 0x0adf,
2645                XKeySym::XK_openstar => 0x0ae5,
2646                XKeySym::XK_leftpointer => 0x0aea,
2647                XKeySym::XK_rightpointer => 0x0aeb,
2648                XKeySym::XK_club => 0x0aec,
2649                XKeySym::XK_diamond => 0x0aed,
2650                XKeySym::XK_heart => 0x0aee,
2651                XKeySym::XK_maltesecross => 0x0af0,
2652                XKeySym::XK_dagger => 0x0af1,
2653                XKeySym::XK_doubledagger => 0x0af2,
2654                XKeySym::XK_checkmark => 0x0af3,
2655                XKeySym::XK_ballotcross => 0x0af4,
2656                XKeySym::XK_musicalsharp => 0x0af5,
2657                XKeySym::XK_musicalflat => 0x0af6,
2658                XKeySym::XK_malesymbol => 0x0af7,
2659                XKeySym::XK_femalesymbol => 0x0af8,
2660                XKeySym::XK_telephone => 0x0af9,
2661                XKeySym::XK_telephonerecorder => 0x0afa,
2662                XKeySym::XK_phonographcopyright => 0x0afb,
2663                XKeySym::XK_caret => 0x0afc,
2664                XKeySym::XK_singlelowquotemark => 0x0afd,
2665                XKeySym::XK_doublelowquotemark => 0x0afe,
2666                XKeySym::XK_cursor => 0x0aff,
2667                XKeySym::XK_leftcaret => 0x0ba3,
2668                XKeySym::XK_rightcaret => 0x0ba6,
2669                XKeySym::XK_downcaret => 0x0ba8,
2670                XKeySym::XK_upcaret => 0x0ba9,
2671                XKeySym::XK_overbar => 0x0bc0,
2672                XKeySym::XK_downtack => 0x0bc2,
2673                XKeySym::XK_upshoe => 0x0bc3,
2674                XKeySym::XK_downstile => 0x0bc4,
2675                XKeySym::XK_underbar => 0x0bc6,
2676                XKeySym::XK_jot => 0x0bca,
2677                XKeySym::XK_quad => 0x0bcc,
2678                XKeySym::XK_uptack => 0x0bce,
2679                XKeySym::XK_upstile => 0x0bd3,
2680                XKeySym::XK_downshoe => 0x0bd6,
2681                XKeySym::XK_rightshoe => 0x0bd8,
2682                XKeySym::XK_leftshoe => 0x0bda,
2683                XKeySym::XK_lefttack => 0x0bdc,
2684                XKeySym::XK_righttack => 0x0bfc,
2685                XKeySym::XK_Korean_Won => 0x0eff,
2686                XKeySym::XK_Ibreve => 0x100012c,
2687                XKeySym::XK_Zstroke => 0x10001b5,
2688                XKeySym::XK_Gcaron => 0x10001e6,
2689                XKeySym::XK_Ocaron => 0x10001d1,
2690                XKeySym::XK_Obarred => 0x100019f,
2691                XKeySym::XK_ibreve => 0x100012d,
2692                XKeySym::XK_zstroke => 0x10001b6,
2693                XKeySym::XK_gcaron => 0x10001e7,
2694                XKeySym::XK_ocaron => 0x10001d2,
2695                XKeySym::XK_obarred => 0x1000275,
2696                XKeySym::XK_SCHWA => 0x100018f,
2697                XKeySym::XK_schwa => 0x1000259,
2698                XKeySym::XK_EZH => 0x10001b7,
2699                XKeySym::XK_ezh => 0x1000292,
2700                XKeySym::XK_Abreveacute => 0x1001eae,
2701                XKeySym::XK_abreveacute => 0x1001eaf,
2702                XKeySym::XK_Abrevetilde => 0x1001eb4,
2703                XKeySym::XK_abrevetilde => 0x1001eb5,
2704                XKeySym::XK_Etilde => 0x1001ebc,
2705                XKeySym::XK_etilde => 0x1001ebd,
2706                XKeySym::XK_Ytilde => 0x1001ef8,
2707                XKeySym::XK_ytilde => 0x1001ef9,
2708                XKeySym::XK_EcuSign => 0x10020a0,
2709                XKeySym::XK_ColonSign => 0x10020a1,
2710                XKeySym::XK_CruzeiroSign => 0x10020a2,
2711                XKeySym::XK_FFrancSign => 0x10020a3,
2712                XKeySym::XK_LiraSign => 0x10020a4,
2713                XKeySym::XK_MillSign => 0x10020a5,
2714                XKeySym::XK_NairaSign => 0x10020a6,
2715                XKeySym::XK_PesetaSign => 0x10020a7,
2716                XKeySym::XK_RupeeSign => 0x10020a8,
2717                XKeySym::XK_WonSign => 0x10020a9,
2718                XKeySym::XK_NewSheqelSign => 0x10020aa,
2719                XKeySym::XK_DongSign => 0x10020ab,
2720                XKeySym::XK_EuroSign => 0x20ac,
2721                XKeySym::XF86XK_MonBrightnessUp => 0x1008FF02,
2722                XKeySym::XF86XK_MonBrightnessDown => 0x1008FF03,
2723                XKeySym::XF86XK_KbdLightOnOff => 0x1008FF04,
2724                XKeySym::XF86XK_KbdBrightnessUp => 0x1008FF05,
2725                XKeySym::XF86XK_KbdBrightnessDown => 0x1008FF06,
2726                XKeySym::XF86XK_MonBrightnessCycle => 0x1008FF07,
2727                XKeySym::XF86XK_Standby => 0x1008FF10,
2728                XKeySym::XF86XK_AudioLowerVolume => 0x1008FF11,
2729                XKeySym::XF86XK_AudioMute => 0x1008FF12,
2730                XKeySym::XF86XK_AudioRaiseVolume => 0x1008FF13,
2731                XKeySym::XF86XK_AudioPlay => 0x1008FF14,
2732                XKeySym::XF86XK_AudioStop => 0x1008FF15,
2733                XKeySym::XF86XK_AudioPrev => 0x1008FF16,
2734                XKeySym::XF86XK_AudioNext => 0x1008FF17,
2735                XKeySym::XF86XK_AudioMicMute => 0x1008FF18,
2736                XKeySym::XF86XK_DisplayOff => 0x1008FF19,
2737                XKeySym::XF86XK_TouchpadToggle => 0x1008FF1A,
2738                XKeySym::XF86XK_Calculator => 0x1008FF1D,
2739            } as u32)
2740                .to_le_bytes()
2741                .iter()
2742                .copied()
2743                .filter(|&b| b > 0)
2744                .collect(),
2745        )
2746    }
2747}