1 module deimos.X11.keysymdef;
2 
3 import deimos.X11.keysym;
4 
5 extern (C) nothrow:
6 
7 enum XK_VoidSymbol                 = 0xffffff;  /* Void symbol */
8 
9 static if( XK_MISCELLANY ){
10     /*
11      * TTY function keys, cleverly chosen to map to ASCII, for convenience of
12      * programming, but could have been arbitrary (at the cost of lookup
13      * tables in client code).
14      */
15 
16     enum XK_BackSpace                     = 0xff08;  /* Back space, back char */
17     enum XK_Tab                           = 0xff09;
18     enum XK_Linefeed                      = 0xff0a;  /* Linefeed, LF */
19     enum XK_Clear                         = 0xff0b;
20     enum XK_Return                        = 0xff0d;  /* Return, enter */
21     enum XK_Pause                         = 0xff13;  /* Pause, hold */
22     enum XK_Scroll_Lock                   = 0xff14;
23     enum XK_Sys_Req                       = 0xff15;
24     enum XK_Escape                        = 0xff1b;
25     enum XK_Delete                        = 0xffff;  /* Delete, rubout */
26 
27     /* International & multi-key character composition */
28 
29     enum XK_Multi_key                     = 0xff20;  /* Multi-key character compose */
30     enum XK_Codeinput                     = 0xff37;
31     enum XK_SingleCandidate               = 0xff3c;
32     enum XK_MultipleCandidate             = 0xff3d;
33     enum XK_PreviousCandidate             = 0xff3e;
34 
35     /* Japanese keyboard support */
36 
37     enum XK_Kanji                         = 0xff21;  /* Kanji, Kanji convert */
38     enum XK_Muhenkan                      = 0xff22;  /* Cancel Conversion */
39     enum XK_Henkan_Mode                   = 0xff23;  /* Start/Stop Conversion */
40     enum XK_Henkan                        = 0xff23;  /* Alias for Henkan_Mode */
41     enum XK_Romaji                        = 0xff24;  /* to Romaji */
42     enum XK_Hiragana                      = 0xff25;  /* to Hiragana */
43     enum XK_Katakana                      = 0xff26;  /* to Katakana */
44     enum XK_Hiragana_Katakana             = 0xff27;  /* Hiragana/Katakana toggle */
45     enum XK_Zenkaku                       = 0xff28;  /* to Zenkaku */
46     enum XK_Hankaku                       = 0xff29;  /* to Hankaku */
47     enum XK_Zenkaku_Hankaku               = 0xff2a;  /* Zenkaku/Hankaku toggle */
48     enum XK_Touroku                       = 0xff2b;  /* Add to Dictionary */
49     enum XK_Massyo                        = 0xff2c;  /* Delete from Dictionary */
50     enum XK_Kana_Lock                     = 0xff2d;  /* Kana Lock */
51     enum XK_Kana_Shift                    = 0xff2e;  /* Kana Shift */
52     enum XK_Eisu_Shift                    = 0xff2f;  /* Alphanumeric Shift */
53     enum XK_Eisu_toggle                   = 0xff30;  /* Alphanumeric toggle */
54     enum XK_Kanji_Bangou                  = 0xff37;  /* Codeinput */
55     enum XK_Zen_Koho                      = 0xff3d;  /* Multiple/All Candidate(s) */
56     enum XK_Mae_Koho                      = 0xff3e;  /* Previous Candidate */
57 
58     /* 0xff31 thru 0xff3f are under XK_KOREAN */
59 
60     /* Cursor control & motion */
61 
62     enum XK_Home                          = 0xff50;
63     enum XK_Left                          = 0xff51;  /* Move left, left arrow */
64     enum XK_Up                            = 0xff52;  /* Move up, up arrow */
65     enum XK_Right                         = 0xff53;  /* Move right, right arrow */
66     enum XK_Down                          = 0xff54;  /* Move down, down arrow */
67     enum XK_Prior                         = 0xff55;  /* Prior, previous */
68     enum XK_Page_Up                       = 0xff55;
69     enum XK_Next                          = 0xff56;  /* Next */
70     enum XK_Page_Down                     = 0xff56;
71     enum XK_End                           = 0xff57;  /* EOL */
72     enum XK_Begin                         = 0xff58;  /* BOL */
73 
74     /* Misc functions */
75 
76     enum XK_Select                        = 0xff60;  /* Select, mark */
77     enum XK_Print                         = 0xff61;
78     enum XK_Execute                       = 0xff62;  /* Execute, run, do */
79     enum XK_Insert                        = 0xff63;  /* Insert, insert here */
80     enum XK_Undo                          = 0xff65;
81     enum XK_Redo                          = 0xff66;  /* Redo, again */
82     enum XK_Menu                          = 0xff67;
83     enum XK_Find                          = 0xff68;  /* Find, search */
84     enum XK_Cancel                        = 0xff69;  /* Cancel, stop, abort, exit */
85     enum XK_Help                          = 0xff6a;  /* Help */
86     enum XK_break                         = 0xff6b;
87     enum XK_Mode_switch                   = 0xff7e;  /* Character set switch */
88     enum XK_script_switch                 = 0xff7e;  /* Alias for mode_switch */
89     enum XK_Num_Lock                      = 0xff7f;
90 
91     /* Keypad functions, keypad numbers cleverly chosen to map to ASCII */
92 
93     enum XK_KP_Space                      = 0xff80;  /* Space */
94     enum XK_KP_Tab                        = 0xff89;
95     enum XK_KP_Enter                      = 0xff8d;  /* Enter */
96     enum XK_KP_F1                         = 0xff91;  /* PF1, KP_A, ... */
97     enum XK_KP_F2                         = 0xff92;
98     enum XK_KP_F3                         = 0xff93;
99     enum XK_KP_F4                         = 0xff94;
100     enum XK_KP_Home                       = 0xff95;
101     enum XK_KP_Left                       = 0xff96;
102     enum XK_KP_Up                         = 0xff97;
103     enum XK_KP_Right                      = 0xff98;
104     enum XK_KP_Down                       = 0xff99;
105     enum XK_KP_Prior                      = 0xff9a;
106     enum XK_KP_Page_Up                    = 0xff9a;
107     enum XK_KP_Next                       = 0xff9b;
108     enum XK_KP_Page_Down                  = 0xff9b;
109     enum XK_KP_End                        = 0xff9c;
110     enum XK_KP_Begin                      = 0xff9d;
111     enum XK_KP_Insert                     = 0xff9e;
112     enum XK_KP_Delete                     = 0xff9f;
113     enum XK_KP_Equal                      = 0xffbd;  /* Equals */
114     enum XK_KP_Multiply                   = 0xffaa;
115     enum XK_KP_Add                        = 0xffab;
116     enum XK_KP_Separator                  = 0xffac;  /* Separator, often comma */
117     enum XK_KP_Subtract                   = 0xffad;
118     enum XK_KP_Decimal                    = 0xffae;
119     enum XK_KP_Divide                     = 0xffaf;
120 
121     enum XK_KP_0                          = 0xffb0;
122     enum XK_KP_1                          = 0xffb1;
123     enum XK_KP_2                          = 0xffb2;
124     enum XK_KP_3                          = 0xffb3;
125     enum XK_KP_4                          = 0xffb4;
126     enum XK_KP_5                          = 0xffb5;
127     enum XK_KP_6                          = 0xffb6;
128     enum XK_KP_7                          = 0xffb7;
129     enum XK_KP_8                          = 0xffb8;
130     enum XK_KP_9                          = 0xffb9;
131 
132     /*
133      * Auxiliary functions; note the duplicate definitions for left and right
134      * function keys;  Sun keyboards and a few other manufacturers have such
135      * function key groups on the left and/or right sides of the keyboard.
136      * We've not found a keyboard with more than 35 function keys total.
137      */
138 
139     enum XK_F1                            = 0xffbe;
140     enum XK_F2                            = 0xffbf;
141     enum XK_F3                            = 0xffc0;
142     enum XK_F4                            = 0xffc1;
143     enum XK_F5                            = 0xffc2;
144     enum XK_F6                            = 0xffc3;
145     enum XK_F7                            = 0xffc4;
146     enum XK_F8                            = 0xffc5;
147     enum XK_F9                            = 0xffc6;
148     enum XK_F10                           = 0xffc7;
149     enum XK_F11                           = 0xffc8;
150     enum XK_L1                            = 0xffc8;
151     enum XK_F12                           = 0xffc9;
152     enum XK_L2                            = 0xffc9;
153     enum XK_F13                           = 0xffca;
154     enum XK_L3                            = 0xffca;
155     enum XK_F14                           = 0xffcb;
156     enum XK_L4                            = 0xffcb;
157     enum XK_F15                           = 0xffcc;
158     enum XK_L5                            = 0xffcc;
159     enum XK_F16                           = 0xffcd;
160     enum XK_L6                            = 0xffcd;
161     enum XK_F17                           = 0xffce;
162     enum XK_L7                            = 0xffce;
163     enum XK_F18                           = 0xffcf;
164     enum XK_L8                            = 0xffcf;
165     enum XK_F19                           = 0xffd0;
166     enum XK_L9                            = 0xffd0;
167     enum XK_F20                           = 0xffd1;
168     enum XK_L10                           = 0xffd1;
169     enum XK_F21                           = 0xffd2;
170     enum XK_R1                            = 0xffd2;
171     enum XK_F22                           = 0xffd3;
172     enum XK_R2                            = 0xffd3;
173     enum XK_F23                           = 0xffd4;
174     enum XK_R3                            = 0xffd4;
175     enum XK_F24                           = 0xffd5;
176     enum XK_R4                            = 0xffd5;
177     enum XK_F25                           = 0xffd6;
178     enum XK_R5                            = 0xffd6;
179     enum XK_F26                           = 0xffd7;
180     enum XK_R6                            = 0xffd7;
181     enum XK_F27                           = 0xffd8;
182     enum XK_R7                            = 0xffd8;
183     enum XK_F28                           = 0xffd9;
184     enum XK_R8                            = 0xffd9;
185     enum XK_F29                           = 0xffda;
186     enum XK_R9                            = 0xffda;
187     enum XK_F30                           = 0xffdb;
188     enum XK_R10                           = 0xffdb;
189     enum XK_F31                           = 0xffdc;
190     enum XK_R11                           = 0xffdc;
191     enum XK_F32                           = 0xffdd;
192     enum XK_R12                           = 0xffdd;
193     enum XK_F33                           = 0xffde;
194     enum XK_R13                           = 0xffde;
195     enum XK_F34                           = 0xffdf;
196     enum XK_R14                           = 0xffdf;
197     enum XK_F35                           = 0xffe0;
198     enum XK_R15                           = 0xffe0;
199 
200     /* Modifiers */
201 
202     enum XK_Shift_L                       = 0xffe1;  /* Left shift */
203     enum XK_Shift_R                       = 0xffe2;  /* Right shift */
204     enum XK_Control_L                     = 0xffe3;  /* Left control */
205     enum XK_Control_R                     = 0xffe4;  /* Right control */
206     enum XK_Caps_Lock                     = 0xffe5;  /* Caps lock */
207     enum XK_Shift_Lock                    = 0xffe6;  /* Shift lock */
208 
209     enum XK_Meta_L                        = 0xffe7;  /* Left meta */
210     enum XK_Meta_R                        = 0xffe8;  /* Right meta */
211     enum XK_Alt_L                         = 0xffe9;  /* Left alt */
212     enum XK_Alt_R                         = 0xffea;  /* Right alt */
213     enum XK_Super_L                       = 0xffeb;  /* Left super */
214     enum XK_Super_R                       = 0xffec;  /* Right super */
215     enum XK_Hyper_L                       = 0xffed;  /* Left hyper */
216     enum XK_Hyper_R                       = 0xffee;  /* Right hyper */
217 }
218 /*
219  * Keyboard (XKB) Extension function and modifier keys
220  * (from Appendix C of "The X Keyboard Extension: Protocol Specification")
221  * Byte 3 = 0xfe
222  */
223 static if( XK_XKB_KEYS ){
224     enum XK_ISO_Lock                      = 0xfe01;
225     enum XK_ISO_Level2_Latch              = 0xfe02;
226     enum XK_ISO_Level3_Shift              = 0xfe03;
227     enum XK_ISO_Level3_Latch              = 0xfe04;
228     enum XK_ISO_Level3_Lock               = 0xfe05;
229     enum XK_ISO_Level5_Shift              = 0xfe11;
230     enum XK_ISO_Level5_Latch              = 0xfe12;
231     enum XK_ISO_Level5_Lock               = 0xfe13;
232     enum XK_ISO_Group_Shift               = 0xff7e;  /* Alias for mode_switch */
233     enum XK_ISO_Group_Latch               = 0xfe06;
234     enum XK_ISO_Group_Lock                = 0xfe07;
235     enum XK_ISO_Next_Group                = 0xfe08;
236     enum XK_ISO_Next_Group_Lock           = 0xfe09;
237     enum XK_ISO_Prev_Group                = 0xfe0a;
238     enum XK_ISO_Prev_Group_Lock           = 0xfe0b;
239     enum XK_ISO_First_Group               = 0xfe0c;
240     enum XK_ISO_First_Group_Lock          = 0xfe0d;
241     enum XK_ISO_Last_Group                = 0xfe0e;
242     enum XK_ISO_Last_Group_Lock           = 0xfe0f;
243 
244     enum XK_ISO_Left_Tab                  = 0xfe20;
245     enum XK_ISO_Move_Line_Up              = 0xfe21;
246     enum XK_ISO_Move_Line_Down            = 0xfe22;
247     enum XK_ISO_Partial_Line_Up           = 0xfe23;
248     enum XK_ISO_Partial_Line_Down         = 0xfe24;
249     enum XK_ISO_Partial_Space_Left        = 0xfe25;
250     enum XK_ISO_Partial_Space_Right       = 0xfe26;
251     enum XK_ISO_Set_Margin_Left           = 0xfe27;
252     enum XK_ISO_Set_Margin_Right          = 0xfe28;
253     enum XK_ISO_Release_Margin_Left       = 0xfe29;
254     enum XK_ISO_Release_Margin_Right      = 0xfe2a;
255     enum XK_ISO_Release_Both_Margins      = 0xfe2b;
256     enum XK_ISO_Fast_Cursor_Left          = 0xfe2c;
257     enum XK_ISO_Fast_Cursor_Right         = 0xfe2d;
258     enum XK_ISO_Fast_Cursor_Up            = 0xfe2e;
259     enum XK_ISO_Fast_Cursor_Down          = 0xfe2f;
260     enum XK_ISO_Continuous_Underline      = 0xfe30;
261     enum XK_ISO_Discontinuous_Underline   = 0xfe31;
262     enum XK_ISO_Emphasize                 = 0xfe32;
263     enum XK_ISO_Center_Object             = 0xfe33;
264     enum XK_ISO_Enter                     = 0xfe34;
265 
266     enum XK_dead_grave                    = 0xfe50;
267     enum XK_dead_acute                    = 0xfe51;
268     enum XK_dead_circumflex               = 0xfe52;
269     enum XK_dead_tilde                    = 0xfe53;
270     enum XK_dead_perispomeni              = 0xfe53;  /* alias for dead_tilde */
271     enum XK_dead_macron                   = 0xfe54;
272     enum XK_dead_breve                    = 0xfe55;
273     enum XK_dead_abovedot                 = 0xfe56;
274     enum XK_dead_diaeresis                = 0xfe57;
275     enum XK_dead_abovering                = 0xfe58;
276     enum XK_dead_doubleacute              = 0xfe59;
277     enum XK_dead_caron                    = 0xfe5a;
278     enum XK_dead_cedilla                  = 0xfe5b;
279     enum XK_dead_ogonek                   = 0xfe5c;
280     enum XK_dead_iota                     = 0xfe5d;
281     enum XK_dead_voiced_sound             = 0xfe5e;
282     enum XK_dead_semivoiced_sound         = 0xfe5f;
283     enum XK_dead_belowdot                 = 0xfe60;
284     enum XK_dead_hook                     = 0xfe61;
285     enum XK_dead_horn                     = 0xfe62;
286     enum XK_dead_stroke                   = 0xfe63;
287     enum XK_dead_abovecomma               = 0xfe64;
288     enum XK_dead_psili                    = 0xfe64;  /* alias for dead_abovecomma */
289     enum XK_dead_abovereversedcomma       = 0xfe65;
290     enum XK_dead_dasia                    = 0xfe65;  /* alias for dead_abovereversedcomma */
291     enum XK_dead_doublegrave              = 0xfe66;
292     enum XK_dead_belowring                = 0xfe67;
293     enum XK_dead_belowmacron              = 0xfe68;
294     enum XK_dead_belowcircumflex          = 0xfe69;
295     enum XK_dead_belowtilde               = 0xfe6a;
296     enum XK_dead_belowbreve               = 0xfe6b;
297     enum XK_dead_belowdiaeresis           = 0xfe6c;
298     enum XK_dead_invertedbreve            = 0xfe6d;
299     enum XK_dead_belowcomma               = 0xfe6e;
300     enum XK_dead_currency                 = 0xfe6f;
301 
302     /* dead vowels for universal syllable entry */
303     enum XK_dead_a                        = 0xfe80;
304     enum XK_dead_A                        = 0xfe81;
305     enum XK_dead_e                        = 0xfe82;
306     enum XK_dead_E                        = 0xfe83;
307     enum XK_dead_i                        = 0xfe84;
308     enum XK_dead_I                        = 0xfe85;
309     enum XK_dead_o                        = 0xfe86;
310     enum XK_dead_O                        = 0xfe87;
311     enum XK_dead_u                        = 0xfe88;
312     enum XK_dead_U                        = 0xfe89;
313     enum XK_dead_small_schwa              = 0xfe8a;
314     enum XK_dead_capital_schwa            = 0xfe8b;
315 
316     enum XK_First_Virtual_Screen          = 0xfed0;
317     enum XK_Prev_Virtual_Screen           = 0xfed1;
318     enum XK_Next_Virtual_Screen           = 0xfed2;
319     enum XK_Last_Virtual_Screen           = 0xfed4;
320     enum XK_Terminate_Server              = 0xfed5;
321 
322     enum XK_AccessX_Enable                = 0xfe70;
323     enum XK_AccessX_Feedback_Enable       = 0xfe71;
324     enum XK_RepeatKeys_Enable             = 0xfe72;
325     enum XK_SlowKeys_Enable               = 0xfe73;
326     enum XK_BounceKeys_Enable             = 0xfe74;
327     enum XK_StickyKeys_Enable             = 0xfe75;
328     enum XK_MouseKeys_Enable              = 0xfe76;
329     enum XK_MouseKeys_Accel_Enable        = 0xfe77;
330     enum XK_Overlay1_Enable               = 0xfe78;
331     enum XK_Overlay2_Enable               = 0xfe79;
332     enum XK_AudibleBell_Enable            = 0xfe7a;
333 
334     enum XK_Pointer_Left                  = 0xfee0;
335     enum XK_Pointer_Right                 = 0xfee1;
336     enum XK_Pointer_Up                    = 0xfee2;
337     enum XK_Pointer_Down                  = 0xfee3;
338     enum XK_Pointer_UpLeft                = 0xfee4;
339     enum XK_Pointer_UpRight               = 0xfee5;
340     enum XK_Pointer_DownLeft              = 0xfee6;
341     enum XK_Pointer_DownRight             = 0xfee7;
342     enum XK_Pointer_Button_Dflt           = 0xfee8;
343     enum XK_Pointer_Button1               = 0xfee9;
344     enum XK_Pointer_Button2               = 0xfeea;
345     enum XK_Pointer_Button3               = 0xfeeb;
346     enum XK_Pointer_Button4               = 0xfeec;
347     enum XK_Pointer_Button5               = 0xfeed;
348     enum XK_Pointer_DblClick_Dflt         = 0xfeee;
349     enum XK_Pointer_DblClick1             = 0xfeef;
350     enum XK_Pointer_DblClick2             = 0xfef0;
351     enum XK_Pointer_DblClick3             = 0xfef1;
352     enum XK_Pointer_DblClick4             = 0xfef2;
353     enum XK_Pointer_DblClick5             = 0xfef3;
354     enum XK_Pointer_Drag_Dflt             = 0xfef4;
355     enum XK_Pointer_Drag1                 = 0xfef5;
356     enum XK_Pointer_Drag2                 = 0xfef6;
357     enum XK_Pointer_Drag3                 = 0xfef7;
358     enum XK_Pointer_Drag4                 = 0xfef8;
359     enum XK_Pointer_Drag5                 = 0xfefd;
360 
361     enum XK_Pointer_EnableKeys            = 0xfef9;
362     enum XK_Pointer_Accelerate            = 0xfefa;
363     enum XK_Pointer_DfltBtnNext           = 0xfefb;
364     enum XK_Pointer_DfltBtnPrev           = 0xfefc;
365 }
366 /*
367  * 3270 Terminal Keys
368  * Byte 3 = 0xfd
369  */
370 static if( XK_3270 ){
371 
372     enum XK_3270_Duplicate                = 0xfd01;
373     enum XK_3270_FieldMark                = 0xfd02;
374     enum XK_3270_Right2                   = 0xfd03;
375     enum XK_3270_Left2                    = 0xfd04;
376     enum XK_3270_BackTab                  = 0xfd05;
377     enum XK_3270_EraseEOF                 = 0xfd06;
378     enum XK_3270_EraseInput               = 0xfd07;
379     enum XK_3270_Reset                    = 0xfd08;
380     enum XK_3270_Quit                     = 0xfd09;
381     enum XK_3270_PA1                      = 0xfd0a;
382     enum XK_3270_PA2                      = 0xfd0b;
383     enum XK_3270_PA3                      = 0xfd0c;
384     enum XK_3270_Test                     = 0xfd0d;
385     enum XK_3270_Attn                     = 0xfd0e;
386     enum XK_3270_CursorBlink              = 0xfd0f;
387     enum XK_3270_AltCursor                = 0xfd10;
388     enum XK_3270_KeyClick                 = 0xfd11;
389     enum XK_3270_Jump                     = 0xfd12;
390     enum XK_3270_Ident                    = 0xfd13;
391     enum XK_3270_Rule                     = 0xfd14;
392     enum XK_3270_Copy                     = 0xfd15;
393     enum XK_3270_Play                     = 0xfd16;
394     enum XK_3270_Setup                    = 0xfd17;
395     enum XK_3270_Record                   = 0xfd18;
396     enum XK_3270_ChangeScreen             = 0xfd19;
397     enum XK_3270_DeleteWord               = 0xfd1a;
398     enum XK_3270_ExSelect                 = 0xfd1b;
399     enum XK_3270_CursorSelect             = 0xfd1c;
400     enum XK_3270_PrintScreen              = 0xfd1d;
401     enum XK_3270_Enter                    = 0xfd1e;
402 }
403 /*
404  * Latin 1
405  * (ISO/IEC 8859-1 = Unicode U+0020..U+00FF)
406  * Byte 3 = 0
407  */
408 static if( XK_LATIN1 ){
409     enum XK_space                         = 0x0020;  /* U+0020 SPACE */
410     enum XK_exclam                        = 0x0021;  /* U+0021 EXCLAMATION MARK */
411     enum XK_quotedbl                      = 0x0022;  /* U+0022 QUOTATION MARK */
412     enum XK_numbersign                    = 0x0023;  /* U+0023 NUMBER SIGN */
413     enum XK_dollar                        = 0x0024;  /* U+0024 DOLLAR SIGN */
414     enum XK_percent                       = 0x0025;  /* U+0025 PERCENT SIGN */
415     enum XK_ampersand                     = 0x0026;  /* U+0026 AMPERSAND */
416     enum XK_apostrophe                    = 0x0027;  /* U+0027 APOSTROPHE */
417     enum XK_quoteright                    = 0x0027;  /* deprecated */
418     enum XK_parenleft                     = 0x0028;  /* U+0028 LEFT PARENTHESIS */
419     enum XK_parenright                    = 0x0029;  /* U+0029 RIGHT PARENTHESIS */
420     enum XK_asterisk                      = 0x002a;  /* U+002A ASTERISK */
421     enum XK_plus                          = 0x002b;  /* U+002B PLUS SIGN */
422     enum XK_comma                         = 0x002c;  /* U+002C COMMA */
423     enum XK_minus                         = 0x002d;  /* U+002D HYPHEN-MINUS */
424     enum XK_period                        = 0x002e;  /* U+002E FULL STOP */
425     enum XK_slash                         = 0x002f;  /* U+002F SOLIDUS */
426     enum XK_0                             = 0x0030;  /* U+0030 DIGIT ZERO */
427     enum XK_1                             = 0x0031;  /* U+0031 DIGIT ONE */
428     enum XK_2                             = 0x0032;  /* U+0032 DIGIT TWO */
429     enum XK_3                             = 0x0033;  /* U+0033 DIGIT THREE */
430     enum XK_4                             = 0x0034;  /* U+0034 DIGIT FOUR */
431     enum XK_5                             = 0x0035;  /* U+0035 DIGIT FIVE */
432     enum XK_6                             = 0x0036;  /* U+0036 DIGIT SIX */
433     enum XK_7                             = 0x0037;  /* U+0037 DIGIT SEVEN */
434     enum XK_8                             = 0x0038;  /* U+0038 DIGIT EIGHT */
435     enum XK_9                             = 0x0039;  /* U+0039 DIGIT NINE */
436     enum XK_colon                         = 0x003a;  /* U+003A COLON */
437     enum XK_semicolon                     = 0x003b;  /* U+003B SEMICOLON */
438     enum XK_less                          = 0x003c;  /* U+003C LESS-THAN SIGN */
439     enum XK_equal                         = 0x003d;  /* U+003D EQUALS SIGN */
440     enum XK_greater                       = 0x003e;  /* U+003E GREATER-THAN SIGN */
441     enum XK_question                      = 0x003f;  /* U+003F QUESTION MARK */
442     enum XK_at                            = 0x0040;  /* U+0040 COMMERCIAL AT */
443     enum XK_A                             = 0x0041;  /* U+0041 LATIN CAPITAL LETTER A */
444     enum XK_B                             = 0x0042;  /* U+0042 LATIN CAPITAL LETTER B */
445     enum XK_C                             = 0x0043;  /* U+0043 LATIN CAPITAL LETTER C */
446     enum XK_D                             = 0x0044;  /* U+0044 LATIN CAPITAL LETTER D */
447     enum XK_E                             = 0x0045;  /* U+0045 LATIN CAPITAL LETTER E */
448     enum XK_F                             = 0x0046;  /* U+0046 LATIN CAPITAL LETTER F */
449     enum XK_G                             = 0x0047;  /* U+0047 LATIN CAPITAL LETTER G */
450     enum XK_H                             = 0x0048;  /* U+0048 LATIN CAPITAL LETTER H */
451     enum XK_I                             = 0x0049;  /* U+0049 LATIN CAPITAL LETTER I */
452     enum XK_J                             = 0x004a;  /* U+004A LATIN CAPITAL LETTER J */
453     enum XK_K                             = 0x004b;  /* U+004B LATIN CAPITAL LETTER K */
454     enum XK_L                             = 0x004c;  /* U+004C LATIN CAPITAL LETTER L */
455     enum XK_M                             = 0x004d;  /* U+004D LATIN CAPITAL LETTER M */
456     enum XK_N                             = 0x004e;  /* U+004E LATIN CAPITAL LETTER N */
457     enum XK_O                             = 0x004f;  /* U+004F LATIN CAPITAL LETTER O */
458     enum XK_P                             = 0x0050;  /* U+0050 LATIN CAPITAL LETTER P */
459     enum XK_Q                             = 0x0051;  /* U+0051 LATIN CAPITAL LETTER Q */
460     enum XK_R                             = 0x0052;  /* U+0052 LATIN CAPITAL LETTER R */
461     enum XK_S                             = 0x0053;  /* U+0053 LATIN CAPITAL LETTER S */
462     enum XK_T                             = 0x0054;  /* U+0054 LATIN CAPITAL LETTER T */
463     enum XK_U                             = 0x0055;  /* U+0055 LATIN CAPITAL LETTER U */
464     enum XK_V                             = 0x0056;  /* U+0056 LATIN CAPITAL LETTER V */
465     enum XK_W                             = 0x0057;  /* U+0057 LATIN CAPITAL LETTER W */
466     enum XK_X                             = 0x0058;  /* U+0058 LATIN CAPITAL LETTER X */
467     enum XK_Y                             = 0x0059;  /* U+0059 LATIN CAPITAL LETTER Y */
468     enum XK_Z                             = 0x005a;  /* U+005A LATIN CAPITAL LETTER Z */
469     enum XK_bracketleft                   = 0x005b;  /* U+005B LEFT SQUARE BRACKET */
470     enum XK_backslash                     = 0x005c;  /* U+005C REVERSE SOLIDUS */
471     enum XK_bracketright                  = 0x005d;  /* U+005D RIGHT SQUARE BRACKET */
472     enum XK_asciicircum                   = 0x005e;  /* U+005E CIRCUMFLEX ACCENT */
473     enum XK_underscore                    = 0x005f;  /* U+005F LOW LINE */
474     enum XK_grave                         = 0x0060;  /* U+0060 GRAVE ACCENT */
475     enum XK_quoteleft                     = 0x0060;  /* deprecated */
476     enum XK_a                             = 0x0061;  /* U+0061 LATIN SMALL LETTER A */
477     enum XK_b                             = 0x0062;  /* U+0062 LATIN SMALL LETTER B */
478     enum XK_c                             = 0x0063;  /* U+0063 LATIN SMALL LETTER C */
479     enum XK_d                             = 0x0064;  /* U+0064 LATIN SMALL LETTER D */
480     enum XK_e                             = 0x0065;  /* U+0065 LATIN SMALL LETTER E */
481     enum XK_f                             = 0x0066;  /* U+0066 LATIN SMALL LETTER F */
482     enum XK_g                             = 0x0067;  /* U+0067 LATIN SMALL LETTER G */
483     enum XK_h                             = 0x0068;  /* U+0068 LATIN SMALL LETTER H */
484     enum XK_i                             = 0x0069;  /* U+0069 LATIN SMALL LETTER I */
485     enum XK_j                             = 0x006a;  /* U+006A LATIN SMALL LETTER J */
486     enum XK_k                             = 0x006b;  /* U+006B LATIN SMALL LETTER K */
487     enum XK_l                             = 0x006c;  /* U+006C LATIN SMALL LETTER L */
488     enum XK_m                             = 0x006d;  /* U+006D LATIN SMALL LETTER M */
489     enum XK_n                             = 0x006e;  /* U+006E LATIN SMALL LETTER N */
490     enum XK_o                             = 0x006f;  /* U+006F LATIN SMALL LETTER O */
491     enum XK_p                             = 0x0070;  /* U+0070 LATIN SMALL LETTER P */
492     enum XK_q                             = 0x0071;  /* U+0071 LATIN SMALL LETTER Q */
493     enum XK_r                             = 0x0072;  /* U+0072 LATIN SMALL LETTER R */
494     enum XK_s                             = 0x0073;  /* U+0073 LATIN SMALL LETTER S */
495     enum XK_t                             = 0x0074;  /* U+0074 LATIN SMALL LETTER T */
496     enum XK_u                             = 0x0075;  /* U+0075 LATIN SMALL LETTER U */
497     enum XK_v                             = 0x0076;  /* U+0076 LATIN SMALL LETTER V */
498     enum XK_w                             = 0x0077;  /* U+0077 LATIN SMALL LETTER W */
499     enum XK_x                             = 0x0078;  /* U+0078 LATIN SMALL LETTER X */
500     enum XK_y                             = 0x0079;  /* U+0079 LATIN SMALL LETTER Y */
501     enum XK_z                             = 0x007a;  /* U+007A LATIN SMALL LETTER Z */
502     enum XK_braceleft                     = 0x007b;  /* U+007B LEFT CURLY BRACKET */
503     enum XK_bar                           = 0x007c;  /* U+007C VERTICAL LINE */
504     enum XK_braceright                    = 0x007d;  /* U+007D RIGHT CURLY BRACKET */
505     enum XK_asciitilde                    = 0x007e;  /* U+007E TILDE */
506 
507     enum XK_nobreakspace                  = 0x00a0;  /* U+00A0 NO-//~ break SPACE */
508     enum XK_exclamdown                    = 0x00a1;  /* U+00A1 INVERTED EXCLAMATION MARK */
509     enum XK_cent                          = 0x00a2;  /* U+00A2 CENT SIGN */
510     enum XK_sterling                      = 0x00a3;  /* U+00A3 POUND SIGN */
511     enum XK_currency                      = 0x00a4;  /* U+00A4 CURRENCY SIGN */
512     enum XK_yen                           = 0x00a5;  /* U+00A5 YEN SIGN */
513     enum XK_brokenbar                     = 0x00a6;  /* U+00A6 BROKEN BAR */
514     enum XK_section                       = 0x00a7;  /* U+00A7 SECTION SIGN */
515     enum XK_diaeresis                     = 0x00a8;  /* U+00A8 DIAERESIS */
516     enum XK_copyright                     = 0x00a9;  /* U+00A9 COPYRIGHT SIGN */
517     enum XK_ordfeminine                   = 0x00aa;  /* U+00AA FEMININE ORDINAL INDICATOR */
518     enum XK_guillemotleft                 = 0x00ab;  /* U+00AB LEFT-POINTING DOUBLE ANGLE QUOTATION MARK */
519     enum XK_notsign                       = 0x00ac;  /* U+00AC NOT SIGN */
520     enum XK_hyphen                        = 0x00ad;  /* U+00AD SOFT HYPHEN */
521     enum XK_registered                    = 0x00ae;  /* U+00AE REGISTERED SIGN */
522     enum XK_macron                        = 0x00af;  /* U+00AF MACRON */
523     enum XK_degree                        = 0x00b0;  /* U+00B0 DEGREE SIGN */
524     enum XK_plusminus                     = 0x00b1;  /* U+00B1 PLUS-MINUS SIGN */
525     enum XK_twosuperior                   = 0x00b2;  /* U+00B2 SUPERSCRIPT TWO */
526     enum XK_threesuperior                 = 0x00b3;  /* U+00B3 SUPERSCRIPT THREE */
527     enum XK_acute                         = 0x00b4;  /* U+00B4 ACUTE ACCENT */
528     enum XK_mu                            = 0x00b5;  /* U+00B5 MICRO SIGN */
529     enum XK_paragraph                     = 0x00b6;  /* U+00B6 PILCROW SIGN */
530     enum XK_periodcentered                = 0x00b7;  /* U+00B7 MIDDLE DOT */
531     enum XK_cedilla                       = 0x00b8;  /* U+00B8 CEDILLA */
532     enum XK_onesuperior                   = 0x00b9;  /* U+00B9 SUPERSCRIPT ONE */
533     enum XK_masculine                     = 0x00ba;  /* U+00BA MASCULINE ORDINAL INDICATOR */
534     enum XK_guillemotright                = 0x00bb;  /* U+00BB RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK */
535     enum XK_onequarter                    = 0x00bc;  /* U+00BC VULGAR FRACTION ONE QUARTER */
536     enum XK_onehalf                       = 0x00bd;  /* U+00BD VULGAR FRACTION ONE HALF */
537     enum XK_threequarters                 = 0x00be;  /* U+00BE VULGAR FRACTION THREE QUARTERS */
538     enum XK_questiondown                  = 0x00bf;  /* U+00BF INVERTED QUESTION MARK */
539     enum XK_Agrave                        = 0x00c0;  /* U+00C0 LATIN CAPITAL LETTER A WITH GRAVE */
540     enum XK_Aacute                        = 0x00c1;  /* U+00C1 LATIN CAPITAL LETTER A WITH ACUTE */
541     enum XK_Acircumflex                   = 0x00c2;  /* U+00C2 LATIN CAPITAL LETTER A WITH CIRCUMFLEX */
542     enum XK_Atilde                        = 0x00c3;  /* U+00C3 LATIN CAPITAL LETTER A WITH TILDE */
543     enum XK_Adiaeresis                    = 0x00c4;  /* U+00C4 LATIN CAPITAL LETTER A WITH DIAERESIS */
544     enum XK_Aring                         = 0x00c5;  /* U+00C5 LATIN CAPITAL LETTER A WITH RING ABOVE */
545     enum XK_AE                            = 0x00c6;  /* U+00C6 LATIN CAPITAL LETTER AE */
546     enum XK_Ccedilla                      = 0x00c7;  /* U+00C7 LATIN CAPITAL LETTER C WITH CEDILLA */
547     enum XK_Egrave                        = 0x00c8;  /* U+00C8 LATIN CAPITAL LETTER E WITH GRAVE */
548     enum XK_Eacute                        = 0x00c9;  /* U+00C9 LATIN CAPITAL LETTER E WITH ACUTE */
549     enum XK_Ecircumflex                   = 0x00ca;  /* U+00CA LATIN CAPITAL LETTER E WITH CIRCUMFLEX */
550     enum XK_Ediaeresis                    = 0x00cb;  /* U+00CB LATIN CAPITAL LETTER E WITH DIAERESIS */
551     enum XK_Igrave                        = 0x00cc;  /* U+00CC LATIN CAPITAL LETTER I WITH GRAVE */
552     enum XK_Iacute                        = 0x00cd;  /* U+00CD LATIN CAPITAL LETTER I WITH ACUTE */
553     enum XK_Icircumflex                   = 0x00ce;  /* U+00CE LATIN CAPITAL LETTER I WITH CIRCUMFLEX */
554     enum XK_Idiaeresis                    = 0x00cf;  /* U+00CF LATIN CAPITAL LETTER I WITH DIAERESIS */
555     enum XK_ETH                           = 0x00d0;  /* U+00D0 LATIN CAPITAL LETTER ETH */
556     enum XK_Eth                           = 0x00d0;  /* deprecated */
557     enum XK_Ntilde                        = 0x00d1;  /* U+00D1 LATIN CAPITAL LETTER N WITH TILDE */
558     enum XK_Ograve                        = 0x00d2;  /* U+00D2 LATIN CAPITAL LETTER O WITH GRAVE */
559     enum XK_Oacute                        = 0x00d3;  /* U+00D3 LATIN CAPITAL LETTER O WITH ACUTE */
560     enum XK_Ocircumflex                   = 0x00d4;  /* U+00D4 LATIN CAPITAL LETTER O WITH CIRCUMFLEX */
561     enum XK_Otilde                        = 0x00d5;  /* U+00D5 LATIN CAPITAL LETTER O WITH TILDE */
562     enum XK_Odiaeresis                    = 0x00d6;  /* U+00D6 LATIN CAPITAL LETTER O WITH DIAERESIS */
563     enum XK_multiply                      = 0x00d7;  /* U+00D7 MULTIPLICATION SIGN */
564     enum XK_Oslash                        = 0x00d8;  /* U+00D8 LATIN CAPITAL LETTER O WITH STROKE */
565     enum XK_Ooblique                      = 0x00d8;  /* U+00D8 LATIN CAPITAL LETTER O WITH STROKE */
566     enum XK_Ugrave                        = 0x00d9;  /* U+00D9 LATIN CAPITAL LETTER U WITH GRAVE */
567     enum XK_Uacute                        = 0x00da;  /* U+00DA LATIN CAPITAL LETTER U WITH ACUTE */
568     enum XK_Ucircumflex                   = 0x00db;  /* U+00DB LATIN CAPITAL LETTER U WITH CIRCUMFLEX */
569     enum XK_Udiaeresis                    = 0x00dc;  /* U+00DC LATIN CAPITAL LETTER U WITH DIAERESIS */
570     enum XK_Yacute                        = 0x00dd;  /* U+00DD LATIN CAPITAL LETTER Y WITH ACUTE */
571     enum XK_THORN                         = 0x00de;  /* U+00DE LATIN CAPITAL LETTER THORN */
572     enum XK_Thorn                         = 0x00de;  /* deprecated */
573     enum XK_ssharp                        = 0x00df;  /* U+00DF LATIN SMALL LETTER SHARP S */
574     enum XK_agrave                        = 0x00e0;  /* U+00E0 LATIN SMALL LETTER A WITH GRAVE */
575     enum XK_aacute                        = 0x00e1;  /* U+00E1 LATIN SMALL LETTER A WITH ACUTE */
576     enum XK_acircumflex                   = 0x00e2;  /* U+00E2 LATIN SMALL LETTER A WITH CIRCUMFLEX */
577     enum XK_atilde                        = 0x00e3;  /* U+00E3 LATIN SMALL LETTER A WITH TILDE */
578     enum XK_adiaeresis                    = 0x00e4;  /* U+00E4 LATIN SMALL LETTER A WITH DIAERESIS */
579     enum XK_aring                         = 0x00e5;  /* U+00E5 LATIN SMALL LETTER A WITH RING ABOVE */
580     enum XK_ae                            = 0x00e6;  /* U+00E6 LATIN SMALL LETTER AE */
581     enum XK_ccedilla                      = 0x00e7;  /* U+00E7 LATIN SMALL LETTER C WITH CEDILLA */
582     enum XK_egrave                        = 0x00e8;  /* U+00E8 LATIN SMALL LETTER E WITH GRAVE */
583     enum XK_eacute                        = 0x00e9;  /* U+00E9 LATIN SMALL LETTER E WITH ACUTE */
584     enum XK_ecircumflex                   = 0x00ea;  /* U+00EA LATIN SMALL LETTER E WITH CIRCUMFLEX */
585     enum XK_ediaeresis                    = 0x00eb;  /* U+00EB LATIN SMALL LETTER E WITH DIAERESIS */
586     enum XK_igrave                        = 0x00ec;  /* U+00EC LATIN SMALL LETTER I WITH GRAVE */
587     enum XK_iacute                        = 0x00ed;  /* U+00ED LATIN SMALL LETTER I WITH ACUTE */
588     enum XK_icircumflex                   = 0x00ee;  /* U+00EE LATIN SMALL LETTER I WITH CIRCUMFLEX */
589     enum XK_idiaeresis                    = 0x00ef;  /* U+00EF LATIN SMALL LETTER I WITH DIAERESIS */
590     enum XK_eth                           = 0x00f0;  /* U+00F0 LATIN SMALL LETTER ETH */
591     enum XK_ntilde                        = 0x00f1;  /* U+00F1 LATIN SMALL LETTER N WITH TILDE */
592     enum XK_ograve                        = 0x00f2;  /* U+00F2 LATIN SMALL LETTER O WITH GRAVE */
593     enum XK_oacute                        = 0x00f3;  /* U+00F3 LATIN SMALL LETTER O WITH ACUTE */
594     enum XK_ocircumflex                   = 0x00f4;  /* U+00F4 LATIN SMALL LETTER O WITH CIRCUMFLEX */
595     enum XK_otilde                        = 0x00f5;  /* U+00F5 LATIN SMALL LETTER O WITH TILDE */
596     enum XK_odiaeresis                    = 0x00f6;  /* U+00F6 LATIN SMALL LETTER O WITH DIAERESIS */
597     enum XK_division                      = 0x00f7;  /* U+00F7 DIVISION SIGN */
598     enum XK_oslash                        = 0x00f8;  /* U+00F8 LATIN SMALL LETTER O WITH STROKE */
599     enum XK_ooblique                      = 0x00f8;  /* U+00F8 LATIN SMALL LETTER O WITH STROKE */
600     enum XK_ugrave                        = 0x00f9;  /* U+00F9 LATIN SMALL LETTER U WITH GRAVE */
601     enum XK_uacute                        = 0x00fa;  /* U+00FA LATIN SMALL LETTER U WITH ACUTE */
602     enum XK_ucircumflex                   = 0x00fb;  /* U+00FB LATIN SMALL LETTER U WITH CIRCUMFLEX */
603     enum XK_udiaeresis                    = 0x00fc;  /* U+00FC LATIN SMALL LETTER U WITH DIAERESIS */
604     enum XK_yacute                        = 0x00fd;  /* U+00FD LATIN SMALL LETTER Y WITH ACUTE */
605     enum XK_thorn                         = 0x00fe;  /* U+00FE LATIN SMALL LETTER THORN */
606     enum XK_ydiaeresis                    = 0x00ff;  /* U+00FF LATIN SMALL LETTER Y WITH DIAERESIS */
607 }
608 /*
609  * Latin 2
610  * Byte 3 = 1
611  */
612 static if( XK_LATIN2 ){
613     enum XK_Aogonek                       = 0x01a1;  /* U+0104 LATIN CAPITAL LETTER A WITH OGONEK */
614     enum XK_breve                         = 0x01a2;  /* U+02D8 BREVE */
615     enum XK_Lstroke                       = 0x01a3;  /* U+0141 LATIN CAPITAL LETTER L WITH STROKE */
616     enum XK_Lcaron                        = 0x01a5;  /* U+013D LATIN CAPITAL LETTER L WITH CARON */
617     enum XK_Sacute                        = 0x01a6;  /* U+015A LATIN CAPITAL LETTER S WITH ACUTE */
618     enum XK_Scaron                        = 0x01a9;  /* U+0160 LATIN CAPITAL LETTER S WITH CARON */
619     enum XK_Scedilla                      = 0x01aa;  /* U+015E LATIN CAPITAL LETTER S WITH CEDILLA */
620     enum XK_Tcaron                        = 0x01ab;  /* U+0164 LATIN CAPITAL LETTER T WITH CARON */
621     enum XK_Zacute                        = 0x01ac;  /* U+0179 LATIN CAPITAL LETTER Z WITH ACUTE */
622     enum XK_Zcaron                        = 0x01ae;  /* U+017D LATIN CAPITAL LETTER Z WITH CARON */
623     enum XK_Zabovedot                     = 0x01af;  /* U+017B LATIN CAPITAL LETTER Z WITH DOT ABOVE */
624     enum XK_aogonek                       = 0x01b1;  /* U+0105 LATIN SMALL LETTER A WITH OGONEK */
625     enum XK_ogonek                        = 0x01b2;  /* U+02DB OGONEK */
626     enum XK_lstroke                       = 0x01b3;  /* U+0142 LATIN SMALL LETTER L WITH STROKE */
627     enum XK_lcaron                        = 0x01b5;  /* U+013E LATIN SMALL LETTER L WITH CARON */
628     enum XK_sacute                        = 0x01b6;  /* U+015B LATIN SMALL LETTER S WITH ACUTE */
629     enum XK_caron                         = 0x01b7;  /* U+02C7 CARON */
630     enum XK_scaron                        = 0x01b9;  /* U+0161 LATIN SMALL LETTER S WITH CARON */
631     enum XK_scedilla                      = 0x01ba;  /* U+015F LATIN SMALL LETTER S WITH CEDILLA */
632     enum XK_tcaron                        = 0x01bb;  /* U+0165 LATIN SMALL LETTER T WITH CARON */
633     enum XK_zacute                        = 0x01bc;  /* U+017A LATIN SMALL LETTER Z WITH ACUTE */
634     enum XK_doubleacute                   = 0x01bd;  /* U+02DD DOUBLE ACUTE ACCENT */
635     enum XK_zcaron                        = 0x01be;  /* U+017E LATIN SMALL LETTER Z WITH CARON */
636     enum XK_zabovedot                     = 0x01bf;  /* U+017C LATIN SMALL LETTER Z WITH DOT ABOVE */
637     enum XK_Racute                        = 0x01c0;  /* U+0154 LATIN CAPITAL LETTER R WITH ACUTE */
638     enum XK_Abreve                        = 0x01c3;  /* U+0102 LATIN CAPITAL LETTER A WITH BREVE */
639     enum XK_Lacute                        = 0x01c5;  /* U+0139 LATIN CAPITAL LETTER L WITH ACUTE */
640     enum XK_Cacute                        = 0x01c6;  /* U+0106 LATIN CAPITAL LETTER C WITH ACUTE */
641     enum XK_Ccaron                        = 0x01c8;  /* U+010C LATIN CAPITAL LETTER C WITH CARON */
642     enum XK_Eogonek                       = 0x01ca;  /* U+0118 LATIN CAPITAL LETTER E WITH OGONEK */
643     enum XK_Ecaron                        = 0x01cc;  /* U+011A LATIN CAPITAL LETTER E WITH CARON */
644     enum XK_Dcaron                        = 0x01cf;  /* U+010E LATIN CAPITAL LETTER D WITH CARON */
645     enum XK_Dstroke                       = 0x01d0;  /* U+0110 LATIN CAPITAL LETTER D WITH STROKE */
646     enum XK_Nacute                        = 0x01d1;  /* U+0143 LATIN CAPITAL LETTER N WITH ACUTE */
647     enum XK_Ncaron                        = 0x01d2;  /* U+0147 LATIN CAPITAL LETTER N WITH CARON */
648     enum XK_Odoubleacute                  = 0x01d5;  /* U+0150 LATIN CAPITAL LETTER O WITH DOUBLE ACUTE */
649     enum XK_Rcaron                        = 0x01d8;  /* U+0158 LATIN CAPITAL LETTER R WITH CARON */
650     enum XK_Uring                         = 0x01d9;  /* U+016E LATIN CAPITAL LETTER U WITH RING ABOVE */
651     enum XK_Udoubleacute                  = 0x01db;  /* U+0170 LATIN CAPITAL LETTER U WITH DOUBLE ACUTE */
652     enum XK_Tcedilla                      = 0x01de;  /* U+0162 LATIN CAPITAL LETTER T WITH CEDILLA */
653     enum XK_racute                        = 0x01e0;  /* U+0155 LATIN SMALL LETTER R WITH ACUTE */
654     enum XK_abreve                        = 0x01e3;  /* U+0103 LATIN SMALL LETTER A WITH BREVE */
655     enum XK_lacute                        = 0x01e5;  /* U+013A LATIN SMALL LETTER L WITH ACUTE */
656     enum XK_cacute                        = 0x01e6;  /* U+0107 LATIN SMALL LETTER C WITH ACUTE */
657     enum XK_ccaron                        = 0x01e8;  /* U+010D LATIN SMALL LETTER C WITH CARON */
658     enum XK_eogonek                       = 0x01ea;  /* U+0119 LATIN SMALL LETTER E WITH OGONEK */
659     enum XK_ecaron                        = 0x01ec;  /* U+011B LATIN SMALL LETTER E WITH CARON */
660     enum XK_dcaron                        = 0x01ef;  /* U+010F LATIN SMALL LETTER D WITH CARON */
661     enum XK_dstroke                       = 0x01f0;  /* U+0111 LATIN SMALL LETTER D WITH STROKE */
662     enum XK_nacute                        = 0x01f1;  /* U+0144 LATIN SMALL LETTER N WITH ACUTE */
663     enum XK_ncaron                        = 0x01f2;  /* U+0148 LATIN SMALL LETTER N WITH CARON */
664     enum XK_odoubleacute                  = 0x01f5;  /* U+0151 LATIN SMALL LETTER O WITH DOUBLE ACUTE */
665     enum XK_rcaron                        = 0x01f8;  /* U+0159 LATIN SMALL LETTER R WITH CARON */
666     enum XK_uring                         = 0x01f9;  /* U+016F LATIN SMALL LETTER U WITH RING ABOVE */
667     enum XK_udoubleacute                  = 0x01fb;  /* U+0171 LATIN SMALL LETTER U WITH DOUBLE ACUTE */
668     enum XK_tcedilla                      = 0x01fe;  /* U+0163 LATIN SMALL LETTER T WITH CEDILLA */
669     enum XK_abovedot                      = 0x01ff;  /* U+02D9 DOT ABOVE */
670 }
671 /*
672  * Latin 3
673  * Byte 3 = 2
674  */
675 static if( XK_LATIN3 ){
676     enum XK_Hstroke                       = 0x02a1;  /* U+0126 LATIN CAPITAL LETTER H WITH STROKE */
677     enum XK_Hcircumflex                   = 0x02a6;  /* U+0124 LATIN CAPITAL LETTER H WITH CIRCUMFLEX */
678     enum XK_Iabovedot                     = 0x02a9;  /* U+0130 LATIN CAPITAL LETTER I WITH DOT ABOVE */
679     enum XK_Gbreve                        = 0x02ab;  /* U+011E LATIN CAPITAL LETTER G WITH BREVE */
680     enum XK_Jcircumflex                   = 0x02ac;  /* U+0134 LATIN CAPITAL LETTER J WITH CIRCUMFLEX */
681     enum XK_hstroke                       = 0x02b1;  /* U+0127 LATIN SMALL LETTER H WITH STROKE */
682     enum XK_hcircumflex                   = 0x02b6;  /* U+0125 LATIN SMALL LETTER H WITH CIRCUMFLEX */
683     enum XK_idotless                      = 0x02b9;  /* U+0131 LATIN SMALL LETTER DOTLESS I */
684     enum XK_gbreve                        = 0x02bb;  /* U+011F LATIN SMALL LETTER G WITH BREVE */
685     enum XK_jcircumflex                   = 0x02bc;  /* U+0135 LATIN SMALL LETTER J WITH CIRCUMFLEX */
686     enum XK_Cabovedot                     = 0x02c5;  /* U+010A LATIN CAPITAL LETTER C WITH DOT ABOVE */
687     enum XK_Ccircumflex                   = 0x02c6;  /* U+0108 LATIN CAPITAL LETTER C WITH CIRCUMFLEX */
688     enum XK_Gabovedot                     = 0x02d5;  /* U+0120 LATIN CAPITAL LETTER G WITH DOT ABOVE */
689     enum XK_Gcircumflex                   = 0x02d8;  /* U+011C LATIN CAPITAL LETTER G WITH CIRCUMFLEX */
690     enum XK_Ubreve                        = 0x02dd;  /* U+016C LATIN CAPITAL LETTER U WITH BREVE */
691     enum XK_Scircumflex                   = 0x02de;  /* U+015C LATIN CAPITAL LETTER S WITH CIRCUMFLEX */
692     enum XK_cabovedot                     = 0x02e5;  /* U+010B LATIN SMALL LETTER C WITH DOT ABOVE */
693     enum XK_ccircumflex                   = 0x02e6;  /* U+0109 LATIN SMALL LETTER C WITH CIRCUMFLEX */
694     enum XK_gabovedot                     = 0x02f5;  /* U+0121 LATIN SMALL LETTER G WITH DOT ABOVE */
695     enum XK_gcircumflex                   = 0x02f8;  /* U+011D LATIN SMALL LETTER G WITH CIRCUMFLEX */
696     enum XK_ubreve                        = 0x02fd;  /* U+016D LATIN SMALL LETTER U WITH BREVE */
697     enum XK_scircumflex                   = 0x02fe;  /* U+015D LATIN SMALL LETTER S WITH CIRCUMFLEX */
698 }
699 
700 /*
701  * Latin 4
702  * Byte 3 = 3
703  */
704 static if( XK_LATIN4 ){
705     enum XK_kra                           = 0x03a2;  /* U+0138 LATIN SMALL LETTER KRA */
706     enum XK_kappa                         = 0x03a2;  /* deprecated */
707     enum XK_Rcedilla                      = 0x03a3;  /* U+0156 LATIN CAPITAL LETTER R WITH CEDILLA */
708     enum XK_Itilde                        = 0x03a5;  /* U+0128 LATIN CAPITAL LETTER I WITH TILDE */
709     enum XK_Lcedilla                      = 0x03a6;  /* U+013B LATIN CAPITAL LETTER L WITH CEDILLA */
710     enum XK_Emacron                       = 0x03aa;  /* U+0112 LATIN CAPITAL LETTER E WITH MACRON */
711     enum XK_Gcedilla                      = 0x03ab;  /* U+0122 LATIN CAPITAL LETTER G WITH CEDILLA */
712     enum XK_Tslash                        = 0x03ac;  /* U+0166 LATIN CAPITAL LETTER T WITH STROKE */
713     enum XK_rcedilla                      = 0x03b3;  /* U+0157 LATIN SMALL LETTER R WITH CEDILLA */
714     enum XK_itilde                        = 0x03b5;  /* U+0129 LATIN SMALL LETTER I WITH TILDE */
715     enum XK_lcedilla                      = 0x03b6;  /* U+013C LATIN SMALL LETTER L WITH CEDILLA */
716     enum XK_emacron                       = 0x03ba;  /* U+0113 LATIN SMALL LETTER E WITH MACRON */
717     enum XK_gcedilla                      = 0x03bb;  /* U+0123 LATIN SMALL LETTER G WITH CEDILLA */
718     enum XK_tslash                        = 0x03bc;  /* U+0167 LATIN SMALL LETTER T WITH STROKE */
719     enum XK_ENG                           = 0x03bd;  /* U+014A LATIN CAPITAL LETTER ENG */
720     enum XK_eng                           = 0x03bf;  /* U+014B LATIN SMALL LETTER ENG */
721     enum XK_Amacron                       = 0x03c0;  /* U+0100 LATIN CAPITAL LETTER A WITH MACRON */
722     enum XK_Iogonek                       = 0x03c7;  /* U+012E LATIN CAPITAL LETTER I WITH OGONEK */
723     enum XK_Eabovedot                     = 0x03cc;  /* U+0116 LATIN CAPITAL LETTER E WITH DOT ABOVE */
724     enum XK_Imacron                       = 0x03cf;  /* U+012A LATIN CAPITAL LETTER I WITH MACRON */
725     enum XK_Ncedilla                      = 0x03d1;  /* U+0145 LATIN CAPITAL LETTER N WITH CEDILLA */
726     enum XK_Omacron                       = 0x03d2;  /* U+014C LATIN CAPITAL LETTER O WITH MACRON */
727     enum XK_Kcedilla                      = 0x03d3;  /* U+0136 LATIN CAPITAL LETTER K WITH CEDILLA */
728     enum XK_Uogonek                       = 0x03d9;  /* U+0172 LATIN CAPITAL LETTER U WITH OGONEK */
729     enum XK_Utilde                        = 0x03dd;  /* U+0168 LATIN CAPITAL LETTER U WITH TILDE */
730     enum XK_Umacron                       = 0x03de;  /* U+016A LATIN CAPITAL LETTER U WITH MACRON */
731     enum XK_amacron                       = 0x03e0;  /* U+0101 LATIN SMALL LETTER A WITH MACRON */
732     enum XK_iogonek                       = 0x03e7;  /* U+012F LATIN SMALL LETTER I WITH OGONEK */
733     enum XK_eabovedot                     = 0x03ec;  /* U+0117 LATIN SMALL LETTER E WITH DOT ABOVE */
734     enum XK_imacron                       = 0x03ef;  /* U+012B LATIN SMALL LETTER I WITH MACRON */
735     enum XK_ncedilla                      = 0x03f1;  /* U+0146 LATIN SMALL LETTER N WITH CEDILLA */
736     enum XK_omacron                       = 0x03f2;  /* U+014D LATIN SMALL LETTER O WITH MACRON */
737     enum XK_kcedilla                      = 0x03f3;  /* U+0137 LATIN SMALL LETTER K WITH CEDILLA */
738     enum XK_uogonek                       = 0x03f9;  /* U+0173 LATIN SMALL LETTER U WITH OGONEK */
739     enum XK_utilde                        = 0x03fd;  /* U+0169 LATIN SMALL LETTER U WITH TILDE */
740     enum XK_umacron                       = 0x03fe;  /* U+016B LATIN SMALL LETTER U WITH MACRON */
741 }
742 
743 /*
744  * Latin 8
745  */
746 static if( XK_LATIN8 ){
747     enum XK_Wcircumflex                = 0x1000174;  /* U+0174 LATIN CAPITAL LETTER W WITH CIRCUMFLEX */
748     enum XK_wcircumflex                = 0x1000175;  /* U+0175 LATIN SMALL LETTER W WITH CIRCUMFLEX */
749     enum XK_Ycircumflex                = 0x1000176;  /* U+0176 LATIN CAPITAL LETTER Y WITH CIRCUMFLEX */
750     enum XK_ycircumflex                = 0x1000177;  /* U+0177 LATIN SMALL LETTER Y WITH CIRCUMFLEX */
751     enum XK_Babovedot                  = 0x1001e02;  /* U+1E02 LATIN CAPITAL LETTER B WITH DOT ABOVE */
752     enum XK_babovedot                  = 0x1001e03;  /* U+1E03 LATIN SMALL LETTER B WITH DOT ABOVE */
753     enum XK_Dabovedot                  = 0x1001e0a;  /* U+1E0A LATIN CAPITAL LETTER D WITH DOT ABOVE */
754     enum XK_dabovedot                  = 0x1001e0b;  /* U+1E0B LATIN SMALL LETTER D WITH DOT ABOVE */
755     enum XK_Fabovedot                  = 0x1001e1e;  /* U+1E1E LATIN CAPITAL LETTER F WITH DOT ABOVE */
756     enum XK_fabovedot                  = 0x1001e1f;  /* U+1E1F LATIN SMALL LETTER F WITH DOT ABOVE */
757     enum XK_Mabovedot                  = 0x1001e40;  /* U+1E40 LATIN CAPITAL LETTER M WITH DOT ABOVE */
758     enum XK_mabovedot                  = 0x1001e41;  /* U+1E41 LATIN SMALL LETTER M WITH DOT ABOVE */
759     enum XK_Pabovedot                  = 0x1001e56;  /* U+1E56 LATIN CAPITAL LETTER P WITH DOT ABOVE */
760     enum XK_pabovedot                  = 0x1001e57;  /* U+1E57 LATIN SMALL LETTER P WITH DOT ABOVE */
761     enum XK_Sabovedot                  = 0x1001e60;  /* U+1E60 LATIN CAPITAL LETTER S WITH DOT ABOVE */
762     enum XK_sabovedot                  = 0x1001e61;  /* U+1E61 LATIN SMALL LETTER S WITH DOT ABOVE */
763     enum XK_Tabovedot                  = 0x1001e6a;  /* U+1E6A LATIN CAPITAL LETTER T WITH DOT ABOVE */
764     enum XK_tabovedot                  = 0x1001e6b;  /* U+1E6B LATIN SMALL LETTER T WITH DOT ABOVE */
765     enum XK_Wgrave                     = 0x1001e80;  /* U+1E80 LATIN CAPITAL LETTER W WITH GRAVE */
766     enum XK_wgrave                     = 0x1001e81;  /* U+1E81 LATIN SMALL LETTER W WITH GRAVE */
767     enum XK_Wacute                     = 0x1001e82;  /* U+1E82 LATIN CAPITAL LETTER W WITH ACUTE */
768     enum XK_wacute                     = 0x1001e83;  /* U+1E83 LATIN SMALL LETTER W WITH ACUTE */
769     enum XK_Wdiaeresis                 = 0x1001e84;  /* U+1E84 LATIN CAPITAL LETTER W WITH DIAERESIS */
770     enum XK_wdiaeresis                 = 0x1001e85;  /* U+1E85 LATIN SMALL LETTER W WITH DIAERESIS */
771     enum XK_Ygrave                     = 0x1001ef2;  /* U+1EF2 LATIN CAPITAL LETTER Y WITH GRAVE */
772     enum XK_ygrave                     = 0x1001ef3;  /* U+1EF3 LATIN SMALL LETTER Y WITH GRAVE */
773 }
774 /*
775  * Latin 9
776  * Byte 3 = 0x13
777  */
778 static if( XK_LATIN9 ){
779     enum XK_OE                            = 0x13bc;  /* U+0152 LATIN CAPITAL LIGATURE OE */
780     enum XK_oe                            = 0x13bd;  /* U+0153 LATIN SMALL LIGATURE OE */
781     enum XK_Ydiaeresis                    = 0x13be;  /* U+0178 LATIN CAPITAL LETTER Y WITH DIAERESIS */
782 }
783 /*
784  * Katakana
785  * Byte 3 = 4
786  */
787 static if( XK_KATAKANA ){
788     enum XK_overline                      = 0x047e;  /* U+203E OVERLINE */
789     enum XK_kana_fullstop                 = 0x04a1;  /* U+3002 IDEOGRAPHIC FULL STOP */
790     enum XK_kana_openingbracket           = 0x04a2;  /* U+300C LEFT CORNER BRACKET */
791     enum XK_kana_closingbracket           = 0x04a3;  /* U+300D RIGHT CORNER BRACKET */
792     enum XK_kana_comma                    = 0x04a4;  /* U+3001 IDEOGRAPHIC COMMA */
793     enum XK_kana_conjunctive              = 0x04a5;  /* U+30FB KATAKANA MIDDLE DOT */
794     enum XK_kana_middledot                = 0x04a5;  /* deprecated */
795     enum XK_kana_WO                       = 0x04a6;  /* U+30F2 KATAKANA LETTER WO */
796     enum XK_kana_a                        = 0x04a7;  /* U+30A1 KATAKANA LETTER SMALL A */
797     enum XK_kana_i                        = 0x04a8;  /* U+30A3 KATAKANA LETTER SMALL I */
798     enum XK_kana_u                        = 0x04a9;  /* U+30A5 KATAKANA LETTER SMALL U */
799     enum XK_kana_e                        = 0x04aa;  /* U+30A7 KATAKANA LETTER SMALL E */
800     enum XK_kana_o                        = 0x04ab;  /* U+30A9 KATAKANA LETTER SMALL O */
801     enum XK_kana_ya                       = 0x04ac;  /* U+30E3 KATAKANA LETTER SMALL YA */
802     enum XK_kana_yu                       = 0x04ad;  /* U+30E5 KATAKANA LETTER SMALL YU */
803     enum XK_kana_yo                       = 0x04ae;  /* U+30E7 KATAKANA LETTER SMALL YO */
804     enum XK_kana_tsu                      = 0x04af;  /* U+30C3 KATAKANA LETTER SMALL TU */
805     enum XK_kana_tu                       = 0x04af;  /* deprecated */
806     enum XK_prolongedsound                = 0x04b0;  /* U+30FC KATAKANA-HIRAGANA PROLONGED SOUND MARK */
807     enum XK_kana_A                        = 0x04b1;  /* U+30A2 KATAKANA LETTER A */
808     enum XK_kana_I                        = 0x04b2;  /* U+30A4 KATAKANA LETTER I */
809     enum XK_kana_U                        = 0x04b3;  /* U+30A6 KATAKANA LETTER U */
810     enum XK_kana_E                        = 0x04b4;  /* U+30A8 KATAKANA LETTER E */
811     enum XK_kana_O                        = 0x04b5;  /* U+30AA KATAKANA LETTER O */
812     enum XK_kana_KA                       = 0x04b6;  /* U+30AB KATAKANA LETTER KA */
813     enum XK_kana_KI                       = 0x04b7;  /* U+30AD KATAKANA LETTER KI */
814     enum XK_kana_KU                       = 0x04b8;  /* U+30AF KATAKANA LETTER KU */
815     enum XK_kana_KE                       = 0x04b9;  /* U+30B1 KATAKANA LETTER KE */
816     enum XK_kana_KO                       = 0x04ba;  /* U+30B3 KATAKANA LETTER KO */
817     enum XK_kana_SA                       = 0x04bb;  /* U+30B5 KATAKANA LETTER SA */
818     enum XK_kana_SHI                      = 0x04bc;  /* U+30B7 KATAKANA LETTER SI */
819     enum XK_kana_SU                       = 0x04bd;  /* U+30B9 KATAKANA LETTER SU */
820     enum XK_kana_SE                       = 0x04be;  /* U+30BB KATAKANA LETTER SE */
821     enum XK_kana_SO                       = 0x04bf;  /* U+30BD KATAKANA LETTER SO */
822     enum XK_kana_TA                       = 0x04c0;  /* U+30BF KATAKANA LETTER TA */
823     enum XK_kana_CHI                      = 0x04c1;  /* U+30C1 KATAKANA LETTER TI */
824     enum XK_kana_TI                       = 0x04c1;  /* deprecated */
825     enum XK_kana_TSU                      = 0x04c2;  /* U+30C4 KATAKANA LETTER TU */
826     enum XK_kana_TU                       = 0x04c2;  /* deprecated */
827     enum XK_kana_TE                       = 0x04c3;  /* U+30C6 KATAKANA LETTER TE */
828     enum XK_kana_TO                       = 0x04c4;  /* U+30C8 KATAKANA LETTER TO */
829     enum XK_kana_NA                       = 0x04c5;  /* U+30CA KATAKANA LETTER NA */
830     enum XK_kana_NI                       = 0x04c6;  /* U+30CB KATAKANA LETTER NI */
831     enum XK_kana_NU                       = 0x04c7;  /* U+30CC KATAKANA LETTER NU */
832     enum XK_kana_NE                       = 0x04c8;  /* U+30CD KATAKANA LETTER NE */
833     enum XK_kana_NO                       = 0x04c9;  /* U+30CE KATAKANA LETTER NO */
834     enum XK_kana_HA                       = 0x04ca;  /* U+30CF KATAKANA LETTER HA */
835     enum XK_kana_HI                       = 0x04cb;  /* U+30D2 KATAKANA LETTER HI */
836     enum XK_kana_FU                       = 0x04cc;  /* U+30D5 KATAKANA LETTER HU */
837     enum XK_kana_HU                       = 0x04cc;  /* deprecated */
838     enum XK_kana_HE                       = 0x04cd;  /* U+30D8 KATAKANA LETTER HE */
839     enum XK_kana_HO                       = 0x04ce;  /* U+30DB KATAKANA LETTER HO */
840     enum XK_kana_MA                       = 0x04cf;  /* U+30DE KATAKANA LETTER MA */
841     enum XK_kana_MI                       = 0x04d0;  /* U+30DF KATAKANA LETTER MI */
842     enum XK_kana_MU                       = 0x04d1;  /* U+30E0 KATAKANA LETTER MU */
843     enum XK_kana_ME                       = 0x04d2;  /* U+30E1 KATAKANA LETTER ME */
844     enum XK_kana_MO                       = 0x04d3;  /* U+30E2 KATAKANA LETTER MO */
845     enum XK_kana_YA                       = 0x04d4;  /* U+30E4 KATAKANA LETTER YA */
846     enum XK_kana_YU                       = 0x04d5;  /* U+30E6 KATAKANA LETTER YU */
847     enum XK_kana_YO                       = 0x04d6;  /* U+30E8 KATAKANA LETTER YO */
848     enum XK_kana_RA                       = 0x04d7;  /* U+30E9 KATAKANA LETTER RA */
849     enum XK_kana_RI                       = 0x04d8;  /* U+30EA KATAKANA LETTER RI */
850     enum XK_kana_RU                       = 0x04d9;  /* U+30EB KATAKANA LETTER RU */
851     enum XK_kana_RE                       = 0x04da;  /* U+30EC KATAKANA LETTER RE */
852     enum XK_kana_RO                       = 0x04db;  /* U+30ED KATAKANA LETTER RO */
853     enum XK_kana_WA                       = 0x04dc;  /* U+30EF KATAKANA LETTER WA */
854     enum XK_kana_N                        = 0x04dd;  /* U+30F3 KATAKANA LETTER N */
855     enum XK_voicedsound                   = 0x04de;  /* U+309B KATAKANA-HIRAGANA VOICED SOUND MARK */
856     enum XK_semivoicedsound               = 0x04df;  /* U+309C KATAKANA-HIRAGANA SEMI-VOICED SOUND MARK */
857     enum XK_kana_switch                   = 0xff7e;  /* Alias for mode_switch */
858 }
859 /*
860  * Arabic
861  * Byte 3 = 5
862  */
863 static if( XK_ARABIC ){
864     enum XK_Farsi_0                    = 0x10006f0;  /* U+06F0 EXTENDED ARABIC-INDIC DIGIT ZERO */
865     enum XK_Farsi_1                    = 0x10006f1;  /* U+06F1 EXTENDED ARABIC-INDIC DIGIT ONE */
866     enum XK_Farsi_2                    = 0x10006f2;  /* U+06F2 EXTENDED ARABIC-INDIC DIGIT TWO */
867     enum XK_Farsi_3                    = 0x10006f3;  /* U+06F3 EXTENDED ARABIC-INDIC DIGIT THREE */
868     enum XK_Farsi_4                    = 0x10006f4;  /* U+06F4 EXTENDED ARABIC-INDIC DIGIT FOUR */
869     enum XK_Farsi_5                    = 0x10006f5;  /* U+06F5 EXTENDED ARABIC-INDIC DIGIT FIVE */
870     enum XK_Farsi_6                    = 0x10006f6;  /* U+06F6 EXTENDED ARABIC-INDIC DIGIT SIX */
871     enum XK_Farsi_7                    = 0x10006f7;  /* U+06F7 EXTENDED ARABIC-INDIC DIGIT SEVEN */
872     enum XK_Farsi_8                    = 0x10006f8;  /* U+06F8 EXTENDED ARABIC-INDIC DIGIT EIGHT */
873     enum XK_Farsi_9                    = 0x10006f9;  /* U+06F9 EXTENDED ARABIC-INDIC DIGIT NINE */
874     enum XK_Arabic_percent             = 0x100066a;  /* U+066A ARABIC PERCENT SIGN */
875     enum XK_Arabic_superscript_alef    = 0x1000670;  /* U+0670 ARABIC LETTER SUPERSCRIPT ALEF */
876     enum XK_Arabic_tteh                = 0x1000679;  /* U+0679 ARABIC LETTER TTEH */
877     enum XK_Arabic_peh                 = 0x100067e;  /* U+067E ARABIC LETTER PEH */
878     enum XK_Arabic_tcheh               = 0x1000686;  /* U+0686 ARABIC LETTER TCHEH */
879     enum XK_Arabic_ddal                = 0x1000688;  /* U+0688 ARABIC LETTER DDAL */
880     enum XK_Arabic_rreh                = 0x1000691;  /* U+0691 ARABIC LETTER RREH */
881     enum XK_Arabic_comma                  = 0x05ac;  /* U+060C ARABIC COMMA */
882     enum XK_Arabic_fullstop            = 0x10006d4;  /* U+06D4 ARABIC FULL STOP */
883     enum XK_Arabic_0                   = 0x1000660;  /* U+0660 ARABIC-INDIC DIGIT ZERO */
884     enum XK_Arabic_1                   = 0x1000661;  /* U+0661 ARABIC-INDIC DIGIT ONE */
885     enum XK_Arabic_2                   = 0x1000662;  /* U+0662 ARABIC-INDIC DIGIT TWO */
886     enum XK_Arabic_3                   = 0x1000663;  /* U+0663 ARABIC-INDIC DIGIT THREE */
887     enum XK_Arabic_4                   = 0x1000664;  /* U+0664 ARABIC-INDIC DIGIT FOUR */
888     enum XK_Arabic_5                   = 0x1000665;  /* U+0665 ARABIC-INDIC DIGIT FIVE */
889     enum XK_Arabic_6                   = 0x1000666;  /* U+0666 ARABIC-INDIC DIGIT SIX */
890     enum XK_Arabic_7                   = 0x1000667;  /* U+0667 ARABIC-INDIC DIGIT SEVEN */
891     enum XK_Arabic_8                   = 0x1000668;  /* U+0668 ARABIC-INDIC DIGIT EIGHT */
892     enum XK_Arabic_9                   = 0x1000669;  /* U+0669 ARABIC-INDIC DIGIT NINE */
893     enum XK_Arabic_semicolon              = 0x05bb;  /* U+061B ARABIC SEMICOLON */
894     enum XK_Arabic_question_mark          = 0x05bf;  /* U+061F ARABIC QUESTION MARK */
895     enum XK_Arabic_hamza                  = 0x05c1;  /* U+0621 ARABIC LETTER HAMZA */
896     enum XK_Arabic_maddaonalef            = 0x05c2;  /* U+0622 ARABIC LETTER ALEF WITH MADDA ABOVE */
897     enum XK_Arabic_hamzaonalef            = 0x05c3;  /* U+0623 ARABIC LETTER ALEF WITH HAMZA ABOVE */
898     enum XK_Arabic_hamzaonwaw             = 0x05c4;  /* U+0624 ARABIC LETTER WAW WITH HAMZA ABOVE */
899     enum XK_Arabic_hamzaunderalef         = 0x05c5;  /* U+0625 ARABIC LETTER ALEF WITH HAMZA BELOW */
900     enum XK_Arabic_hamzaonyeh             = 0x05c6;  /* U+0626 ARABIC LETTER YEH WITH HAMZA ABOVE */
901     enum XK_Arabic_alef                   = 0x05c7;  /* U+0627 ARABIC LETTER ALEF */
902     enum XK_Arabic_beh                    = 0x05c8;  /* U+0628 ARABIC LETTER BEH */
903     enum XK_Arabic_tehmarbuta             = 0x05c9;  /* U+0629 ARABIC LETTER TEH MARBUTA */
904     enum XK_Arabic_teh                    = 0x05ca;  /* U+062A ARABIC LETTER TEH */
905     enum XK_Arabic_theh                   = 0x05cb;  /* U+062B ARABIC LETTER THEH */
906     enum XK_Arabic_jeem                   = 0x05cc;  /* U+062C ARABIC LETTER JEEM */
907     enum XK_Arabic_hah                    = 0x05cd;  /* U+062D ARABIC LETTER HAH */
908     enum XK_Arabic_khah                   = 0x05ce;  /* U+062E ARABIC LETTER KHAH */
909     enum XK_Arabic_dal                    = 0x05cf;  /* U+062F ARABIC LETTER DAL */
910     enum XK_Arabic_thal                   = 0x05d0;  /* U+0630 ARABIC LETTER THAL */
911     enum XK_Arabic_ra                     = 0x05d1;  /* U+0631 ARABIC LETTER REH */
912     enum XK_Arabic_zain                   = 0x05d2;  /* U+0632 ARABIC LETTER ZAIN */
913     enum XK_Arabic_seen                   = 0x05d3;  /* U+0633 ARABIC LETTER SEEN */
914     enum XK_Arabic_sheen                  = 0x05d4;  /* U+0634 ARABIC LETTER SHEEN */
915     enum XK_Arabic_sad                    = 0x05d5;  /* U+0635 ARABIC LETTER SAD */
916     enum XK_Arabic_dad                    = 0x05d6;  /* U+0636 ARABIC LETTER DAD */
917     enum XK_Arabic_tah                    = 0x05d7;  /* U+0637 ARABIC LETTER TAH */
918     enum XK_Arabic_zah                    = 0x05d8;  /* U+0638 ARABIC LETTER ZAH */
919     enum XK_Arabic_ain                    = 0x05d9;  /* U+0639 ARABIC LETTER AIN */
920     enum XK_Arabic_ghain                  = 0x05da;  /* U+063A ARABIC LETTER GHAIN */
921     enum XK_Arabic_tatweel                = 0x05e0;  /* U+0640 ARABIC TATWEEL */
922     enum XK_Arabic_feh                    = 0x05e1;  /* U+0641 ARABIC LETTER FEH */
923     enum XK_Arabic_qaf                    = 0x05e2;  /* U+0642 ARABIC LETTER QAF */
924     enum XK_Arabic_kaf                    = 0x05e3;  /* U+0643 ARABIC LETTER KAF */
925     enum XK_Arabic_lam                    = 0x05e4;  /* U+0644 ARABIC LETTER LAM */
926     enum XK_Arabic_meem                   = 0x05e5;  /* U+0645 ARABIC LETTER MEEM */
927     enum XK_Arabic_noon                   = 0x05e6;  /* U+0646 ARABIC LETTER NOON */
928     enum XK_Arabic_ha                     = 0x05e7;  /* U+0647 ARABIC LETTER HEH */
929     enum XK_Arabic_heh                    = 0x05e7;  /* deprecated */
930     enum XK_Arabic_waw                    = 0x05e8;  /* U+0648 ARABIC LETTER WAW */
931     enum XK_Arabic_alefmaksura            = 0x05e9;  /* U+0649 ARABIC LETTER ALEF MAKSURA */
932     enum XK_Arabic_yeh                    = 0x05ea;  /* U+064A ARABIC LETTER YEH */
933     enum XK_Arabic_fathatan               = 0x05eb;  /* U+064B ARABIC FATHATAN */
934     enum XK_Arabic_dammatan               = 0x05ec;  /* U+064C ARABIC DAMMATAN */
935     enum XK_Arabic_kasratan               = 0x05ed;  /* U+064D ARABIC KASRATAN */
936     enum XK_Arabic_fatha                  = 0x05ee;  /* U+064E ARABIC FATHA */
937     enum XK_Arabic_damma                  = 0x05ef;  /* U+064F ARABIC DAMMA */
938     enum XK_Arabic_kasra                  = 0x05f0;  /* U+0650 ARABIC KASRA */
939     enum XK_Arabic_shadda                 = 0x05f1;  /* U+0651 ARABIC SHADDA */
940     enum XK_Arabic_sukun                  = 0x05f2;  /* U+0652 ARABIC SUKUN */
941     enum XK_Arabic_madda_above         = 0x1000653;  /* U+0653 ARABIC MADDAH ABOVE */
942     enum XK_Arabic_hamza_above         = 0x1000654;  /* U+0654 ARABIC HAMZA ABOVE */
943     enum XK_Arabic_hamza_below         = 0x1000655;  /* U+0655 ARABIC HAMZA BELOW */
944     enum XK_Arabic_jeh                 = 0x1000698;  /* U+0698 ARABIC LETTER JEH */
945     enum XK_Arabic_veh                 = 0x10006a4;  /* U+06A4 ARABIC LETTER VEH */
946     enum XK_Arabic_keheh               = 0x10006a9;  /* U+06A9 ARABIC LETTER KEHEH */
947     enum XK_Arabic_gaf                 = 0x10006af;  /* U+06AF ARABIC LETTER GAF */
948     enum XK_Arabic_noon_ghunna         = 0x10006ba;  /* U+06BA ARABIC LETTER NOON GHUNNA */
949     enum XK_Arabic_heh_doachashmee     = 0x10006be;  /* U+06BE ARABIC LETTER HEH DOACHASHMEE */
950     enum XK_Farsi_yeh                  = 0x10006cc;  /* U+06CC ARABIC LETTER FARSI YEH */
951     enum XK_Arabic_farsi_yeh           = 0x10006cc;  /* U+06CC ARABIC LETTER FARSI YEH */
952     enum XK_Arabic_yeh_baree           = 0x10006d2;  /* U+06D2 ARABIC LETTER YEH BARREE */
953     enum XK_Arabic_heh_goal            = 0x10006c1;  /* U+06C1 ARABIC LETTER HEH GOAL */
954     enum XK_Arabic_switch                 = 0xff7e;  /* Alias for mode_switch */
955 }
956 
957 /*
958  * Cyrillic
959  * Byte 3 = 6
960  */
961 static if( XK_CYRILLIC ){
962     enum XK_Cyrillic_GHE_bar           = 0x1000492;  /* U+0492 CYRILLIC CAPITAL LETTER GHE WITH STROKE */
963     enum XK_Cyrillic_ghe_bar           = 0x1000493;  /* U+0493 CYRILLIC SMALL LETTER GHE WITH STROKE */
964     enum XK_Cyrillic_ZHE_descender     = 0x1000496;  /* U+0496 CYRILLIC CAPITAL LETTER ZHE WITH DESCENDER */
965     enum XK_Cyrillic_zhe_descender     = 0x1000497;  /* U+0497 CYRILLIC SMALL LETTER ZHE WITH DESCENDER */
966     enum XK_Cyrillic_KA_descender      = 0x100049a;  /* U+049A CYRILLIC CAPITAL LETTER KA WITH DESCENDER */
967     enum XK_Cyrillic_ka_descender      = 0x100049b;  /* U+049B CYRILLIC SMALL LETTER KA WITH DESCENDER */
968     enum XK_Cyrillic_KA_vertstroke     = 0x100049c;  /* U+049C CYRILLIC CAPITAL LETTER KA WITH VERTICAL STROKE */
969     enum XK_Cyrillic_ka_vertstroke     = 0x100049d;  /* U+049D CYRILLIC SMALL LETTER KA WITH VERTICAL STROKE */
970     enum XK_Cyrillic_EN_descender      = 0x10004a2;  /* U+04A2 CYRILLIC CAPITAL LETTER EN WITH DESCENDER */
971     enum XK_Cyrillic_en_descender      = 0x10004a3;  /* U+04A3 CYRILLIC SMALL LETTER EN WITH DESCENDER */
972     enum XK_Cyrillic_U_straight        = 0x10004ae;  /* U+04AE CYRILLIC CAPITAL LETTER STRAIGHT U */
973     enum XK_Cyrillic_u_straight        = 0x10004af;  /* U+04AF CYRILLIC SMALL LETTER STRAIGHT U */
974     enum XK_Cyrillic_U_straight_bar    = 0x10004b0;  /* U+04B0 CYRILLIC CAPITAL LETTER STRAIGHT U WITH STROKE */
975     enum XK_Cyrillic_u_straight_bar    = 0x10004b1;  /* U+04B1 CYRILLIC SMALL LETTER STRAIGHT U WITH STROKE */
976     enum XK_Cyrillic_HA_descender      = 0x10004b2;  /* U+04B2 CYRILLIC CAPITAL LETTER HA WITH DESCENDER */
977     enum XK_Cyrillic_ha_descender      = 0x10004b3;  /* U+04B3 CYRILLIC SMALL LETTER HA WITH DESCENDER */
978     enum XK_Cyrillic_CHE_descender     = 0x10004b6;  /* U+04B6 CYRILLIC CAPITAL LETTER CHE WITH DESCENDER */
979     enum XK_Cyrillic_che_descender     = 0x10004b7;  /* U+04B7 CYRILLIC SMALL LETTER CHE WITH DESCENDER */
980     enum XK_Cyrillic_CHE_vertstroke    = 0x10004b8;  /* U+04B8 CYRILLIC CAPITAL LETTER CHE WITH VERTICAL STROKE */
981     enum XK_Cyrillic_che_vertstroke    = 0x10004b9;  /* U+04B9 CYRILLIC SMALL LETTER CHE WITH VERTICAL STROKE */
982     enum XK_Cyrillic_SHHA              = 0x10004ba;  /* U+04BA CYRILLIC CAPITAL LETTER SHHA */
983     enum XK_Cyrillic_shha              = 0x10004bb;  /* U+04BB CYRILLIC SMALL LETTER SHHA */
984 
985     enum XK_Cyrillic_SCHWA             = 0x10004d8;  /* U+04D8 CYRILLIC CAPITAL LETTER SCHWA */
986     enum XK_Cyrillic_schwa             = 0x10004d9;  /* U+04D9 CYRILLIC SMALL LETTER SCHWA */
987     enum XK_Cyrillic_I_macron          = 0x10004e2;  /* U+04E2 CYRILLIC CAPITAL LETTER I WITH MACRON */
988     enum XK_Cyrillic_i_macron          = 0x10004e3;  /* U+04E3 CYRILLIC SMALL LETTER I WITH MACRON */
989     enum XK_Cyrillic_O_bar             = 0x10004e8;  /* U+04E8 CYRILLIC CAPITAL LETTER BARRED O */
990     enum XK_Cyrillic_o_bar             = 0x10004e9;  /* U+04E9 CYRILLIC SMALL LETTER BARRED O */
991     enum XK_Cyrillic_U_macron          = 0x10004ee;  /* U+04EE CYRILLIC CAPITAL LETTER U WITH MACRON */
992     enum XK_Cyrillic_u_macron          = 0x10004ef;  /* U+04EF CYRILLIC SMALL LETTER U WITH MACRON */
993 
994     enum XK_Serbian_dje                   = 0x06a1;  /* U+0452 CYRILLIC SMALL LETTER DJE */
995     enum XK_Macedonia_gje                 = 0x06a2;  /* U+0453 CYRILLIC SMALL LETTER GJE */
996     enum XK_Cyrillic_io                   = 0x06a3;  /* U+0451 CYRILLIC SMALL LETTER IO */
997     enum XK_Ukrainian_ie                  = 0x06a4;  /* U+0454 CYRILLIC SMALL LETTER UKRAINIAN IE */
998     enum XK_Ukranian_je                   = 0x06a4;  /* deprecated */
999     enum XK_Macedonia_dse                 = 0x06a5;  /* U+0455 CYRILLIC SMALL LETTER DZE */
1000     enum XK_Ukrainian_i                   = 0x06a6;  /* U+0456 CYRILLIC SMALL LETTER BYELORUSSIAN-UKRAINIAN I */
1001     enum XK_Ukranian_i                    = 0x06a6;  /* deprecated */
1002     enum XK_Ukrainian_yi                  = 0x06a7;  /* U+0457 CYRILLIC SMALL LETTER YI */
1003     enum XK_Ukranian_yi                   = 0x06a7;  /* deprecated */
1004     enum XK_Cyrillic_je                   = 0x06a8;  /* U+0458 CYRILLIC SMALL LETTER JE */
1005     enum XK_Serbian_je                    = 0x06a8;  /* deprecated */
1006     enum XK_Cyrillic_lje                  = 0x06a9;  /* U+0459 CYRILLIC SMALL LETTER LJE */
1007     enum XK_Serbian_lje                   = 0x06a9;  /* deprecated */
1008     enum XK_Cyrillic_nje                  = 0x06aa;  /* U+045A CYRILLIC SMALL LETTER NJE */
1009     enum XK_Serbian_nje                   = 0x06aa;  /* deprecated */
1010     enum XK_Serbian_tshe                  = 0x06ab;  /* U+045B CYRILLIC SMALL LETTER TSHE */
1011     enum XK_Macedonia_kje                 = 0x06ac;  /* U+045C CYRILLIC SMALL LETTER KJE */
1012     enum XK_Ukrainian_ghe_with_upturn     = 0x06ad;  /* U+0491 CYRILLIC SMALL LETTER GHE WITH UPTURN */
1013     enum XK_Byelorussian_shortu           = 0x06ae;  /* U+045E CYRILLIC SMALL LETTER SHORT U */
1014     enum XK_Cyrillic_dzhe                 = 0x06af;  /* U+045F CYRILLIC SMALL LETTER DZHE */
1015     enum XK_Serbian_dze                   = 0x06af;  /* deprecated */
1016     enum XK_numerosign                    = 0x06b0;  /* U+2116 NUMERO SIGN */
1017     enum XK_Serbian_DJE                   = 0x06b1;  /* U+0402 CYRILLIC CAPITAL LETTER DJE */
1018     enum XK_Macedonia_GJE                 = 0x06b2;  /* U+0403 CYRILLIC CAPITAL LETTER GJE */
1019     enum XK_Cyrillic_IO                   = 0x06b3;  /* U+0401 CYRILLIC CAPITAL LETTER IO */
1020     enum XK_Ukrainian_IE                  = 0x06b4;  /* U+0404 CYRILLIC CAPITAL LETTER UKRAINIAN IE */
1021     enum XK_Ukranian_JE                   = 0x06b4;  /* deprecated */
1022     enum XK_Macedonia_DSE                 = 0x06b5;  /* U+0405 CYRILLIC CAPITAL LETTER DZE */
1023     enum XK_Ukrainian_I                   = 0x06b6;  /* U+0406 CYRILLIC CAPITAL LETTER BYELORUSSIAN-UKRAINIAN I */
1024     enum XK_Ukranian_I                    = 0x06b6;  /* deprecated */
1025     enum XK_Ukrainian_YI                  = 0x06b7;  /* U+0407 CYRILLIC CAPITAL LETTER YI */
1026     enum XK_Ukranian_YI                   = 0x06b7;  /* deprecated */
1027     enum XK_Cyrillic_JE                   = 0x06b8;  /* U+0408 CYRILLIC CAPITAL LETTER JE */
1028     enum XK_Serbian_JE                    = 0x06b8;  /* deprecated */
1029     enum XK_Cyrillic_LJE                  = 0x06b9;  /* U+0409 CYRILLIC CAPITAL LETTER LJE */
1030     enum XK_Serbian_LJE                   = 0x06b9;  /* deprecated */
1031     enum XK_Cyrillic_NJE                  = 0x06ba;  /* U+040A CYRILLIC CAPITAL LETTER NJE */
1032     enum XK_Serbian_NJE                   = 0x06ba;  /* deprecated */
1033     enum XK_Serbian_TSHE                  = 0x06bb;  /* U+040B CYRILLIC CAPITAL LETTER TSHE */
1034     enum XK_Macedonia_KJE                 = 0x06bc;  /* U+040C CYRILLIC CAPITAL LETTER KJE */
1035     enum XK_Ukrainian_GHE_WITH_UPTURN     = 0x06bd;  /* U+0490 CYRILLIC CAPITAL LETTER GHE WITH UPTURN */
1036     enum XK_Byelorussian_SHORTU           = 0x06be;  /* U+040E CYRILLIC CAPITAL LETTER SHORT U */
1037     enum XK_Cyrillic_DZHE                 = 0x06bf;  /* U+040F CYRILLIC CAPITAL LETTER DZHE */
1038     enum XK_Serbian_DZE                   = 0x06bf;  /* deprecated */
1039     enum XK_Cyrillic_yu                   = 0x06c0;  /* U+044E CYRILLIC SMALL LETTER YU */
1040     enum XK_Cyrillic_a                    = 0x06c1;  /* U+0430 CYRILLIC SMALL LETTER A */
1041     enum XK_Cyrillic_be                   = 0x06c2;  /* U+0431 CYRILLIC SMALL LETTER BE */
1042     enum XK_Cyrillic_tse                  = 0x06c3;  /* U+0446 CYRILLIC SMALL LETTER TSE */
1043     enum XK_Cyrillic_de                   = 0x06c4;  /* U+0434 CYRILLIC SMALL LETTER DE */
1044     enum XK_Cyrillic_ie                   = 0x06c5;  /* U+0435 CYRILLIC SMALL LETTER IE */
1045     enum XK_Cyrillic_ef                   = 0x06c6;  /* U+0444 CYRILLIC SMALL LETTER EF */
1046     enum XK_Cyrillic_ghe                  = 0x06c7;  /* U+0433 CYRILLIC SMALL LETTER GHE */
1047     enum XK_Cyrillic_ha                   = 0x06c8;  /* U+0445 CYRILLIC SMALL LETTER HA */
1048     enum XK_Cyrillic_i                    = 0x06c9;  /* U+0438 CYRILLIC SMALL LETTER I */
1049     enum XK_Cyrillic_shorti               = 0x06ca;  /* U+0439 CYRILLIC SMALL LETTER SHORT I */
1050     enum XK_Cyrillic_ka                   = 0x06cb;  /* U+043A CYRILLIC SMALL LETTER KA */
1051     enum XK_Cyrillic_el                   = 0x06cc;  /* U+043B CYRILLIC SMALL LETTER EL */
1052     enum XK_Cyrillic_em                   = 0x06cd;  /* U+043C CYRILLIC SMALL LETTER EM */
1053     enum XK_Cyrillic_en                   = 0x06ce;  /* U+043D CYRILLIC SMALL LETTER EN */
1054     enum XK_Cyrillic_o                    = 0x06cf;  /* U+043E CYRILLIC SMALL LETTER O */
1055     enum XK_Cyrillic_pe                   = 0x06d0;  /* U+043F CYRILLIC SMALL LETTER PE */
1056     enum XK_Cyrillic_ya                   = 0x06d1;  /* U+044F CYRILLIC SMALL LETTER YA */
1057     enum XK_Cyrillic_er                   = 0x06d2;  /* U+0440 CYRILLIC SMALL LETTER ER */
1058     enum XK_Cyrillic_es                   = 0x06d3;  /* U+0441 CYRILLIC SMALL LETTER ES */
1059     enum XK_Cyrillic_te                   = 0x06d4;  /* U+0442 CYRILLIC SMALL LETTER TE */
1060     enum XK_Cyrillic_u                    = 0x06d5;  /* U+0443 CYRILLIC SMALL LETTER U */
1061     enum XK_Cyrillic_zhe                  = 0x06d6;  /* U+0436 CYRILLIC SMALL LETTER ZHE */
1062     enum XK_Cyrillic_ve                   = 0x06d7;  /* U+0432 CYRILLIC SMALL LETTER VE */
1063     enum XK_Cyrillic_softsign             = 0x06d8;  /* U+044C CYRILLIC SMALL LETTER SOFT SIGN */
1064     enum XK_Cyrillic_yeru                 = 0x06d9;  /* U+044B CYRILLIC SMALL LETTER YERU */
1065     enum XK_Cyrillic_ze                   = 0x06da;  /* U+0437 CYRILLIC SMALL LETTER ZE */
1066     enum XK_Cyrillic_sha                  = 0x06db;  /* U+0448 CYRILLIC SMALL LETTER SHA */
1067     enum XK_Cyrillic_e                    = 0x06dc;  /* U+044D CYRILLIC SMALL LETTER E */
1068     enum XK_Cyrillic_shcha                = 0x06dd;  /* U+0449 CYRILLIC SMALL LETTER SHCHA */
1069     enum XK_Cyrillic_che                  = 0x06de;  /* U+0447 CYRILLIC SMALL LETTER CHE */
1070     enum XK_Cyrillic_hardsign             = 0x06df;  /* U+044A CYRILLIC SMALL LETTER HARD SIGN */
1071     enum XK_Cyrillic_YU                   = 0x06e0;  /* U+042E CYRILLIC CAPITAL LETTER YU */
1072     enum XK_Cyrillic_A                    = 0x06e1;  /* U+0410 CYRILLIC CAPITAL LETTER A */
1073     enum XK_Cyrillic_BE                   = 0x06e2;  /* U+0411 CYRILLIC CAPITAL LETTER BE */
1074     enum XK_Cyrillic_TSE                  = 0x06e3;  /* U+0426 CYRILLIC CAPITAL LETTER TSE */
1075     enum XK_Cyrillic_DE                   = 0x06e4;  /* U+0414 CYRILLIC CAPITAL LETTER DE */
1076     enum XK_Cyrillic_IE                   = 0x06e5;  /* U+0415 CYRILLIC CAPITAL LETTER IE */
1077     enum XK_Cyrillic_EF                   = 0x06e6;  /* U+0424 CYRILLIC CAPITAL LETTER EF */
1078     enum XK_Cyrillic_GHE                  = 0x06e7;  /* U+0413 CYRILLIC CAPITAL LETTER GHE */
1079     enum XK_Cyrillic_HA                   = 0x06e8;  /* U+0425 CYRILLIC CAPITAL LETTER HA */
1080     enum XK_Cyrillic_I                    = 0x06e9;  /* U+0418 CYRILLIC CAPITAL LETTER I */
1081     enum XK_Cyrillic_SHORTI               = 0x06ea;  /* U+0419 CYRILLIC CAPITAL LETTER SHORT I */
1082     enum XK_Cyrillic_KA                   = 0x06eb;  /* U+041A CYRILLIC CAPITAL LETTER KA */
1083     enum XK_Cyrillic_EL                   = 0x06ec;  /* U+041B CYRILLIC CAPITAL LETTER EL */
1084     enum XK_Cyrillic_EM                   = 0x06ed;  /* U+041C CYRILLIC CAPITAL LETTER EM */
1085     enum XK_Cyrillic_EN                   = 0x06ee;  /* U+041D CYRILLIC CAPITAL LETTER EN */
1086     enum XK_Cyrillic_O                    = 0x06ef;  /* U+041E CYRILLIC CAPITAL LETTER O */
1087     enum XK_Cyrillic_PE                   = 0x06f0;  /* U+041F CYRILLIC CAPITAL LETTER PE */
1088     enum XK_Cyrillic_YA                   = 0x06f1;  /* U+042F CYRILLIC CAPITAL LETTER YA */
1089     enum XK_Cyrillic_ER                   = 0x06f2;  /* U+0420 CYRILLIC CAPITAL LETTER ER */
1090     enum XK_Cyrillic_ES                   = 0x06f3;  /* U+0421 CYRILLIC CAPITAL LETTER ES */
1091     enum XK_Cyrillic_TE                   = 0x06f4;  /* U+0422 CYRILLIC CAPITAL LETTER TE */
1092     enum XK_Cyrillic_U                    = 0x06f5;  /* U+0423 CYRILLIC CAPITAL LETTER U */
1093     enum XK_Cyrillic_ZHE                  = 0x06f6;  /* U+0416 CYRILLIC CAPITAL LETTER ZHE */
1094     enum XK_Cyrillic_VE                   = 0x06f7;  /* U+0412 CYRILLIC CAPITAL LETTER VE */
1095     enum XK_Cyrillic_SOFTSIGN             = 0x06f8;  /* U+042C CYRILLIC CAPITAL LETTER SOFT SIGN */
1096     enum XK_Cyrillic_YERU                 = 0x06f9;  /* U+042B CYRILLIC CAPITAL LETTER YERU */
1097     enum XK_Cyrillic_ZE                   = 0x06fa;  /* U+0417 CYRILLIC CAPITAL LETTER ZE */
1098     enum XK_Cyrillic_SHA                  = 0x06fb;  /* U+0428 CYRILLIC CAPITAL LETTER SHA */
1099     enum XK_Cyrillic_E                    = 0x06fc;  /* U+042D CYRILLIC CAPITAL LETTER E */
1100     enum XK_Cyrillic_SHCHA                = 0x06fd;  /* U+0429 CYRILLIC CAPITAL LETTER SHCHA */
1101     enum XK_Cyrillic_CHE                  = 0x06fe;  /* U+0427 CYRILLIC CAPITAL LETTER CHE */
1102     enum XK_Cyrillic_HARDSIGN             = 0x06ff;  /* U+042A CYRILLIC CAPITAL LETTER HARD SIGN */
1103 }
1104 
1105 /*
1106  * Greek
1107  * (based on an early draft of, and not quite identical to, ISO/IEC 8859-7)
1108  * Byte 3 = 7
1109  */
1110 static if( XK_GREEK ){
1111     enum XK_Greek_ALPHAaccent             = 0x07a1;  /* U+0386 GREEK CAPITAL LETTER ALPHA WITH TONOS */
1112     enum XK_Greek_EPSILONaccent           = 0x07a2;  /* U+0388 GREEK CAPITAL LETTER EPSILON WITH TONOS */
1113     enum XK_Greek_ETAaccent               = 0x07a3;  /* U+0389 GREEK CAPITAL LETTER ETA WITH TONOS */
1114     enum XK_Greek_IOTAaccent              = 0x07a4;  /* U+038A GREEK CAPITAL LETTER IOTA WITH TONOS */
1115     enum XK_Greek_IOTAdieresis            = 0x07a5;  /* U+03AA GREEK CAPITAL LETTER IOTA WITH DIALYTIKA */
1116     enum XK_Greek_IOTAdiaeresis           = 0x07a5;  /* old typo */
1117     enum XK_Greek_OMICRONaccent           = 0x07a7;  /* U+038C GREEK CAPITAL LETTER OMICRON WITH TONOS */
1118     enum XK_Greek_UPSILONaccent           = 0x07a8;  /* U+038E GREEK CAPITAL LETTER UPSILON WITH TONOS */
1119     enum XK_Greek_UPSILONdieresis         = 0x07a9;  /* U+03AB GREEK CAPITAL LETTER UPSILON WITH DIALYTIKA */
1120     enum XK_Greek_OMEGAaccent             = 0x07ab;  /* U+038F GREEK CAPITAL LETTER OMEGA WITH TONOS */
1121     enum XK_Greek_accentdieresis          = 0x07ae;  /* U+0385 GREEK DIALYTIKA TONOS */
1122     enum XK_Greek_horizbar                = 0x07af;  /* U+2015 HORIZONTAL BAR */
1123     enum XK_Greek_alphaaccent             = 0x07b1;  /* U+03AC GREEK SMALL LETTER ALPHA WITH TONOS */
1124     enum XK_Greek_epsilonaccent           = 0x07b2;  /* U+03AD GREEK SMALL LETTER EPSILON WITH TONOS */
1125     enum XK_Greek_etaaccent               = 0x07b3;  /* U+03AE GREEK SMALL LETTER ETA WITH TONOS */
1126     enum XK_Greek_iotaaccent              = 0x07b4;  /* U+03AF GREEK SMALL LETTER IOTA WITH TONOS */
1127     enum XK_Greek_iotadieresis            = 0x07b5;  /* U+03CA GREEK SMALL LETTER IOTA WITH DIALYTIKA */
1128     enum XK_Greek_iotaaccentdieresis      = 0x07b6;  /* U+0390 GREEK SMALL LETTER IOTA WITH DIALYTIKA AND TONOS */
1129     enum XK_Greek_omicronaccent           = 0x07b7;  /* U+03CC GREEK SMALL LETTER OMICRON WITH TONOS */
1130     enum XK_Greek_upsilonaccent           = 0x07b8;  /* U+03CD GREEK SMALL LETTER UPSILON WITH TONOS */
1131     enum XK_Greek_upsilondieresis         = 0x07b9;  /* U+03CB GREEK SMALL LETTER UPSILON WITH DIALYTIKA */
1132     enum XK_Greek_upsilonaccentdieresis   = 0x07ba;  /* U+03B0 GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND TONOS */
1133     enum XK_Greek_omegaaccent             = 0x07bb;  /* U+03CE GREEK SMALL LETTER OMEGA WITH TONOS */
1134     enum XK_Greek_ALPHA                   = 0x07c1;  /* U+0391 GREEK CAPITAL LETTER ALPHA */
1135     enum XK_Greek_BETA                    = 0x07c2;  /* U+0392 GREEK CAPITAL LETTER BETA */
1136     enum XK_Greek_GAMMA                   = 0x07c3;  /* U+0393 GREEK CAPITAL LETTER GAMMA */
1137     enum XK_Greek_DELTA                   = 0x07c4;  /* U+0394 GREEK CAPITAL LETTER DELTA */
1138     enum XK_Greek_EPSILON                 = 0x07c5;  /* U+0395 GREEK CAPITAL LETTER EPSILON */
1139     enum XK_Greek_ZETA                    = 0x07c6;  /* U+0396 GREEK CAPITAL LETTER ZETA */
1140     enum XK_Greek_ETA                     = 0x07c7;  /* U+0397 GREEK CAPITAL LETTER ETA */
1141     enum XK_Greek_THETA                   = 0x07c8;  /* U+0398 GREEK CAPITAL LETTER THETA */
1142     enum XK_Greek_IOTA                    = 0x07c9;  /* U+0399 GREEK CAPITAL LETTER IOTA */
1143     enum XK_Greek_KAPPA                   = 0x07ca;  /* U+039A GREEK CAPITAL LETTER KAPPA */
1144     enum XK_Greek_LAMDA                   = 0x07cb;  /* U+039B GREEK CAPITAL LETTER LAMDA */
1145     enum XK_Greek_LAMBDA                  = 0x07cb;  /* U+039B GREEK CAPITAL LETTER LAMDA */
1146     enum XK_Greek_MU                      = 0x07cc;  /* U+039C GREEK CAPITAL LETTER MU */
1147     enum XK_Greek_NU                      = 0x07cd;  /* U+039D GREEK CAPITAL LETTER NU */
1148     enum XK_Greek_XI                      = 0x07ce;  /* U+039E GREEK CAPITAL LETTER XI */
1149     enum XK_Greek_OMICRON                 = 0x07cf;  /* U+039F GREEK CAPITAL LETTER OMICRON */
1150     enum XK_Greek_PI                      = 0x07d0;  /* U+03A0 GREEK CAPITAL LETTER PI */
1151     enum XK_Greek_RHO                     = 0x07d1;  /* U+03A1 GREEK CAPITAL LETTER RHO */
1152     enum XK_Greek_SIGMA                   = 0x07d2;  /* U+03A3 GREEK CAPITAL LETTER SIGMA */
1153     enum XK_Greek_TAU                     = 0x07d4;  /* U+03A4 GREEK CAPITAL LETTER TAU */
1154     enum XK_Greek_UPSILON                 = 0x07d5;  /* U+03A5 GREEK CAPITAL LETTER UPSILON */
1155     enum XK_Greek_PHI                     = 0x07d6;  /* U+03A6 GREEK CAPITAL LETTER PHI */
1156     enum XK_Greek_CHI                     = 0x07d7;  /* U+03A7 GREEK CAPITAL LETTER CHI */
1157     enum XK_Greek_PSI                     = 0x07d8;  /* U+03A8 GREEK CAPITAL LETTER PSI */
1158     enum XK_Greek_OMEGA                   = 0x07d9;  /* U+03A9 GREEK CAPITAL LETTER OMEGA */
1159     enum XK_Greek_alpha                   = 0x07e1;  /* U+03B1 GREEK SMALL LETTER ALPHA */
1160     enum XK_Greek_beta                    = 0x07e2;  /* U+03B2 GREEK SMALL LETTER BETA */
1161     enum XK_Greek_gamma                   = 0x07e3;  /* U+03B3 GREEK SMALL LETTER GAMMA */
1162     enum XK_Greek_delta                   = 0x07e4;  /* U+03B4 GREEK SMALL LETTER DELTA */
1163     enum XK_Greek_epsilon                 = 0x07e5;  /* U+03B5 GREEK SMALL LETTER EPSILON */
1164     enum XK_Greek_zeta                    = 0x07e6;  /* U+03B6 GREEK SMALL LETTER ZETA */
1165     enum XK_Greek_eta                     = 0x07e7;  /* U+03B7 GREEK SMALL LETTER ETA */
1166     enum XK_Greek_theta                   = 0x07e8;  /* U+03B8 GREEK SMALL LETTER THETA */
1167     enum XK_Greek_iota                    = 0x07e9;  /* U+03B9 GREEK SMALL LETTER IOTA */
1168     enum XK_Greek_kappa                   = 0x07ea;  /* U+03BA GREEK SMALL LETTER KAPPA */
1169     enum XK_Greek_lamda                   = 0x07eb;  /* U+03BB GREEK SMALL LETTER LAMDA */
1170     enum XK_Greek_lambda                  = 0x07eb;  /* U+03BB GREEK SMALL LETTER LAMDA */
1171     enum XK_Greek_mu                      = 0x07ec;  /* U+03BC GREEK SMALL LETTER MU */
1172     enum XK_Greek_nu                      = 0x07ed;  /* U+03BD GREEK SMALL LETTER NU */
1173     enum XK_Greek_xi                      = 0x07ee;  /* U+03BE GREEK SMALL LETTER XI */
1174     enum XK_Greek_omicron                 = 0x07ef;  /* U+03BF GREEK SMALL LETTER OMICRON */
1175     enum XK_Greek_pi                      = 0x07f0;  /* U+03C0 GREEK SMALL LETTER PI */
1176     enum XK_Greek_rho                     = 0x07f1;  /* U+03C1 GREEK SMALL LETTER RHO */
1177     enum XK_Greek_sigma                   = 0x07f2;  /* U+03C3 GREEK SMALL LETTER SIGMA */
1178     enum XK_Greek_finalsmallsigma         = 0x07f3;  /* U+03C2 GREEK SMALL LETTER FINAL SIGMA */
1179     enum XK_Greek_tau                     = 0x07f4;  /* U+03C4 GREEK SMALL LETTER TAU */
1180     enum XK_Greek_upsilon                 = 0x07f5;  /* U+03C5 GREEK SMALL LETTER UPSILON */
1181     enum XK_Greek_phi                     = 0x07f6;  /* U+03C6 GREEK SMALL LETTER PHI */
1182     enum XK_Greek_chi                     = 0x07f7;  /* U+03C7 GREEK SMALL LETTER CHI */
1183     enum XK_Greek_psi                     = 0x07f8;  /* U+03C8 GREEK SMALL LETTER PSI */
1184     enum XK_Greek_omega                   = 0x07f9;  /* U+03C9 GREEK SMALL LETTER OMEGA */
1185     enum XK_Greek_switch                  = 0xff7e;  /* Alias for mode_switch */
1186 }
1187 
1188 /*
1189  * Technical
1190  * (from the DEC VT330/VT420 Technical Character Set, http://vt100.net/charsets/technical.html)
1191  * Byte 3 = 8
1192  */
1193 static if( XK_TECHNICAL ){
1194     enum XK_leftradical                   = 0x08a1;  /* U+23B7 RADICAL SYMBOL BOTTOM */
1195     enum XK_topleftradical                = 0x08a2;  /*(U+250C BOX DRAWINGS LIGHT DOWN AND RIGHT)*/
1196     enum XK_horizconnector                = 0x08a3;  /*(U+2500 BOX DRAWINGS LIGHT HORIZONTAL)*/
1197     enum XK_topintegral                   = 0x08a4;  /* U+2320 TOP HALF INTEGRAL */
1198     enum XK_botintegral                   = 0x08a5;  /* U+2321 BOTTOM HALF INTEGRAL */
1199     enum XK_vertconnector                 = 0x08a6;  /*(U+2502 BOX DRAWINGS LIGHT VERTICAL)*/
1200     enum XK_topleftsqbracket              = 0x08a7;  /* U+23A1 LEFT SQUARE BRACKET UPPER CORNER */
1201     enum XK_botleftsqbracket              = 0x08a8;  /* U+23A3 LEFT SQUARE BRACKET LOWER CORNER */
1202     enum XK_toprightsqbracket             = 0x08a9;  /* U+23A4 RIGHT SQUARE BRACKET UPPER CORNER */
1203     enum XK_botrightsqbracket             = 0x08aa;  /* U+23A6 RIGHT SQUARE BRACKET LOWER CORNER */
1204     enum XK_topleftparens                 = 0x08ab;  /* U+239B LEFT PARENTHESIS UPPER HOOK */
1205     enum XK_botleftparens                 = 0x08ac;  /* U+239D LEFT PARENTHESIS LOWER HOOK */
1206     enum XK_toprightparens                = 0x08ad;  /* U+239E RIGHT PARENTHESIS UPPER HOOK */
1207     enum XK_botrightparens                = 0x08ae;  /* U+23A0 RIGHT PARENTHESIS LOWER HOOK */
1208     enum XK_leftmiddlecurlybrace          = 0x08af;  /* U+23A8 LEFT CURLY BRACKET MIDDLE PIECE */
1209     enum XK_rightmiddlecurlybrace         = 0x08b0;  /* U+23AC RIGHT CURLY BRACKET MIDDLE PIECE */
1210     enum XK_topleftsummation              = 0x08b1;
1211     enum XK_botleftsummation              = 0x08b2;
1212     enum XK_topvertsummationconnector     = 0x08b3;
1213     enum XK_botvertsummationconnector     = 0x08b4;
1214     enum XK_toprightsummation             = 0x08b5;
1215     enum XK_botrightsummation             = 0x08b6;
1216     enum XK_rightmiddlesummation          = 0x08b7;
1217     enum XK_lessthanequal                 = 0x08bc;  /* U+2264 LESS-THAN OR EQUAL TO */
1218     enum XK_notequal                      = 0x08bd;  /* U+2260 NOT EQUAL TO */
1219     enum XK_greaterthanequal              = 0x08be;  /* U+2265 GREATER-THAN OR EQUAL TO */
1220     enum XK_integral                      = 0x08bf;  /* U+222B INTEGRAL */
1221     enum XK_therefore                     = 0x08c0;  /* U+2234 THEREFORE */
1222     enum XK_variation                     = 0x08c1;  /* U+221D PROPORTIONAL TO */
1223     enum XK_infinity                      = 0x08c2;  /* U+221E INFINITY */
1224     enum XK_nabla                         = 0x08c5;  /* U+2207 NABLA */
1225     enum XK_approximate                   = 0x08c8;  /* U+223C TILDE OPERATOR */
1226     enum XK_similarequal                  = 0x08c9;  /* U+2243 ASYMPTOTICALLY EQUAL TO */
1227     enum XK_ifonlyif                      = 0x08cd;  /* U+21D4 LEFT RIGHT DOUBLE ARROW */
1228     enum XK_implies                       = 0x08ce;  /* U+21D2 RIGHTWARDS DOUBLE ARROW */
1229     enum XK_identical                     = 0x08cf;  /* U+2261 IDENTICAL TO */
1230     enum XK_radical                       = 0x08d6;  /* U+221A SQUARE ROOT */
1231     enum XK_includedin                    = 0x08da;  /* U+2282 SUBSET OF */
1232     enum XK_includes                      = 0x08db;  /* U+2283 SUPERSET OF */
1233     enum XK_intersection                  = 0x08dc;  /* U+2229 INTERSECTION */
1234     enum XK_union                         = 0x08dd;  /* U+222A UNION */
1235     enum XK_logicaland                    = 0x08de;  /* U+2227 LOGICAL AND */
1236     enum XK_logicalor                     = 0x08df;  /* U+2228 LOGICAL OR */
1237     enum XK_partialderivative             = 0x08ef;  /* U+2202 PARTIAL DIFFERENTIAL */
1238     enum XK_function                      = 0x08f6;  /* U+0192 LATIN SMALL LETTER F WITH HOOK */
1239     enum XK_leftarrow                     = 0x08fb;  /* U+2190 LEFTWARDS ARROW */
1240     enum XK_uparrow                       = 0x08fc;  /* U+2191 UPWARDS ARROW */
1241     enum XK_rightarrow                    = 0x08fd;  /* U+2192 RIGHTWARDS ARROW */
1242     enum XK_downarrow                     = 0x08fe;  /* U+2193 DOWNWARDS ARROW */
1243 }
1244 
1245 /*
1246  * Special
1247  * (from the DEC VT100 Special Graphics Character Set)
1248  * Byte 3 = 9
1249  */
1250 static if( XK_SPECIAL ){
1251     enum XK_blank                         = 0x09df;
1252     enum XK_soliddiamond                  = 0x09e0;  /* U+25C6 BLACK DIAMOND */
1253     enum XK_checkerboard                  = 0x09e1;  /* U+2592 MEDIUM SHADE */
1254     enum XK_ht                            = 0x09e2;  /* U+2409 SYMBOL FOR HORIZONTAL TABULATION */
1255     enum XK_ff                            = 0x09e3;  /* U+240C SYMBOL FOR FORM FEED */
1256     enum XK_cr                            = 0x09e4;  /* U+240D SYMBOL FOR CARRIAGE RETURN */
1257     enum XK_lf                            = 0x09e5;  /* U+240A SYMBOL FOR LINE FEED */
1258     enum XK_nl                            = 0x09e8;  /* U+2424 SYMBOL FOR NEWLINE */
1259     enum XK_vt                            = 0x09e9;  /* U+240B SYMBOL FOR VERTICAL TABULATION */
1260     enum XK_lowrightcorner                = 0x09ea;  /* U+2518 BOX DRAWINGS LIGHT UP AND LEFT */
1261     enum XK_uprightcorner                 = 0x09eb;  /* U+2510 BOX DRAWINGS LIGHT DOWN AND LEFT */
1262     enum XK_upleftcorner                  = 0x09ec;  /* U+250C BOX DRAWINGS LIGHT DOWN AND RIGHT */
1263     enum XK_lowleftcorner                 = 0x09ed;  /* U+2514 BOX DRAWINGS LIGHT UP AND RIGHT */
1264     enum XK_crossinglines                 = 0x09ee;  /* U+253C BOX DRAWINGS LIGHT VERTICAL AND HORIZONTAL */
1265     enum XK_horizlinescan1                = 0x09ef;  /* U+23BA HORIZONTAL SCAN LINE-1 */
1266     enum XK_horizlinescan3                = 0x09f0;  /* U+23BB HORIZONTAL SCAN LINE-3 */
1267     enum XK_horizlinescan5                = 0x09f1;  /* U+2500 BOX DRAWINGS LIGHT HORIZONTAL */
1268     enum XK_horizlinescan7                = 0x09f2;  /* U+23BC HORIZONTAL SCAN LINE-7 */
1269     enum XK_horizlinescan9                = 0x09f3;  /* U+23BD HORIZONTAL SCAN LINE-9 */
1270     enum XK_leftt                         = 0x09f4;  /* U+251C BOX DRAWINGS LIGHT VERTICAL AND RIGHT */
1271     enum XK_rightt                        = 0x09f5;  /* U+2524 BOX DRAWINGS LIGHT VERTICAL AND LEFT */
1272     enum XK_bott                          = 0x09f6;  /* U+2534 BOX DRAWINGS LIGHT UP AND HORIZONTAL */
1273     enum XK_topt                          = 0x09f7;  /* U+252C BOX DRAWINGS LIGHT DOWN AND HORIZONTAL */
1274     enum XK_vertbar                       = 0x09f8;  /* U+2502 BOX DRAWINGS LIGHT VERTICAL */
1275 }
1276 
1277 /*
1278  * Publishing
1279  * (these are probably from a long forgotten DEC Publishing
1280  * font that once shipped with DECwrite)
1281  * Byte 3 = 0x0a
1282  */
1283 static if( XK_PUBLISHING ){
1284     enum XK_emspace                       = 0x0aa1;  /* U+2003 EM SPACE */
1285     enum XK_enspace                       = 0x0aa2;  /* U+2002 EN SPACE */
1286     enum XK_em3space                      = 0x0aa3;  /* U+2004 THREE-PER-EM SPACE */
1287     enum XK_em4space                      = 0x0aa4;  /* U+2005 FOUR-PER-EM SPACE */
1288     enum XK_digitspace                    = 0x0aa5;  /* U+2007 FIGURE SPACE */
1289     enum XK_punctspace                    = 0x0aa6;  /* U+2008 PUNCTUATION SPACE */
1290     enum XK_thinspace                     = 0x0aa7;  /* U+2009 THIN SPACE */
1291     enum XK_hairspace                     = 0x0aa8;  /* U+200A HAIR SPACE */
1292     enum XK_emdash                        = 0x0aa9;  /* U+2014 EM DASH */
1293     enum XK_endash                        = 0x0aaa;  /* U+2013 EN DASH */
1294     enum XK_signifblank                   = 0x0aac;  /*(U+2423 OPEN BOX)*/
1295     enum XK_ellipsis                      = 0x0aae;  /* U+2026 HORIZONTAL ELLIPSIS */
1296     enum XK_doubbaselinedot               = 0x0aaf;  /* U+2025 TWO DOT LEADER */
1297     enum XK_onethird                      = 0x0ab0;  /* U+2153 VULGAR FRACTION ONE THIRD */
1298     enum XK_twothirds                     = 0x0ab1;  /* U+2154 VULGAR FRACTION TWO THIRDS */
1299     enum XK_onefifth                      = 0x0ab2;  /* U+2155 VULGAR FRACTION ONE FIFTH */
1300     enum XK_twofifths                     = 0x0ab3;  /* U+2156 VULGAR FRACTION TWO FIFTHS */
1301     enum XK_threefifths                   = 0x0ab4;  /* U+2157 VULGAR FRACTION THREE FIFTHS */
1302     enum XK_fourfifths                    = 0x0ab5;  /* U+2158 VULGAR FRACTION FOUR FIFTHS */
1303     enum XK_onesixth                      = 0x0ab6;  /* U+2159 VULGAR FRACTION ONE SIXTH */
1304     enum XK_fivesixths                    = 0x0ab7;  /* U+215A VULGAR FRACTION FIVE SIXTHS */
1305     enum XK_careof                        = 0x0ab8;  /* U+2105 CARE OF */
1306     enum XK_figdash                       = 0x0abb;  /* U+2012 FIGURE DASH */
1307     enum XK_leftanglebracket              = 0x0abc;  /*(U+27E8 MATHEMATICAL LEFT ANGLE BRACKET)*/
1308     enum XK_decimalpoint                  = 0x0abd;  /*(U+002E FULL STOP)*/
1309     enum XK_rightanglebracket             = 0x0abe;  /*(U+27E9 MATHEMATICAL RIGHT ANGLE BRACKET)*/
1310     enum XK_marker                        = 0x0abf;
1311     enum XK_oneeighth                     = 0x0ac3;  /* U+215B VULGAR FRACTION ONE EIGHTH */
1312     enum XK_threeeighths                  = 0x0ac4;  /* U+215C VULGAR FRACTION THREE EIGHTHS */
1313     enum XK_fiveeighths                   = 0x0ac5;  /* U+215D VULGAR FRACTION FIVE EIGHTHS */
1314     enum XK_seveneighths                  = 0x0ac6;  /* U+215E VULGAR FRACTION SEVEN EIGHTHS */
1315     enum XK_trademark                     = 0x0ac9;  /* U+2122 TRADE MARK SIGN */
1316     enum XK_signaturemark                 = 0x0aca;  /*(U+2613 SALTIRE)*/
1317     enum XK_trademarkincircle             = 0x0acb;
1318     enum XK_leftopentriangle              = 0x0acc;  /*(U+25C1 WHITE LEFT-POINTING TRIANGLE)*/
1319     enum XK_rightopentriangle             = 0x0acd;  /*(U+25B7 WHITE RIGHT-POINTING TRIANGLE)*/
1320     enum XK_emopencircle                  = 0x0ace;  /*(U+25CB WHITE CIRCLE)*/
1321     enum XK_emopenrectangle               = 0x0acf;  /*(U+25AF WHITE VERTICAL RECTANGLE)*/
1322     enum XK_leftsinglequotemark           = 0x0ad0;  /* U+2018 LEFT SINGLE QUOTATION MARK */
1323     enum XK_rightsinglequotemark          = 0x0ad1;  /* U+2019 RIGHT SINGLE QUOTATION MARK */
1324     enum XK_leftdoublequotemark           = 0x0ad2;  /* U+201C LEFT DOUBLE QUOTATION MARK */
1325     enum XK_rightdoublequotemark          = 0x0ad3;  /* U+201D RIGHT DOUBLE QUOTATION MARK */
1326     enum XK_prescription                  = 0x0ad4;  /* U+211E PRESCRIPTION TAKE */
1327     enum XK_minutes                       = 0x0ad6;  /* U+2032 PRIME */
1328     enum XK_seconds                       = 0x0ad7;  /* U+2033 DOUBLE PRIME */
1329     enum XK_latincross                    = 0x0ad9;  /* U+271D LATIN CROSS */
1330     enum XK_hexagram                      = 0x0ada;
1331     enum XK_filledrectbullet              = 0x0adb;  /*(U+25AC BLACK RECTANGLE)*/
1332     enum XK_filledlefttribullet           = 0x0adc;  /*(U+25C0 BLACK LEFT-POINTING TRIANGLE)*/
1333     enum XK_filledrighttribullet          = 0x0add;  /*(U+25B6 BLACK RIGHT-POINTING TRIANGLE)*/
1334     enum XK_emfilledcircle                = 0x0ade;  /*(U+25CF BLACK CIRCLE)*/
1335     enum XK_emfilledrect                  = 0x0adf;  /*(U+25AE BLACK VERTICAL RECTANGLE)*/
1336     enum XK_enopencircbullet              = 0x0ae0;  /*(U+25E6 WHITE BULLET)*/
1337     enum XK_enopensquarebullet            = 0x0ae1;  /*(U+25AB WHITE SMALL SQUARE)*/
1338     enum XK_openrectbullet                = 0x0ae2;  /*(U+25AD WHITE RECTANGLE)*/
1339     enum XK_opentribulletup               = 0x0ae3;  /*(U+25B3 WHITE UP-POINTING TRIANGLE)*/
1340     enum XK_opentribulletdown             = 0x0ae4;  /*(U+25BD WHITE DOWN-POINTING TRIANGLE)*/
1341     enum XK_openstar                      = 0x0ae5;  /*(U+2606 WHITE STAR)*/
1342     enum XK_enfilledcircbullet            = 0x0ae6;  /*(U+2022 BULLET)*/
1343     enum XK_enfilledsqbullet              = 0x0ae7;  /*(U+25AA BLACK SMALL SQUARE)*/
1344     enum XK_filledtribulletup             = 0x0ae8;  /*(U+25B2 BLACK UP-POINTING TRIANGLE)*/
1345     enum XK_filledtribulletdown           = 0x0ae9;  /*(U+25BC BLACK DOWN-POINTING TRIANGLE)*/
1346     enum XK_leftpointer                   = 0x0aea;  /*(U+261C WHITE LEFT POINTING INDEX)*/
1347     enum XK_rightpointer                  = 0x0aeb;  /*(U+261E WHITE RIGHT POINTING INDEX)*/
1348     enum XK_club                          = 0x0aec;  /* U+2663 BLACK CLUB SUIT */
1349     enum XK_diamond                       = 0x0aed;  /* U+2666 BLACK DIAMOND SUIT */
1350     enum XK_heart                         = 0x0aee;  /* U+2665 BLACK HEART SUIT */
1351     enum XK_maltesecross                  = 0x0af0;  /* U+2720 MALTESE CROSS */
1352     enum XK_dagger                        = 0x0af1;  /* U+2020 DAGGER */
1353     enum XK_doubledagger                  = 0x0af2;  /* U+2021 DOUBLE DAGGER */
1354     enum XK_checkmark                     = 0x0af3;  /* U+2713 CHECK MARK */
1355     enum XK_ballotcross                   = 0x0af4;  /* U+2717 BALLOT X */
1356     enum XK_musicalsharp                  = 0x0af5;  /* U+266F MUSIC SHARP SIGN */
1357     enum XK_musicalflat                   = 0x0af6;  /* U+266D MUSIC FLAT SIGN */
1358     enum XK_malesymbol                    = 0x0af7;  /* U+2642 MALE SIGN */
1359     enum XK_femalesymbol                  = 0x0af8;  /* U+2640 FEMALE SIGN */
1360     enum XK_telephone                     = 0x0af9;  /* U+260E BLACK TELEPHONE */
1361     enum XK_telephonerecorder             = 0x0afa;  /* U+2315 TELEPHONE RECORDER */
1362     enum XK_phonographcopyright           = 0x0afb;  /* U+2117 SOUND RECORDING COPYRIGHT */
1363     enum XK_caret                         = 0x0afc;  /* U+2038 CARET */
1364     enum XK_singlelowquotemark            = 0x0afd;  /* U+201A SINGLE LOW-9 QUOTATION MARK */
1365     enum XK_doublelowquotemark            = 0x0afe;  /* U+201E DOUBLE LOW-9 QUOTATION MARK */
1366     enum XK_cursor                        = 0x0aff;
1367 }
1368 
1369 /*
1370  * APL
1371  * Byte 3 = 0x0b
1372  */
1373 static if( XK_APL ){
1374     enum XK_leftcaret                     = 0x0ba3;  /*(U+003C LESS-THAN SIGN)*/
1375     enum XK_rightcaret                    = 0x0ba6;  /*(U+003E GREATER-THAN SIGN)*/
1376     enum XK_downcaret                     = 0x0ba8;  /*(U+2228 LOGICAL OR)*/
1377     enum XK_upcaret                       = 0x0ba9;  /*(U+2227 LOGICAL AND)*/
1378     enum XK_overbar                       = 0x0bc0;  /*(U+00AF MACRON)*/
1379     enum XK_downtack                      = 0x0bc2;  /* U+22A4 DOWN TACK */
1380     enum XK_upshoe                        = 0x0bc3;  /*(U+2229 INTERSECTION)*/
1381     enum XK_downstile                     = 0x0bc4;  /* U+230A LEFT FLOOR */
1382     enum XK_underbar                      = 0x0bc6;  /*(U+005F LOW LINE)*/
1383     enum XK_jot                           = 0x0bca;  /* U+2218 RING OPERATOR */
1384     enum XK_quad                          = 0x0bcc;  /* U+2395 APL FUNCTIONAL SYMBOL QUAD */
1385     enum XK_uptack                        = 0x0bce;  /* U+22A5 UP TACK */
1386     enum XK_circle                        = 0x0bcf;  /* U+25CB WHITE CIRCLE */
1387     enum XK_upstile                       = 0x0bd3;  /* U+2308 LEFT CEILING */
1388     enum XK_downshoe                      = 0x0bd6;  /*(U+222A UNION)*/
1389     enum XK_rightshoe                     = 0x0bd8;  /*(U+2283 SUPERSET OF)*/
1390     enum XK_leftshoe                      = 0x0bda;  /*(U+2282 SUBSET OF)*/
1391     enum XK_lefttack                      = 0x0bdc;  /* U+22A3 LEFT TACK */
1392     enum XK_righttack                     = 0x0bfc;  /* U+22A2 RIGHT TACK */
1393 }
1394 
1395 /*
1396  * Hebrew
1397  * Byte 3 = 0x0c
1398  */
1399 static if( XK_HEBREW ){
1400     enum XK_hebrew_doublelowline          = 0x0cdf;  /* U+2017 DOUBLE LOW LINE */
1401     enum XK_hebrew_aleph                  = 0x0ce0;  /* U+05D0 HEBREW LETTER ALEF */
1402     enum XK_hebrew_bet                    = 0x0ce1;  /* U+05D1 HEBREW LETTER BET */
1403     enum XK_hebrew_beth                   = 0x0ce1;  /* deprecated */
1404     enum XK_hebrew_gimel                  = 0x0ce2;  /* U+05D2 HEBREW LETTER GIMEL */
1405     enum XK_hebrew_gimmel                 = 0x0ce2;  /* deprecated */
1406     enum XK_hebrew_dalet                  = 0x0ce3;  /* U+05D3 HEBREW LETTER DALET */
1407     enum XK_hebrew_daleth                 = 0x0ce3;  /* deprecated */
1408     enum XK_hebrew_he                     = 0x0ce4;  /* U+05D4 HEBREW LETTER HE */
1409     enum XK_hebrew_waw                    = 0x0ce5;  /* U+05D5 HEBREW LETTER VAV */
1410     enum XK_hebrew_zain                   = 0x0ce6;  /* U+05D6 HEBREW LETTER ZAYIN */
1411     enum XK_hebrew_zayin                  = 0x0ce6;  /* deprecated */
1412     enum XK_hebrew_chet                   = 0x0ce7;  /* U+05D7 HEBREW LETTER HET */
1413     enum XK_hebrew_het                    = 0x0ce7;  /* deprecated */
1414     enum XK_hebrew_tet                    = 0x0ce8;  /* U+05D8 HEBREW LETTER TET */
1415     enum XK_hebrew_teth                   = 0x0ce8;  /* deprecated */
1416     enum XK_hebrew_yod                    = 0x0ce9;  /* U+05D9 HEBREW LETTER YOD */
1417     enum XK_hebrew_finalkaph              = 0x0cea;  /* U+05DA HEBREW LETTER FINAL KAF */
1418     enum XK_hebrew_kaph                   = 0x0ceb;  /* U+05DB HEBREW LETTER KAF */
1419     enum XK_hebrew_lamed                  = 0x0cec;  /* U+05DC HEBREW LETTER LAMED */
1420     enum XK_hebrew_finalmem               = 0x0ced;  /* U+05DD HEBREW LETTER FINAL MEM */
1421     enum XK_hebrew_mem                    = 0x0cee;  /* U+05DE HEBREW LETTER MEM */
1422     enum XK_hebrew_finalnun               = 0x0cef;  /* U+05DF HEBREW LETTER FINAL NUN */
1423     enum XK_hebrew_nun                    = 0x0cf0;  /* U+05E0 HEBREW LETTER NUN */
1424     enum XK_hebrew_samech                 = 0x0cf1;  /* U+05E1 HEBREW LETTER SAMEKH */
1425     enum XK_hebrew_samekh                 = 0x0cf1;  /* deprecated */
1426     enum XK_hebrew_ayin                   = 0x0cf2;  /* U+05E2 HEBREW LETTER AYIN */
1427     enum XK_hebrew_finalpe                = 0x0cf3;  /* U+05E3 HEBREW LETTER FINAL PE */
1428     enum XK_hebrew_pe                     = 0x0cf4;  /* U+05E4 HEBREW LETTER PE */
1429     enum XK_hebrew_finalzade              = 0x0cf5;  /* U+05E5 HEBREW LETTER FINAL TSADI */
1430     enum XK_hebrew_finalzadi              = 0x0cf5;  /* deprecated */
1431     enum XK_hebrew_zade                   = 0x0cf6;  /* U+05E6 HEBREW LETTER TSADI */
1432     enum XK_hebrew_zadi                   = 0x0cf6;  /* deprecated */
1433     enum XK_hebrew_qoph                   = 0x0cf7;  /* U+05E7 HEBREW LETTER QOF */
1434     enum XK_hebrew_kuf                    = 0x0cf7;  /* deprecated */
1435     enum XK_hebrew_resh                   = 0x0cf8;  /* U+05E8 HEBREW LETTER RESH */
1436     enum XK_hebrew_shin                   = 0x0cf9;  /* U+05E9 HEBREW LETTER SHIN */
1437     enum XK_hebrew_taw                    = 0x0cfa;  /* U+05EA HEBREW LETTER TAV */
1438     enum XK_hebrew_taf                    = 0x0cfa;  /* deprecated */
1439     enum XK_Hebrew_switch                 = 0xff7e;  /* Alias for mode_switch */
1440 }
1441 /*
1442  * Thai
1443  * Byte 3 = 0x0d
1444  */
1445 static if( XK_THAI ){
1446     enum XK_Thai_kokai                    = 0x0da1;  /* U+0E01 THAI CHARACTER KO KAI */
1447     enum XK_Thai_khokhai                  = 0x0da2;  /* U+0E02 THAI CHARACTER KHO KHAI */
1448     enum XK_Thai_khokhuat                 = 0x0da3;  /* U+0E03 THAI CHARACTER KHO KHUAT */
1449     enum XK_Thai_khokhwai                 = 0x0da4;  /* U+0E04 THAI CHARACTER KHO KHWAI */
1450     enum XK_Thai_khokhon                  = 0x0da5;  /* U+0E05 THAI CHARACTER KHO KHON */
1451     enum XK_Thai_khorakhang               = 0x0da6;  /* U+0E06 THAI CHARACTER KHO RAKHANG */
1452     enum XK_Thai_ngongu                   = 0x0da7;  /* U+0E07 THAI CHARACTER NGO NGU */
1453     enum XK_Thai_chochan                  = 0x0da8;  /* U+0E08 THAI CHARACTER CHO CHAN */
1454     enum XK_Thai_choching                 = 0x0da9;  /* U+0E09 THAI CHARACTER CHO CHING */
1455     enum XK_Thai_chochang                 = 0x0daa;  /* U+0E0A THAI CHARACTER CHO CHANG */
1456     enum XK_Thai_soso                     = 0x0dab;  /* U+0E0B THAI CHARACTER SO SO */
1457     enum XK_Thai_chochoe                  = 0x0dac;  /* U+0E0C THAI CHARACTER CHO CHOE */
1458     enum XK_Thai_yoying                   = 0x0dad;  /* U+0E0D THAI CHARACTER YO YING */
1459     enum XK_Thai_dochada                  = 0x0dae;  /* U+0E0E THAI CHARACTER DO CHADA */
1460     enum XK_Thai_topatak                  = 0x0daf;  /* U+0E0F THAI CHARACTER TO PATAK */
1461     enum XK_Thai_thothan                  = 0x0db0;  /* U+0E10 THAI CHARACTER THO THAN */
1462     enum XK_Thai_thonangmontho            = 0x0db1;  /* U+0E11 THAI CHARACTER THO NANGMONTHO */
1463     enum XK_Thai_thophuthao               = 0x0db2;  /* U+0E12 THAI CHARACTER THO PHUTHAO */
1464     enum XK_Thai_nonen                    = 0x0db3;  /* U+0E13 THAI CHARACTER NO NEN */
1465     enum XK_Thai_dodek                    = 0x0db4;  /* U+0E14 THAI CHARACTER DO DEK */
1466     enum XK_Thai_totao                    = 0x0db5;  /* U+0E15 THAI CHARACTER TO TAO */
1467     enum XK_Thai_thothung                 = 0x0db6;  /* U+0E16 THAI CHARACTER THO THUNG */
1468     enum XK_Thai_thothahan                = 0x0db7;  /* U+0E17 THAI CHARACTER THO THAHAN */
1469     enum XK_Thai_thothong                 = 0x0db8;  /* U+0E18 THAI CHARACTER THO THONG */
1470     enum XK_Thai_nonu                     = 0x0db9;  /* U+0E19 THAI CHARACTER NO NU */
1471     enum XK_Thai_bobaimai                 = 0x0dba;  /* U+0E1A THAI CHARACTER BO BAIMAI */
1472     enum XK_Thai_popla                    = 0x0dbb;  /* U+0E1B THAI CHARACTER PO PLA */
1473     enum XK_Thai_phophung                 = 0x0dbc;  /* U+0E1C THAI CHARACTER PHO PHUNG */
1474     enum XK_Thai_fofa                     = 0x0dbd;  /* U+0E1D THAI CHARACTER FO FA */
1475     enum XK_Thai_phophan                  = 0x0dbe;  /* U+0E1E THAI CHARACTER PHO PHAN */
1476     enum XK_Thai_fofan                    = 0x0dbf;  /* U+0E1F THAI CHARACTER FO FAN */
1477     enum XK_Thai_phosamphao               = 0x0dc0;  /* U+0E20 THAI CHARACTER PHO SAMPHAO */
1478     enum XK_Thai_moma                     = 0x0dc1;  /* U+0E21 THAI CHARACTER MO MA */
1479     enum XK_Thai_yoyak                    = 0x0dc2;  /* U+0E22 THAI CHARACTER YO YAK */
1480     enum XK_Thai_rorua                    = 0x0dc3;  /* U+0E23 THAI CHARACTER RO RUA */
1481     enum XK_Thai_ru                       = 0x0dc4;  /* U+0E24 THAI CHARACTER RU */
1482     enum XK_Thai_loling                   = 0x0dc5;  /* U+0E25 THAI CHARACTER LO LING */
1483     enum XK_Thai_lu                       = 0x0dc6;  /* U+0E26 THAI CHARACTER LU */
1484     enum XK_Thai_wowaen                   = 0x0dc7;  /* U+0E27 THAI CHARACTER WO WAEN */
1485     enum XK_Thai_sosala                   = 0x0dc8;  /* U+0E28 THAI CHARACTER SO SALA */
1486     enum XK_Thai_sorusi                   = 0x0dc9;  /* U+0E29 THAI CHARACTER SO RUSI */
1487     enum XK_Thai_sosua                    = 0x0dca;  /* U+0E2A THAI CHARACTER SO SUA */
1488     enum XK_Thai_hohip                    = 0x0dcb;  /* U+0E2B THAI CHARACTER HO HIP */
1489     enum XK_Thai_lochula                  = 0x0dcc;  /* U+0E2C THAI CHARACTER LO CHULA */
1490     enum XK_Thai_oang                     = 0x0dcd;  /* U+0E2D THAI CHARACTER O ANG */
1491     enum XK_Thai_honokhuk                 = 0x0dce;  /* U+0E2E THAI CHARACTER HO NOKHUK */
1492     enum XK_Thai_paiyannoi                = 0x0dcf;  /* U+0E2F THAI CHARACTER PAIYANNOI */
1493     enum XK_Thai_saraa                    = 0x0dd0;  /* U+0E30 THAI CHARACTER SARA A */
1494     enum XK_Thai_maihanakat               = 0x0dd1;  /* U+0E31 THAI CHARACTER MAI HAN-AKAT */
1495     enum XK_Thai_saraaa                   = 0x0dd2;  /* U+0E32 THAI CHARACTER SARA AA */
1496     enum XK_Thai_saraam                   = 0x0dd3;  /* U+0E33 THAI CHARACTER SARA AM */
1497     enum XK_Thai_sarai                    = 0x0dd4;  /* U+0E34 THAI CHARACTER SARA I */
1498     enum XK_Thai_saraii                   = 0x0dd5;  /* U+0E35 THAI CHARACTER SARA II */
1499     enum XK_Thai_saraue                   = 0x0dd6;  /* U+0E36 THAI CHARACTER SARA UE */
1500     enum XK_Thai_sarauee                  = 0x0dd7;  /* U+0E37 THAI CHARACTER SARA UEE */
1501     enum XK_Thai_sarau                    = 0x0dd8;  /* U+0E38 THAI CHARACTER SARA U */
1502     enum XK_Thai_sarauu                   = 0x0dd9;  /* U+0E39 THAI CHARACTER SARA UU */
1503     enum XK_Thai_phinthu                  = 0x0dda;  /* U+0E3A THAI CHARACTER PHINTHU */
1504     enum XK_Thai_maihanakat_maitho        = 0x0dde;
1505     enum XK_Thai_baht                     = 0x0ddf;  /* U+0E3F THAI CURRENCY SYMBOL BAHT */
1506     enum XK_Thai_sarae                    = 0x0de0;  /* U+0E40 THAI CHARACTER SARA E */
1507     enum XK_Thai_saraae                   = 0x0de1;  /* U+0E41 THAI CHARACTER SARA AE */
1508     enum XK_Thai_sarao                    = 0x0de2;  /* U+0E42 THAI CHARACTER SARA O */
1509     enum XK_Thai_saraaimaimuan            = 0x0de3;  /* U+0E43 THAI CHARACTER SARA AI MAIMUAN */
1510     enum XK_Thai_saraaimaimalai           = 0x0de4;  /* U+0E44 THAI CHARACTER SARA AI MAIMALAI */
1511     enum XK_Thai_lakkhangyao              = 0x0de5;  /* U+0E45 THAI CHARACTER LAKKHANGYAO */
1512     enum XK_Thai_maiyamok                 = 0x0de6;  /* U+0E46 THAI CHARACTER MAIYAMOK */
1513     enum XK_Thai_maitaikhu                = 0x0de7;  /* U+0E47 THAI CHARACTER MAITAIKHU */
1514     enum XK_Thai_maiek                    = 0x0de8;  /* U+0E48 THAI CHARACTER MAI EK */
1515     enum XK_Thai_maitho                   = 0x0de9;  /* U+0E49 THAI CHARACTER MAI THO */
1516     enum XK_Thai_maitri                   = 0x0dea;  /* U+0E4A THAI CHARACTER MAI TRI */
1517     enum XK_Thai_maichattawa              = 0x0deb;  /* U+0E4B THAI CHARACTER MAI CHATTAWA */
1518     enum XK_Thai_thanthakhat              = 0x0dec;  /* U+0E4C THAI CHARACTER THANTHAKHAT */
1519     enum XK_Thai_nikhahit                 = 0x0ded;  /* U+0E4D THAI CHARACTER NIKHAHIT */
1520     enum XK_Thai_leksun                   = 0x0df0;  /* U+0E50 THAI DIGIT ZERO */
1521     enum XK_Thai_leknung                  = 0x0df1;  /* U+0E51 THAI DIGIT ONE */
1522     enum XK_Thai_leksong                  = 0x0df2;  /* U+0E52 THAI DIGIT TWO */
1523     enum XK_Thai_leksam                   = 0x0df3;  /* U+0E53 THAI DIGIT THREE */
1524     enum XK_Thai_leksi                    = 0x0df4;  /* U+0E54 THAI DIGIT FOUR */
1525     enum XK_Thai_lekha                    = 0x0df5;  /* U+0E55 THAI DIGIT FIVE */
1526     enum XK_Thai_lekhok                   = 0x0df6;  /* U+0E56 THAI DIGIT SIX */
1527     enum XK_Thai_lekchet                  = 0x0df7;  /* U+0E57 THAI DIGIT SEVEN */
1528     enum XK_Thai_lekpaet                  = 0x0df8;  /* U+0E58 THAI DIGIT EIGHT */
1529     enum XK_Thai_lekkao                   = 0x0df9;  /* U+0E59 THAI DIGIT NINE */
1530 }
1531 
1532 /*
1533  * Korean
1534  * Byte 3 = 0x0e
1535  */
1536 static if( XK_KOREAN ){
1537     enum XK_Hangul                        = 0xff31;  /* Hangul start/stop(toggle) */
1538     enum XK_Hangul_Start                  = 0xff32;  /* Hangul start */
1539     enum XK_Hangul_End                    = 0xff33;  /* Hangul end, English start */
1540     enum XK_Hangul_Hanja                  = 0xff34;  /* Start Hangul->Hanja Conversion */
1541     enum XK_Hangul_Jamo                   = 0xff35;  /* Hangul Jamo mode */
1542     enum XK_Hangul_Romaja                 = 0xff36;  /* Hangul Romaja mode */
1543     enum XK_Hangul_Codeinput              = 0xff37;  /* Hangul code input mode */
1544     enum XK_Hangul_Jeonja                 = 0xff38;  /* Jeonja mode */
1545     enum XK_Hangul_Banja                  = 0xff39;  /* Banja mode */
1546     enum XK_Hangul_PreHanja               = 0xff3a;  /* Pre Hanja conversion */
1547     enum XK_Hangul_PostHanja              = 0xff3b;  /* Post Hanja conversion */
1548     enum XK_Hangul_SingleCandidate        = 0xff3c;  /* Single candidate */
1549     enum XK_Hangul_MultipleCandidate      = 0xff3d;  /* Multiple candidate */
1550     enum XK_Hangul_PreviousCandidate      = 0xff3e;  /* Previous candidate */
1551     enum XK_Hangul_Special                = 0xff3f;  /* Special symbols */
1552     enum XK_Hangul_switch                 = 0xff7e;  /* Alias for mode_switch */
1553 
1554     /* Hangul Consonant Characters */
1555     enum XK_Hangul_Kiyeog                 = 0x0ea1;
1556     enum XK_Hangul_SsangKiyeog            = 0x0ea2;
1557     enum XK_Hangul_KiyeogSios             = 0x0ea3;
1558     enum XK_Hangul_Nieun                  = 0x0ea4;
1559     enum XK_Hangul_NieunJieuj             = 0x0ea5;
1560     enum XK_Hangul_NieunHieuh             = 0x0ea6;
1561     enum XK_Hangul_Dikeud                 = 0x0ea7;
1562     enum XK_Hangul_SsangDikeud            = 0x0ea8;
1563     enum XK_Hangul_Rieul                  = 0x0ea9;
1564     enum XK_Hangul_RieulKiyeog            = 0x0eaa;
1565     enum XK_Hangul_RieulMieum             = 0x0eab;
1566     enum XK_Hangul_RieulPieub             = 0x0eac;
1567     enum XK_Hangul_RieulSios              = 0x0ead;
1568     enum XK_Hangul_RieulTieut             = 0x0eae;
1569     enum XK_Hangul_RieulPhieuf            = 0x0eaf;
1570     enum XK_Hangul_RieulHieuh             = 0x0eb0;
1571     enum XK_Hangul_Mieum                  = 0x0eb1;
1572     enum XK_Hangul_Pieub                  = 0x0eb2;
1573     enum XK_Hangul_SsangPieub             = 0x0eb3;
1574     enum XK_Hangul_PieubSios              = 0x0eb4;
1575     enum XK_Hangul_Sios                   = 0x0eb5;
1576     enum XK_Hangul_SsangSios              = 0x0eb6;
1577     enum XK_Hangul_Ieung                  = 0x0eb7;
1578     enum XK_Hangul_Jieuj                  = 0x0eb8;
1579     enum XK_Hangul_SsangJieuj             = 0x0eb9;
1580     enum XK_Hangul_Cieuc                  = 0x0eba;
1581     enum XK_Hangul_Khieuq                 = 0x0ebb;
1582     enum XK_Hangul_Tieut                  = 0x0ebc;
1583     enum XK_Hangul_Phieuf                 = 0x0ebd;
1584     enum XK_Hangul_Hieuh                  = 0x0ebe;
1585 
1586     /* Hangul Vowel Characters */
1587     enum XK_Hangul_A                      = 0x0ebf;
1588     enum XK_Hangul_AE                     = 0x0ec0;
1589     enum XK_Hangul_YA                     = 0x0ec1;
1590     enum XK_Hangul_YAE                    = 0x0ec2;
1591     enum XK_Hangul_EO                     = 0x0ec3;
1592     enum XK_Hangul_E                      = 0x0ec4;
1593     enum XK_Hangul_YEO                    = 0x0ec5;
1594     enum XK_Hangul_YE                     = 0x0ec6;
1595     enum XK_Hangul_O                      = 0x0ec7;
1596     enum XK_Hangul_WA                     = 0x0ec8;
1597     enum XK_Hangul_WAE                    = 0x0ec9;
1598     enum XK_Hangul_OE                     = 0x0eca;
1599     enum XK_Hangul_YO                     = 0x0ecb;
1600     enum XK_Hangul_U                      = 0x0ecc;
1601     enum XK_Hangul_WEO                    = 0x0ecd;
1602     enum XK_Hangul_WE                     = 0x0ece;
1603     enum XK_Hangul_WI                     = 0x0ecf;
1604     enum XK_Hangul_YU                     = 0x0ed0;
1605     enum XK_Hangul_EU                     = 0x0ed1;
1606     enum XK_Hangul_YI                     = 0x0ed2;
1607     enum XK_Hangul_I                      = 0x0ed3;
1608 
1609     /* Hangul syllable-final (JongSeong) Characters */
1610     enum XK_Hangul_J_Kiyeog               = 0x0ed4;
1611     enum XK_Hangul_J_SsangKiyeog          = 0x0ed5;
1612     enum XK_Hangul_J_KiyeogSios           = 0x0ed6;
1613     enum XK_Hangul_J_Nieun                = 0x0ed7;
1614     enum XK_Hangul_J_NieunJieuj           = 0x0ed8;
1615     enum XK_Hangul_J_NieunHieuh           = 0x0ed9;
1616     enum XK_Hangul_J_Dikeud               = 0x0eda;
1617     enum XK_Hangul_J_Rieul                = 0x0edb;
1618     enum XK_Hangul_J_RieulKiyeog          = 0x0edc;
1619     enum XK_Hangul_J_RieulMieum           = 0x0edd;
1620     enum XK_Hangul_J_RieulPieub           = 0x0ede;
1621     enum XK_Hangul_J_RieulSios            = 0x0edf;
1622     enum XK_Hangul_J_RieulTieut           = 0x0ee0;
1623     enum XK_Hangul_J_RieulPhieuf          = 0x0ee1;
1624     enum XK_Hangul_J_RieulHieuh           = 0x0ee2;
1625     enum XK_Hangul_J_Mieum                = 0x0ee3;
1626     enum XK_Hangul_J_Pieub                = 0x0ee4;
1627     enum XK_Hangul_J_PieubSios            = 0x0ee5;
1628     enum XK_Hangul_J_Sios                 = 0x0ee6;
1629     enum XK_Hangul_J_SsangSios            = 0x0ee7;
1630     enum XK_Hangul_J_Ieung                = 0x0ee8;
1631     enum XK_Hangul_J_Jieuj                = 0x0ee9;
1632     enum XK_Hangul_J_Cieuc                = 0x0eea;
1633     enum XK_Hangul_J_Khieuq               = 0x0eeb;
1634     enum XK_Hangul_J_Tieut                = 0x0eec;
1635     enum XK_Hangul_J_Phieuf               = 0x0eed;
1636     enum XK_Hangul_J_Hieuh                = 0x0eee;
1637 
1638     /* Ancient Hangul Consonant Characters */
1639     enum XK_Hangul_RieulYeorinHieuh       = 0x0eef;
1640     enum XK_Hangul_SunkyeongeumMieum      = 0x0ef0;
1641     enum XK_Hangul_SunkyeongeumPieub      = 0x0ef1;
1642     enum XK_Hangul_PanSios                = 0x0ef2;
1643     enum XK_Hangul_KkogjiDalrinIeung      = 0x0ef3;
1644     enum XK_Hangul_SunkyeongeumPhieuf     = 0x0ef4;
1645     enum XK_Hangul_YeorinHieuh            = 0x0ef5;
1646 
1647     /* Ancient Hangul Vowel Characters */
1648     enum XK_Hangul_AraeA                  = 0x0ef6;
1649     enum XK_Hangul_AraeAE                 = 0x0ef7;
1650 
1651     /* Ancient Hangul syllable-final (JongSeong) Characters */
1652     enum XK_Hangul_J_PanSios              = 0x0ef8;
1653     enum XK_Hangul_J_KkogjiDalrinIeung    = 0x0ef9;
1654     enum XK_Hangul_J_YeorinHieuh          = 0x0efa;
1655 
1656     /* Korean currency symbol */
1657     enum XK_Korean_Won                    = 0x0eff;  /*(U+20A9 WON SIGN)*/
1658 }
1659 
1660 /*
1661  * Armenian
1662  */
1663 static if( XK_ARMENIAN ){
1664     enum XK_Armenian_ligature_ew       = 0x1000587;  /* U+0587 ARMENIAN SMALL LIGATURE ECH YIWN */
1665     enum XK_Armenian_full_stop         = 0x1000589;  /* U+0589 ARMENIAN FULL STOP */
1666     enum XK_Armenian_verjaket          = 0x1000589;  /* U+0589 ARMENIAN FULL STOP */
1667     enum XK_Armenian_separation_mark   = 0x100055d;  /* U+055D ARMENIAN COMMA */
1668     enum XK_Armenian_but               = 0x100055d;  /* U+055D ARMENIAN COMMA */
1669     enum XK_Armenian_hyphen            = 0x100058a;  /* U+058A ARMENIAN HYPHEN */
1670     enum XK_Armenian_yentamna          = 0x100058a;  /* U+058A ARMENIAN HYPHEN */
1671     enum XK_Armenian_exclam            = 0x100055c;  /* U+055C ARMENIAN EXCLAMATION MARK */
1672     enum XK_Armenian_amanak            = 0x100055c;  /* U+055C ARMENIAN EXCLAMATION MARK */
1673     enum XK_Armenian_accent            = 0x100055b;  /* U+055B ARMENIAN EMPHASIS MARK */
1674     enum XK_Armenian_shesht            = 0x100055b;  /* U+055B ARMENIAN EMPHASIS MARK */
1675     enum XK_Armenian_question          = 0x100055e;  /* U+055E ARMENIAN QUESTION MARK */
1676     enum XK_Armenian_paruyk            = 0x100055e;  /* U+055E ARMENIAN QUESTION MARK */
1677     enum XK_Armenian_AYB               = 0x1000531;  /* U+0531 ARMENIAN CAPITAL LETTER AYB */
1678     enum XK_Armenian_ayb               = 0x1000561;  /* U+0561 ARMENIAN SMALL LETTER AYB */
1679     enum XK_Armenian_BEN               = 0x1000532;  /* U+0532 ARMENIAN CAPITAL LETTER BEN */
1680     enum XK_Armenian_ben               = 0x1000562;  /* U+0562 ARMENIAN SMALL LETTER BEN */
1681     enum XK_Armenian_GIM               = 0x1000533;  /* U+0533 ARMENIAN CAPITAL LETTER GIM */
1682     enum XK_Armenian_gim               = 0x1000563;  /* U+0563 ARMENIAN SMALL LETTER GIM */
1683     enum XK_Armenian_DA                = 0x1000534;  /* U+0534 ARMENIAN CAPITAL LETTER DA */
1684     enum XK_Armenian_da                = 0x1000564;  /* U+0564 ARMENIAN SMALL LETTER DA */
1685     enum XK_Armenian_YECH              = 0x1000535;  /* U+0535 ARMENIAN CAPITAL LETTER ECH */
1686     enum XK_Armenian_yech              = 0x1000565;  /* U+0565 ARMENIAN SMALL LETTER ECH */
1687     enum XK_Armenian_ZA                = 0x1000536;  /* U+0536 ARMENIAN CAPITAL LETTER ZA */
1688     enum XK_Armenian_za                = 0x1000566;  /* U+0566 ARMENIAN SMALL LETTER ZA */
1689     enum XK_Armenian_E                 = 0x1000537;  /* U+0537 ARMENIAN CAPITAL LETTER EH */
1690     enum XK_Armenian_e                 = 0x1000567;  /* U+0567 ARMENIAN SMALL LETTER EH */
1691     enum XK_Armenian_AT                = 0x1000538;  /* U+0538 ARMENIAN CAPITAL LETTER ET */
1692     enum XK_Armenian_at                = 0x1000568;  /* U+0568 ARMENIAN SMALL LETTER ET */
1693     enum XK_Armenian_TO                = 0x1000539;  /* U+0539 ARMENIAN CAPITAL LETTER TO */
1694     enum XK_Armenian_to                = 0x1000569;  /* U+0569 ARMENIAN SMALL LETTER TO */
1695     enum XK_Armenian_ZHE               = 0x100053a;  /* U+053A ARMENIAN CAPITAL LETTER ZHE */
1696     enum XK_Armenian_zhe               = 0x100056a;  /* U+056A ARMENIAN SMALL LETTER ZHE */
1697     enum XK_Armenian_INI               = 0x100053b;  /* U+053B ARMENIAN CAPITAL LETTER INI */
1698     enum XK_Armenian_ini               = 0x100056b;  /* U+056B ARMENIAN SMALL LETTER INI */
1699     enum XK_Armenian_LYUN              = 0x100053c;  /* U+053C ARMENIAN CAPITAL LETTER LIWN */
1700     enum XK_Armenian_lyun              = 0x100056c;  /* U+056C ARMENIAN SMALL LETTER LIWN */
1701     enum XK_Armenian_KHE               = 0x100053d;  /* U+053D ARMENIAN CAPITAL LETTER XEH */
1702     enum XK_Armenian_khe               = 0x100056d;  /* U+056D ARMENIAN SMALL LETTER XEH */
1703     enum XK_Armenian_TSA               = 0x100053e;  /* U+053E ARMENIAN CAPITAL LETTER CA */
1704     enum XK_Armenian_tsa               = 0x100056e;  /* U+056E ARMENIAN SMALL LETTER CA */
1705     enum XK_Armenian_KEN               = 0x100053f;  /* U+053F ARMENIAN CAPITAL LETTER KEN */
1706     enum XK_Armenian_ken               = 0x100056f;  /* U+056F ARMENIAN SMALL LETTER KEN */
1707     enum XK_Armenian_HO                = 0x1000540;  /* U+0540 ARMENIAN CAPITAL LETTER HO */
1708     enum XK_Armenian_ho                = 0x1000570;  /* U+0570 ARMENIAN SMALL LETTER HO */
1709     enum XK_Armenian_DZA               = 0x1000541;  /* U+0541 ARMENIAN CAPITAL LETTER JA */
1710     enum XK_Armenian_dza               = 0x1000571;  /* U+0571 ARMENIAN SMALL LETTER JA */
1711     enum XK_Armenian_GHAT              = 0x1000542;  /* U+0542 ARMENIAN CAPITAL LETTER GHAD */
1712     enum XK_Armenian_ghat              = 0x1000572;  /* U+0572 ARMENIAN SMALL LETTER GHAD */
1713     enum XK_Armenian_TCHE              = 0x1000543;  /* U+0543 ARMENIAN CAPITAL LETTER CHEH */
1714     enum XK_Armenian_tche              = 0x1000573;  /* U+0573 ARMENIAN SMALL LETTER CHEH */
1715     enum XK_Armenian_MEN               = 0x1000544;  /* U+0544 ARMENIAN CAPITAL LETTER MEN */
1716     enum XK_Armenian_men               = 0x1000574;  /* U+0574 ARMENIAN SMALL LETTER MEN */
1717     enum XK_Armenian_HI                = 0x1000545;  /* U+0545 ARMENIAN CAPITAL LETTER YI */
1718     enum XK_Armenian_hi                = 0x1000575;  /* U+0575 ARMENIAN SMALL LETTER YI */
1719     enum XK_Armenian_NU                = 0x1000546;  /* U+0546 ARMENIAN CAPITAL LETTER NOW */
1720     enum XK_Armenian_nu                = 0x1000576;  /* U+0576 ARMENIAN SMALL LETTER NOW */
1721     enum XK_Armenian_SHA               = 0x1000547;  /* U+0547 ARMENIAN CAPITAL LETTER SHA */
1722     enum XK_Armenian_sha               = 0x1000577;  /* U+0577 ARMENIAN SMALL LETTER SHA */
1723     enum XK_Armenian_VO                = 0x1000548;  /* U+0548 ARMENIAN CAPITAL LETTER VO */
1724     enum XK_Armenian_vo                = 0x1000578;  /* U+0578 ARMENIAN SMALL LETTER VO */
1725     enum XK_Armenian_CHA               = 0x1000549;  /* U+0549 ARMENIAN CAPITAL LETTER CHA */
1726     enum XK_Armenian_cha               = 0x1000579;  /* U+0579 ARMENIAN SMALL LETTER CHA */
1727     enum XK_Armenian_PE                = 0x100054a;  /* U+054A ARMENIAN CAPITAL LETTER PEH */
1728     enum XK_Armenian_pe                = 0x100057a;  /* U+057A ARMENIAN SMALL LETTER PEH */
1729     enum XK_Armenian_JE                = 0x100054b;  /* U+054B ARMENIAN CAPITAL LETTER JHEH */
1730     enum XK_Armenian_je                = 0x100057b;  /* U+057B ARMENIAN SMALL LETTER JHEH */
1731     enum XK_Armenian_RA                = 0x100054c;  /* U+054C ARMENIAN CAPITAL LETTER RA */
1732     enum XK_Armenian_ra                = 0x100057c;  /* U+057C ARMENIAN SMALL LETTER RA */
1733     enum XK_Armenian_SE                = 0x100054d;  /* U+054D ARMENIAN CAPITAL LETTER SEH */
1734     enum XK_Armenian_se                = 0x100057d;  /* U+057D ARMENIAN SMALL LETTER SEH */
1735     enum XK_Armenian_VEV               = 0x100054e;  /* U+054E ARMENIAN CAPITAL LETTER VEW */
1736     enum XK_Armenian_vev               = 0x100057e;  /* U+057E ARMENIAN SMALL LETTER VEW */
1737     enum XK_Armenian_TYUN              = 0x100054f;  /* U+054F ARMENIAN CAPITAL LETTER TIWN */
1738     enum XK_Armenian_tyun              = 0x100057f;  /* U+057F ARMENIAN SMALL LETTER TIWN */
1739     enum XK_Armenian_RE                = 0x1000550;  /* U+0550 ARMENIAN CAPITAL LETTER REH */
1740     enum XK_Armenian_re                = 0x1000580;  /* U+0580 ARMENIAN SMALL LETTER REH */
1741     enum XK_Armenian_TSO               = 0x1000551;  /* U+0551 ARMENIAN CAPITAL LETTER CO */
1742     enum XK_Armenian_tso               = 0x1000581;  /* U+0581 ARMENIAN SMALL LETTER CO */
1743     enum XK_Armenian_VYUN              = 0x1000552;  /* U+0552 ARMENIAN CAPITAL LETTER YIWN */
1744     enum XK_Armenian_vyun              = 0x1000582;  /* U+0582 ARMENIAN SMALL LETTER YIWN */
1745     enum XK_Armenian_PYUR              = 0x1000553;  /* U+0553 ARMENIAN CAPITAL LETTER PIWR */
1746     enum XK_Armenian_pyur              = 0x1000583;  /* U+0583 ARMENIAN SMALL LETTER PIWR */
1747     enum XK_Armenian_KE                = 0x1000554;  /* U+0554 ARMENIAN CAPITAL LETTER KEH */
1748     enum XK_Armenian_ke                = 0x1000584;  /* U+0584 ARMENIAN SMALL LETTER KEH */
1749     enum XK_Armenian_O                 = 0x1000555;  /* U+0555 ARMENIAN CAPITAL LETTER OH */
1750     enum XK_Armenian_o                 = 0x1000585;  /* U+0585 ARMENIAN SMALL LETTER OH */
1751     enum XK_Armenian_FE                = 0x1000556;  /* U+0556 ARMENIAN CAPITAL LETTER FEH */
1752     enum XK_Armenian_fe                = 0x1000586;  /* U+0586 ARMENIAN SMALL LETTER FEH */
1753     enum XK_Armenian_apostrophe        = 0x100055a;  /* U+055A ARMENIAN APOSTROPHE */
1754 }
1755 
1756 /*
1757  * Georgian
1758  */
1759 static if( XK_GEORGIAN ){
1760     enum XK_Georgian_an                = 0x10010d0;  /* U+10D0 GEORGIAN LETTER AN */
1761     enum XK_Georgian_ban               = 0x10010d1;  /* U+10D1 GEORGIAN LETTER BAN */
1762     enum XK_Georgian_gan               = 0x10010d2;  /* U+10D2 GEORGIAN LETTER GAN */
1763     enum XK_Georgian_don               = 0x10010d3;  /* U+10D3 GEORGIAN LETTER DON */
1764     enum XK_Georgian_en                = 0x10010d4;  /* U+10D4 GEORGIAN LETTER EN */
1765     enum XK_Georgian_vin               = 0x10010d5;  /* U+10D5 GEORGIAN LETTER VIN */
1766     enum XK_Georgian_zen               = 0x10010d6;  /* U+10D6 GEORGIAN LETTER ZEN */
1767     enum XK_Georgian_tan               = 0x10010d7;  /* U+10D7 GEORGIAN LETTER TAN */
1768     enum XK_Georgian_in                = 0x10010d8;  /* U+10D8 GEORGIAN LETTER IN */
1769     enum XK_Georgian_kan               = 0x10010d9;  /* U+10D9 GEORGIAN LETTER KAN */
1770     enum XK_Georgian_las               = 0x10010da;  /* U+10DA GEORGIAN LETTER LAS */
1771     enum XK_Georgian_man               = 0x10010db;  /* U+10DB GEORGIAN LETTER MAN */
1772     enum XK_Georgian_nar               = 0x10010dc;  /* U+10DC GEORGIAN LETTER NAR */
1773     enum XK_Georgian_on                = 0x10010dd;  /* U+10DD GEORGIAN LETTER ON */
1774     enum XK_Georgian_par               = 0x10010de;  /* U+10DE GEORGIAN LETTER PAR */
1775     enum XK_Georgian_zhar              = 0x10010df;  /* U+10DF GEORGIAN LETTER ZHAR */
1776     enum XK_Georgian_rae               = 0x10010e0;  /* U+10E0 GEORGIAN LETTER RAE */
1777     enum XK_Georgian_san               = 0x10010e1;  /* U+10E1 GEORGIAN LETTER SAN */
1778     enum XK_Georgian_tar               = 0x10010e2;  /* U+10E2 GEORGIAN LETTER TAR */
1779     enum XK_Georgian_un                = 0x10010e3;  /* U+10E3 GEORGIAN LETTER UN */
1780     enum XK_Georgian_phar              = 0x10010e4;  /* U+10E4 GEORGIAN LETTER PHAR */
1781     enum XK_Georgian_khar              = 0x10010e5;  /* U+10E5 GEORGIAN LETTER KHAR */
1782     enum XK_Georgian_ghan              = 0x10010e6;  /* U+10E6 GEORGIAN LETTER GHAN */
1783     enum XK_Georgian_qar               = 0x10010e7;  /* U+10E7 GEORGIAN LETTER QAR */
1784     enum XK_Georgian_shin              = 0x10010e8;  /* U+10E8 GEORGIAN LETTER SHIN */
1785     enum XK_Georgian_chin              = 0x10010e9;  /* U+10E9 GEORGIAN LETTER CHIN */
1786     enum XK_Georgian_can               = 0x10010ea;  /* U+10EA GEORGIAN LETTER CAN */
1787     enum XK_Georgian_jil               = 0x10010eb;  /* U+10EB GEORGIAN LETTER JIL */
1788     enum XK_Georgian_cil               = 0x10010ec;  /* U+10EC GEORGIAN LETTER CIL */
1789     enum XK_Georgian_char              = 0x10010ed;  /* U+10ED GEORGIAN LETTER CHAR */
1790     enum XK_Georgian_xan               = 0x10010ee;  /* U+10EE GEORGIAN LETTER XAN */
1791     enum XK_Georgian_jhan              = 0x10010ef;  /* U+10EF GEORGIAN LETTER JHAN */
1792     enum XK_Georgian_hae               = 0x10010f0;  /* U+10F0 GEORGIAN LETTER HAE */
1793     enum XK_Georgian_he                = 0x10010f1;  /* U+10F1 GEORGIAN LETTER HE */
1794     enum XK_Georgian_hie               = 0x10010f2;  /* U+10F2 GEORGIAN LETTER HIE */
1795     enum XK_Georgian_we                = 0x10010f3;  /* U+10F3 GEORGIAN LETTER WE */
1796     enum XK_Georgian_har               = 0x10010f4;  /* U+10F4 GEORGIAN LETTER HAR */
1797     enum XK_Georgian_hoe               = 0x10010f5;  /* U+10F5 GEORGIAN LETTER HOE */
1798     enum XK_Georgian_fi                = 0x10010f6;  /* U+10F6 GEORGIAN LETTER FI */
1799 }
1800 
1801 /*
1802  * Azeri (and other Turkic or Caucasian languages)
1803  */
1804 static if( XK_CAUCASUS ){
1805 /* latin */
1806     enum XK_Xabovedot                  = 0x1001e8a;  /* U+1E8A LATIN CAPITAL LETTER X WITH DOT ABOVE */
1807     enum XK_Ibreve                     = 0x100012c;  /* U+012C LATIN CAPITAL LETTER I WITH BREVE */
1808     enum XK_Zstroke                    = 0x10001b5;  /* U+01B5 LATIN CAPITAL LETTER Z WITH STROKE */
1809     enum XK_Gcaron                     = 0x10001e6;  /* U+01E6 LATIN CAPITAL LETTER G WITH CARON */
1810     enum XK_Ocaron                     = 0x10001d1;  /* U+01D2 LATIN CAPITAL LETTER O WITH CARON */
1811     enum XK_Obarred                    = 0x100019f;  /* U+019F LATIN CAPITAL LETTER O WITH MIDDLE TILDE */
1812     enum XK_xabovedot                  = 0x1001e8b;  /* U+1E8B LATIN SMALL LETTER X WITH DOT ABOVE */
1813     enum XK_ibreve                     = 0x100012d;  /* U+012D LATIN SMALL LETTER I WITH BREVE */
1814     enum XK_zstroke                    = 0x10001b6;  /* U+01B6 LATIN SMALL LETTER Z WITH STROKE */
1815     enum XK_gcaron                     = 0x10001e7;  /* U+01E7 LATIN SMALL LETTER G WITH CARON */
1816     enum XK_ocaron                     = 0x10001d2;  /* U+01D2 LATIN SMALL LETTER O WITH CARON */
1817     enum XK_obarred                    = 0x1000275;  /* U+0275 LATIN SMALL LETTER BARRED O */
1818     enum XK_SCHWA                      = 0x100018f;  /* U+018F LATIN CAPITAL LETTER SCHWA */
1819     enum XK_schwa                      = 0x1000259;  /* U+0259 LATIN SMALL LETTER SCHWA */
1820     /* those are not really Caucasus */
1821     /* For Inupiak */
1822     enum XK_Lbelowdot                  = 0x1001e36;  /* U+1E36 LATIN CAPITAL LETTER L WITH DOT BELOW */
1823     enum XK_lbelowdot                  = 0x1001e37;  /* U+1E37 LATIN SMALL LETTER L WITH DOT BELOW */
1824 }
1825 
1826 /*
1827  * Vietnamese
1828  */
1829 static if( XK_VIETNAMESE ){
1830     enum XK_Abelowdot                  = 0x1001ea0;  /* U+1EA0 LATIN CAPITAL LETTER A WITH DOT BELOW */
1831     enum XK_abelowdot                  = 0x1001ea1;  /* U+1EA1 LATIN SMALL LETTER A WITH DOT BELOW */
1832     enum XK_Ahook                      = 0x1001ea2;  /* U+1EA2 LATIN CAPITAL LETTER A WITH HOOK ABOVE */
1833     enum XK_ahook                      = 0x1001ea3;  /* U+1EA3 LATIN SMALL LETTER A WITH HOOK ABOVE */
1834     enum XK_Acircumflexacute           = 0x1001ea4;  /* U+1EA4 LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND ACUTE */
1835     enum XK_acircumflexacute           = 0x1001ea5;  /* U+1EA5 LATIN SMALL LETTER A WITH CIRCUMFLEX AND ACUTE */
1836     enum XK_Acircumflexgrave           = 0x1001ea6;  /* U+1EA6 LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND GRAVE */
1837     enum XK_acircumflexgrave           = 0x1001ea7;  /* U+1EA7 LATIN SMALL LETTER A WITH CIRCUMFLEX AND GRAVE */
1838     enum XK_Acircumflexhook            = 0x1001ea8;  /* U+1EA8 LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND HOOK ABOVE */
1839     enum XK_acircumflexhook            = 0x1001ea9;  /* U+1EA9 LATIN SMALL LETTER A WITH CIRCUMFLEX AND HOOK ABOVE */
1840     enum XK_Acircumflextilde           = 0x1001eaa;  /* U+1EAA LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND TILDE */
1841     enum XK_acircumflextilde           = 0x1001eab;  /* U+1EAB LATIN SMALL LETTER A WITH CIRCUMFLEX AND TILDE */
1842     enum XK_Acircumflexbelowdot        = 0x1001eac;  /* U+1EAC LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND DOT BELOW */
1843     enum XK_acircumflexbelowdot        = 0x1001ead;  /* U+1EAD LATIN SMALL LETTER A WITH CIRCUMFLEX AND DOT BELOW */
1844     enum XK_Abreveacute                = 0x1001eae;  /* U+1EAE LATIN CAPITAL LETTER A WITH BREVE AND ACUTE */
1845     enum XK_abreveacute                = 0x1001eaf;  /* U+1EAF LATIN SMALL LETTER A WITH BREVE AND ACUTE */
1846     enum XK_Abrevegrave                = 0x1001eb0;  /* U+1EB0 LATIN CAPITAL LETTER A WITH BREVE AND GRAVE */
1847     enum XK_abrevegrave                = 0x1001eb1;  /* U+1EB1 LATIN SMALL LETTER A WITH BREVE AND GRAVE */
1848     enum XK_Abrevehook                 = 0x1001eb2;  /* U+1EB2 LATIN CAPITAL LETTER A WITH BREVE AND HOOK ABOVE */
1849     enum XK_abrevehook                 = 0x1001eb3;  /* U+1EB3 LATIN SMALL LETTER A WITH BREVE AND HOOK ABOVE */
1850     enum XK_Abrevetilde                = 0x1001eb4;  /* U+1EB4 LATIN CAPITAL LETTER A WITH BREVE AND TILDE */
1851     enum XK_abrevetilde                = 0x1001eb5;  /* U+1EB5 LATIN SMALL LETTER A WITH BREVE AND TILDE */
1852     enum XK_Abrevebelowdot             = 0x1001eb6;  /* U+1EB6 LATIN CAPITAL LETTER A WITH BREVE AND DOT BELOW */
1853     enum XK_abrevebelowdot             = 0x1001eb7;  /* U+1EB7 LATIN SMALL LETTER A WITH BREVE AND DOT BELOW */
1854     enum XK_Ebelowdot                  = 0x1001eb8;  /* U+1EB8 LATIN CAPITAL LETTER E WITH DOT BELOW */
1855     enum XK_ebelowdot                  = 0x1001eb9;  /* U+1EB9 LATIN SMALL LETTER E WITH DOT BELOW */
1856     enum XK_Ehook                      = 0x1001eba;  /* U+1EBA LATIN CAPITAL LETTER E WITH HOOK ABOVE */
1857     enum XK_ehook                      = 0x1001ebb;  /* U+1EBB LATIN SMALL LETTER E WITH HOOK ABOVE */
1858     enum XK_Etilde                     = 0x1001ebc;  /* U+1EBC LATIN CAPITAL LETTER E WITH TILDE */
1859     enum XK_etilde                     = 0x1001ebd;  /* U+1EBD LATIN SMALL LETTER E WITH TILDE */
1860     enum XK_Ecircumflexacute           = 0x1001ebe;  /* U+1EBE LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND ACUTE */
1861     enum XK_ecircumflexacute           = 0x1001ebf;  /* U+1EBF LATIN SMALL LETTER E WITH CIRCUMFLEX AND ACUTE */
1862     enum XK_Ecircumflexgrave           = 0x1001ec0;  /* U+1EC0 LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND GRAVE */
1863     enum XK_ecircumflexgrave           = 0x1001ec1;  /* U+1EC1 LATIN SMALL LETTER E WITH CIRCUMFLEX AND GRAVE */
1864     enum XK_Ecircumflexhook            = 0x1001ec2;  /* U+1EC2 LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND HOOK ABOVE */
1865     enum XK_ecircumflexhook            = 0x1001ec3;  /* U+1EC3 LATIN SMALL LETTER E WITH CIRCUMFLEX AND HOOK ABOVE */
1866     enum XK_Ecircumflextilde           = 0x1001ec4;  /* U+1EC4 LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND TILDE */
1867     enum XK_ecircumflextilde           = 0x1001ec5;  /* U+1EC5 LATIN SMALL LETTER E WITH CIRCUMFLEX AND TILDE */
1868     enum XK_Ecircumflexbelowdot        = 0x1001ec6;  /* U+1EC6 LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND DOT BELOW */
1869     enum XK_ecircumflexbelowdot        = 0x1001ec7;  /* U+1EC7 LATIN SMALL LETTER E WITH CIRCUMFLEX AND DOT BELOW */
1870     enum XK_Ihook                      = 0x1001ec8;  /* U+1EC8 LATIN CAPITAL LETTER I WITH HOOK ABOVE */
1871     enum XK_ihook                      = 0x1001ec9;  /* U+1EC9 LATIN SMALL LETTER I WITH HOOK ABOVE */
1872     enum XK_Ibelowdot                  = 0x1001eca;  /* U+1ECA LATIN CAPITAL LETTER I WITH DOT BELOW */
1873     enum XK_ibelowdot                  = 0x1001ecb;  /* U+1ECB LATIN SMALL LETTER I WITH DOT BELOW */
1874     enum XK_Obelowdot                  = 0x1001ecc;  /* U+1ECC LATIN CAPITAL LETTER O WITH DOT BELOW */
1875     enum XK_obelowdot                  = 0x1001ecd;  /* U+1ECD LATIN SMALL LETTER O WITH DOT BELOW */
1876     enum XK_Ohook                      = 0x1001ece;  /* U+1ECE LATIN CAPITAL LETTER O WITH HOOK ABOVE */
1877     enum XK_ohook                      = 0x1001ecf;  /* U+1ECF LATIN SMALL LETTER O WITH HOOK ABOVE */
1878     enum XK_Ocircumflexacute           = 0x1001ed0;  /* U+1ED0 LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND ACUTE */
1879     enum XK_ocircumflexacute           = 0x1001ed1;  /* U+1ED1 LATIN SMALL LETTER O WITH CIRCUMFLEX AND ACUTE */
1880     enum XK_Ocircumflexgrave           = 0x1001ed2;  /* U+1ED2 LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND GRAVE */
1881     enum XK_ocircumflexgrave           = 0x1001ed3;  /* U+1ED3 LATIN SMALL LETTER O WITH CIRCUMFLEX AND GRAVE */
1882     enum XK_Ocircumflexhook            = 0x1001ed4;  /* U+1ED4 LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND HOOK ABOVE */
1883     enum XK_ocircumflexhook            = 0x1001ed5;  /* U+1ED5 LATIN SMALL LETTER O WITH CIRCUMFLEX AND HOOK ABOVE */
1884     enum XK_Ocircumflextilde           = 0x1001ed6;  /* U+1ED6 LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND TILDE */
1885     enum XK_ocircumflextilde           = 0x1001ed7;  /* U+1ED7 LATIN SMALL LETTER O WITH CIRCUMFLEX AND TILDE */
1886     enum XK_Ocircumflexbelowdot        = 0x1001ed8;  /* U+1ED8 LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND DOT BELOW */
1887     enum XK_ocircumflexbelowdot        = 0x1001ed9;  /* U+1ED9 LATIN SMALL LETTER O WITH CIRCUMFLEX AND DOT BELOW */
1888     enum XK_Ohornacute                 = 0x1001eda;  /* U+1EDA LATIN CAPITAL LETTER O WITH HORN AND ACUTE */
1889     enum XK_ohornacute                 = 0x1001edb;  /* U+1EDB LATIN SMALL LETTER O WITH HORN AND ACUTE */
1890     enum XK_Ohorngrave                 = 0x1001edc;  /* U+1EDC LATIN CAPITAL LETTER O WITH HORN AND GRAVE */
1891     enum XK_ohorngrave                 = 0x1001edd;  /* U+1EDD LATIN SMALL LETTER O WITH HORN AND GRAVE */
1892     enum XK_Ohornhook                  = 0x1001ede;  /* U+1EDE LATIN CAPITAL LETTER O WITH HORN AND HOOK ABOVE */
1893     enum XK_ohornhook                  = 0x1001edf;  /* U+1EDF LATIN SMALL LETTER O WITH HORN AND HOOK ABOVE */
1894     enum XK_Ohorntilde                 = 0x1001ee0;  /* U+1EE0 LATIN CAPITAL LETTER O WITH HORN AND TILDE */
1895     enum XK_ohorntilde                 = 0x1001ee1;  /* U+1EE1 LATIN SMALL LETTER O WITH HORN AND TILDE */
1896     enum XK_Ohornbelowdot              = 0x1001ee2;  /* U+1EE2 LATIN CAPITAL LETTER O WITH HORN AND DOT BELOW */
1897     enum XK_ohornbelowdot              = 0x1001ee3;  /* U+1EE3 LATIN SMALL LETTER O WITH HORN AND DOT BELOW */
1898     enum XK_Ubelowdot                  = 0x1001ee4;  /* U+1EE4 LATIN CAPITAL LETTER U WITH DOT BELOW */
1899     enum XK_ubelowdot                  = 0x1001ee5;  /* U+1EE5 LATIN SMALL LETTER U WITH DOT BELOW */
1900     enum XK_Uhook                      = 0x1001ee6;  /* U+1EE6 LATIN CAPITAL LETTER U WITH HOOK ABOVE */
1901     enum XK_uhook                      = 0x1001ee7;  /* U+1EE7 LATIN SMALL LETTER U WITH HOOK ABOVE */
1902     enum XK_Uhornacute                 = 0x1001ee8;  /* U+1EE8 LATIN CAPITAL LETTER U WITH HORN AND ACUTE */
1903     enum XK_uhornacute                 = 0x1001ee9;  /* U+1EE9 LATIN SMALL LETTER U WITH HORN AND ACUTE */
1904     enum XK_Uhorngrave                 = 0x1001eea;  /* U+1EEA LATIN CAPITAL LETTER U WITH HORN AND GRAVE */
1905     enum XK_uhorngrave                 = 0x1001eeb;  /* U+1EEB LATIN SMALL LETTER U WITH HORN AND GRAVE */
1906     enum XK_Uhornhook                  = 0x1001eec;  /* U+1EEC LATIN CAPITAL LETTER U WITH HORN AND HOOK ABOVE */
1907     enum XK_uhornhook                  = 0x1001eed;  /* U+1EED LATIN SMALL LETTER U WITH HORN AND HOOK ABOVE */
1908     enum XK_Uhorntilde                 = 0x1001eee;  /* U+1EEE LATIN CAPITAL LETTER U WITH HORN AND TILDE */
1909     enum XK_uhorntilde                 = 0x1001eef;  /* U+1EEF LATIN SMALL LETTER U WITH HORN AND TILDE */
1910     enum XK_Uhornbelowdot              = 0x1001ef0;  /* U+1EF0 LATIN CAPITAL LETTER U WITH HORN AND DOT BELOW */
1911     enum XK_uhornbelowdot              = 0x1001ef1;  /* U+1EF1 LATIN SMALL LETTER U WITH HORN AND DOT BELOW */
1912     enum XK_Ybelowdot                  = 0x1001ef4;  /* U+1EF4 LATIN CAPITAL LETTER Y WITH DOT BELOW */
1913     enum XK_ybelowdot                  = 0x1001ef5;  /* U+1EF5 LATIN SMALL LETTER Y WITH DOT BELOW */
1914     enum XK_Yhook                      = 0x1001ef6;  /* U+1EF6 LATIN CAPITAL LETTER Y WITH HOOK ABOVE */
1915     enum XK_yhook                      = 0x1001ef7;  /* U+1EF7 LATIN SMALL LETTER Y WITH HOOK ABOVE */
1916     enum XK_Ytilde                     = 0x1001ef8;  /* U+1EF8 LATIN CAPITAL LETTER Y WITH TILDE */
1917     enum XK_ytilde                     = 0x1001ef9;  /* U+1EF9 LATIN SMALL LETTER Y WITH TILDE */
1918     enum XK_Ohorn                      = 0x10001a0;  /* U+01A0 LATIN CAPITAL LETTER O WITH HORN */
1919     enum XK_ohorn                      = 0x10001a1;  /* U+01A1 LATIN SMALL LETTER O WITH HORN */
1920     enum XK_Uhorn                      = 0x10001af;  /* U+01AF LATIN CAPITAL LETTER U WITH HORN */
1921     enum XK_uhorn                      = 0x10001b0;  /* U+01B0 LATIN SMALL LETTER U WITH HORN */
1922 }
1923 
1924 
1925 static if( XK_CURRENCY ){
1926     enum XK_EcuSign                    = 0x10020a0;  /* U+20A0 EURO-CURRENCY SIGN */
1927     enum XK_ColonSign                  = 0x10020a1;  /* U+20A1 COLON SIGN */
1928     enum XK_CruzeiroSign               = 0x10020a2;  /* U+20A2 CRUZEIRO SIGN */
1929     enum XK_FFrancSign                 = 0x10020a3;  /* U+20A3 FRENCH FRANC SIGN */
1930     enum XK_LiraSign                   = 0x10020a4;  /* U+20A4 LIRA SIGN */
1931     enum XK_MillSign                   = 0x10020a5;  /* U+20A5 MILL SIGN */
1932     enum XK_NairaSign                  = 0x10020a6;  /* U+20A6 NAIRA SIGN */
1933     enum XK_PesetaSign                 = 0x10020a7;  /* U+20A7 PESETA SIGN */
1934     enum XK_RupeeSign                  = 0x10020a8;  /* U+20A8 RUPEE SIGN */
1935     enum XK_WonSign                    = 0x10020a9;  /* U+20A9 WON SIGN */
1936     enum XK_NewSheqelSign              = 0x10020aa;  /* U+20AA NEW SHEQEL SIGN */
1937     enum XK_DongSign                   = 0x10020ab;  /* U+20AB DONG SIGN */
1938     enum XK_EuroSign                      = 0x20ac;  /* U+20AC EURO SIGN */
1939 }
1940 
1941 static if( XK_MATHEMATICAL ){
1942     /* one, two and three are defined above. */
1943     enum XK_zerosuperior               = 0x1002070;  /* U+2070 SUPERSCRIPT ZERO */
1944     enum XK_foursuperior               = 0x1002074;  /* U+2074 SUPERSCRIPT FOUR */
1945     enum XK_fivesuperior               = 0x1002075;  /* U+2075 SUPERSCRIPT FIVE */
1946     enum XK_sixsuperior                = 0x1002076;  /* U+2076 SUPERSCRIPT SIX */
1947     enum XK_sevensuperior              = 0x1002077;  /* U+2077 SUPERSCRIPT SEVEN */
1948     enum XK_eightsuperior              = 0x1002078;  /* U+2078 SUPERSCRIPT EIGHT */
1949     enum XK_ninesuperior               = 0x1002079;  /* U+2079 SUPERSCRIPT NINE */
1950     enum XK_zerosubscript              = 0x1002080;  /* U+2080 SUBSCRIPT ZERO */
1951     enum XK_onesubscript               = 0x1002081;  /* U+2081 SUBSCRIPT ONE */
1952     enum XK_twosubscript               = 0x1002082;  /* U+2082 SUBSCRIPT TWO */
1953     enum XK_threesubscript             = 0x1002083;  /* U+2083 SUBSCRIPT THREE */
1954     enum XK_foursubscript              = 0x1002084;  /* U+2084 SUBSCRIPT FOUR */
1955     enum XK_fivesubscript              = 0x1002085;  /* U+2085 SUBSCRIPT FIVE */
1956     enum XK_sixsubscript               = 0x1002086;  /* U+2086 SUBSCRIPT SIX */
1957     enum XK_sevensubscript             = 0x1002087;  /* U+2087 SUBSCRIPT SEVEN */
1958     enum XK_eightsubscript             = 0x1002088;  /* U+2088 SUBSCRIPT EIGHT */
1959     enum XK_ninesubscript              = 0x1002089;  /* U+2089 SUBSCRIPT NINE */
1960     enum XK_partdifferential           = 0x1002202;  /* U+2202 PARTIAL DIFFERENTIAL */
1961     enum XK_emptyset                   = 0x1002205;  /* U+2205 NULL SET */
1962     enum XK_elementof                  = 0x1002208;  /* U+2208 ELEMENT OF */
1963     enum XK_notelementof               = 0x1002209;  /* U+2209 NOT AN ELEMENT OF */
1964     enum XK_containsas                 = 0x100220B;  /* U+220B CONTAINS AS MEMBER */
1965     enum XK_squareroot                 = 0x100221A;  /* U+221A SQUARE ROOT */
1966     enum XK_cuberoot                   = 0x100221B;  /* U+221B CUBE ROOT */
1967     enum XK_fourthroot                 = 0x100221C;  /* U+221C FOURTH ROOT */
1968     enum XK_dintegral                  = 0x100222C;  /* U+222C DOUBLE INTEGRAL */
1969     enum XK_tintegral                  = 0x100222D;  /* U+222D TRIPLE INTEGRAL */
1970     enum XK_because                    = 0x1002235;  /* U+2235 BECAUSE */
1971     enum XK_approxeq                   = 0x1002248;  /* U+2245 ALMOST EQUAL TO */
1972     enum XK_notapproxeq                = 0x1002247;  /* U+2247 NOT ALMOST EQUAL TO */
1973     enum XK_notidentical               = 0x1002262;  /* U+2262 NOT IDENTICAL TO */
1974     enum XK_stricteq                   = 0x1002263;  /* U+2263 STRICTLY EQUIVALENT TO */
1975     //~ break;
1976 }
1977 
1978 static if( XK_BRAILLE ){
1979     enum XK_braille_dot_1                 = 0xfff1;
1980     enum XK_braille_dot_2                 = 0xfff2;
1981     enum XK_braille_dot_3                 = 0xfff3;
1982     enum XK_braille_dot_4                 = 0xfff4;
1983     enum XK_braille_dot_5                 = 0xfff5;
1984     enum XK_braille_dot_6                 = 0xfff6;
1985     enum XK_braille_dot_7                 = 0xfff7;
1986     enum XK_braille_dot_8                 = 0xfff8;
1987     enum XK_braille_dot_9                 = 0xfff9;
1988     enum XK_braille_dot_10                = 0xfffa;
1989     enum XK_braille_blank              = 0x1002800;  /* U+2800 BRAILLE PATTERN BLANK */
1990     enum XK_braille_dots_1             = 0x1002801;  /* U+2801 BRAILLE PATTERN DOTS-1 */
1991     enum XK_braille_dots_2             = 0x1002802;  /* U+2802 BRAILLE PATTERN DOTS-2 */
1992     enum XK_braille_dots_12            = 0x1002803;  /* U+2803 BRAILLE PATTERN DOTS-12 */
1993     enum XK_braille_dots_3             = 0x1002804;  /* U+2804 BRAILLE PATTERN DOTS-3 */
1994     enum XK_braille_dots_13            = 0x1002805;  /* U+2805 BRAILLE PATTERN DOTS-13 */
1995     enum XK_braille_dots_23            = 0x1002806;  /* U+2806 BRAILLE PATTERN DOTS-23 */
1996     enum XK_braille_dots_123           = 0x1002807;  /* U+2807 BRAILLE PATTERN DOTS-123 */
1997     enum XK_braille_dots_4             = 0x1002808;  /* U+2808 BRAILLE PATTERN DOTS-4 */
1998     enum XK_braille_dots_14            = 0x1002809;  /* U+2809 BRAILLE PATTERN DOTS-14 */
1999     enum XK_braille_dots_24            = 0x100280a;  /* U+280a BRAILLE PATTERN DOTS-24 */
2000     enum XK_braille_dots_124           = 0x100280b;  /* U+280b BRAILLE PATTERN DOTS-124 */
2001     enum XK_braille_dots_34            = 0x100280c;  /* U+280c BRAILLE PATTERN DOTS-34 */
2002     enum XK_braille_dots_134           = 0x100280d;  /* U+280d BRAILLE PATTERN DOTS-134 */
2003     enum XK_braille_dots_234           = 0x100280e;  /* U+280e BRAILLE PATTERN DOTS-234 */
2004     enum XK_braille_dots_1234          = 0x100280f;  /* U+280f BRAILLE PATTERN DOTS-1234 */
2005     enum XK_braille_dots_5             = 0x1002810;  /* U+2810 BRAILLE PATTERN DOTS-5 */
2006     enum XK_braille_dots_15            = 0x1002811;  /* U+2811 BRAILLE PATTERN DOTS-15 */
2007     enum XK_braille_dots_25            = 0x1002812;  /* U+2812 BRAILLE PATTERN DOTS-25 */
2008     enum XK_braille_dots_125           = 0x1002813;  /* U+2813 BRAILLE PATTERN DOTS-125 */
2009     enum XK_braille_dots_35            = 0x1002814;  /* U+2814 BRAILLE PATTERN DOTS-35 */
2010     enum XK_braille_dots_135           = 0x1002815;  /* U+2815 BRAILLE PATTERN DOTS-135 */
2011     enum XK_braille_dots_235           = 0x1002816;  /* U+2816 BRAILLE PATTERN DOTS-235 */
2012     enum XK_braille_dots_1235          = 0x1002817;  /* U+2817 BRAILLE PATTERN DOTS-1235 */
2013     enum XK_braille_dots_45            = 0x1002818;  /* U+2818 BRAILLE PATTERN DOTS-45 */
2014     enum XK_braille_dots_145           = 0x1002819;  /* U+2819 BRAILLE PATTERN DOTS-145 */
2015     enum XK_braille_dots_245           = 0x100281a;  /* U+281a BRAILLE PATTERN DOTS-245 */
2016     enum XK_braille_dots_1245          = 0x100281b;  /* U+281b BRAILLE PATTERN DOTS-1245 */
2017     enum XK_braille_dots_345           = 0x100281c;  /* U+281c BRAILLE PATTERN DOTS-345 */
2018     enum XK_braille_dots_1345          = 0x100281d;  /* U+281d BRAILLE PATTERN DOTS-1345 */
2019     enum XK_braille_dots_2345          = 0x100281e;  /* U+281e BRAILLE PATTERN DOTS-2345 */
2020     enum XK_braille_dots_12345         = 0x100281f;  /* U+281f BRAILLE PATTERN DOTS-12345 */
2021     enum XK_braille_dots_6             = 0x1002820;  /* U+2820 BRAILLE PATTERN DOTS-6 */
2022     enum XK_braille_dots_16            = 0x1002821;  /* U+2821 BRAILLE PATTERN DOTS-16 */
2023     enum XK_braille_dots_26            = 0x1002822;  /* U+2822 BRAILLE PATTERN DOTS-26 */
2024     enum XK_braille_dots_126           = 0x1002823;  /* U+2823 BRAILLE PATTERN DOTS-126 */
2025     enum XK_braille_dots_36            = 0x1002824;  /* U+2824 BRAILLE PATTERN DOTS-36 */
2026     enum XK_braille_dots_136           = 0x1002825;  /* U+2825 BRAILLE PATTERN DOTS-136 */
2027     enum XK_braille_dots_236           = 0x1002826;  /* U+2826 BRAILLE PATTERN DOTS-236 */
2028     enum XK_braille_dots_1236          = 0x1002827;  /* U+2827 BRAILLE PATTERN DOTS-1236 */
2029     enum XK_braille_dots_46            = 0x1002828;  /* U+2828 BRAILLE PATTERN DOTS-46 */
2030     enum XK_braille_dots_146           = 0x1002829;  /* U+2829 BRAILLE PATTERN DOTS-146 */
2031     enum XK_braille_dots_246           = 0x100282a;  /* U+282a BRAILLE PATTERN DOTS-246 */
2032     enum XK_braille_dots_1246          = 0x100282b;  /* U+282b BRAILLE PATTERN DOTS-1246 */
2033     enum XK_braille_dots_346           = 0x100282c;  /* U+282c BRAILLE PATTERN DOTS-346 */
2034     enum XK_braille_dots_1346          = 0x100282d;  /* U+282d BRAILLE PATTERN DOTS-1346 */
2035     enum XK_braille_dots_2346          = 0x100282e;  /* U+282e BRAILLE PATTERN DOTS-2346 */
2036     enum XK_braille_dots_12346         = 0x100282f;  /* U+282f BRAILLE PATTERN DOTS-12346 */
2037     enum XK_braille_dots_56            = 0x1002830;  /* U+2830 BRAILLE PATTERN DOTS-56 */
2038     enum XK_braille_dots_156           = 0x1002831;  /* U+2831 BRAILLE PATTERN DOTS-156 */
2039     enum XK_braille_dots_256           = 0x1002832;  /* U+2832 BRAILLE PATTERN DOTS-256 */
2040     enum XK_braille_dots_1256          = 0x1002833;  /* U+2833 BRAILLE PATTERN DOTS-1256 */
2041     enum XK_braille_dots_356           = 0x1002834;  /* U+2834 BRAILLE PATTERN DOTS-356 */
2042     enum XK_braille_dots_1356          = 0x1002835;  /* U+2835 BRAILLE PATTERN DOTS-1356 */
2043     enum XK_braille_dots_2356          = 0x1002836;  /* U+2836 BRAILLE PATTERN DOTS-2356 */
2044     enum XK_braille_dots_12356         = 0x1002837;  /* U+2837 BRAILLE PATTERN DOTS-12356 */
2045     enum XK_braille_dots_456           = 0x1002838;  /* U+2838 BRAILLE PATTERN DOTS-456 */
2046     enum XK_braille_dots_1456          = 0x1002839;  /* U+2839 BRAILLE PATTERN DOTS-1456 */
2047     enum XK_braille_dots_2456          = 0x100283a;  /* U+283a BRAILLE PATTERN DOTS-2456 */
2048     enum XK_braille_dots_12456         = 0x100283b;  /* U+283b BRAILLE PATTERN DOTS-12456 */
2049     enum XK_braille_dots_3456          = 0x100283c;  /* U+283c BRAILLE PATTERN DOTS-3456 */
2050     enum XK_braille_dots_13456         = 0x100283d;  /* U+283d BRAILLE PATTERN DOTS-13456 */
2051     enum XK_braille_dots_23456         = 0x100283e;  /* U+283e BRAILLE PATTERN DOTS-23456 */
2052     enum XK_braille_dots_123456        = 0x100283f;  /* U+283f BRAILLE PATTERN DOTS-123456 */
2053     enum XK_braille_dots_7             = 0x1002840;  /* U+2840 BRAILLE PATTERN DOTS-7 */
2054     enum XK_braille_dots_17            = 0x1002841;  /* U+2841 BRAILLE PATTERN DOTS-17 */
2055     enum XK_braille_dots_27            = 0x1002842;  /* U+2842 BRAILLE PATTERN DOTS-27 */
2056     enum XK_braille_dots_127           = 0x1002843;  /* U+2843 BRAILLE PATTERN DOTS-127 */
2057     enum XK_braille_dots_37            = 0x1002844;  /* U+2844 BRAILLE PATTERN DOTS-37 */
2058     enum XK_braille_dots_137           = 0x1002845;  /* U+2845 BRAILLE PATTERN DOTS-137 */
2059     enum XK_braille_dots_237           = 0x1002846;  /* U+2846 BRAILLE PATTERN DOTS-237 */
2060     enum XK_braille_dots_1237          = 0x1002847;  /* U+2847 BRAILLE PATTERN DOTS-1237 */
2061     enum XK_braille_dots_47            = 0x1002848;  /* U+2848 BRAILLE PATTERN DOTS-47 */
2062     enum XK_braille_dots_147           = 0x1002849;  /* U+2849 BRAILLE PATTERN DOTS-147 */
2063     enum XK_braille_dots_247           = 0x100284a;  /* U+284a BRAILLE PATTERN DOTS-247 */
2064     enum XK_braille_dots_1247          = 0x100284b;  /* U+284b BRAILLE PATTERN DOTS-1247 */
2065     enum XK_braille_dots_347           = 0x100284c;  /* U+284c BRAILLE PATTERN DOTS-347 */
2066     enum XK_braille_dots_1347          = 0x100284d;  /* U+284d BRAILLE PATTERN DOTS-1347 */
2067     enum XK_braille_dots_2347          = 0x100284e;  /* U+284e BRAILLE PATTERN DOTS-2347 */
2068     enum XK_braille_dots_12347         = 0x100284f;  /* U+284f BRAILLE PATTERN DOTS-12347 */
2069     enum XK_braille_dots_57            = 0x1002850;  /* U+2850 BRAILLE PATTERN DOTS-57 */
2070     enum XK_braille_dots_157           = 0x1002851;  /* U+2851 BRAILLE PATTERN DOTS-157 */
2071     enum XK_braille_dots_257           = 0x1002852;  /* U+2852 BRAILLE PATTERN DOTS-257 */
2072     enum XK_braille_dots_1257          = 0x1002853;  /* U+2853 BRAILLE PATTERN DOTS-1257 */
2073     enum XK_braille_dots_357           = 0x1002854;  /* U+2854 BRAILLE PATTERN DOTS-357 */
2074     enum XK_braille_dots_1357          = 0x1002855;  /* U+2855 BRAILLE PATTERN DOTS-1357 */
2075     enum XK_braille_dots_2357          = 0x1002856;  /* U+2856 BRAILLE PATTERN DOTS-2357 */
2076     enum XK_braille_dots_12357         = 0x1002857;  /* U+2857 BRAILLE PATTERN DOTS-12357 */
2077     enum XK_braille_dots_457           = 0x1002858;  /* U+2858 BRAILLE PATTERN DOTS-457 */
2078     enum XK_braille_dots_1457          = 0x1002859;  /* U+2859 BRAILLE PATTERN DOTS-1457 */
2079     enum XK_braille_dots_2457          = 0x100285a;  /* U+285a BRAILLE PATTERN DOTS-2457 */
2080     enum XK_braille_dots_12457         = 0x100285b;  /* U+285b BRAILLE PATTERN DOTS-12457 */
2081     enum XK_braille_dots_3457          = 0x100285c;  /* U+285c BRAILLE PATTERN DOTS-3457 */
2082     enum XK_braille_dots_13457         = 0x100285d;  /* U+285d BRAILLE PATTERN DOTS-13457 */
2083     enum XK_braille_dots_23457         = 0x100285e;  /* U+285e BRAILLE PATTERN DOTS-23457 */
2084     enum XK_braille_dots_123457        = 0x100285f;  /* U+285f BRAILLE PATTERN DOTS-123457 */
2085     enum XK_braille_dots_67            = 0x1002860;  /* U+2860 BRAILLE PATTERN DOTS-67 */
2086     enum XK_braille_dots_167           = 0x1002861;  /* U+2861 BRAILLE PATTERN DOTS-167 */
2087     enum XK_braille_dots_267           = 0x1002862;  /* U+2862 BRAILLE PATTERN DOTS-267 */
2088     enum XK_braille_dots_1267          = 0x1002863;  /* U+2863 BRAILLE PATTERN DOTS-1267 */
2089     enum XK_braille_dots_367           = 0x1002864;  /* U+2864 BRAILLE PATTERN DOTS-367 */
2090     enum XK_braille_dots_1367          = 0x1002865;  /* U+2865 BRAILLE PATTERN DOTS-1367 */
2091     enum XK_braille_dots_2367          = 0x1002866;  /* U+2866 BRAILLE PATTERN DOTS-2367 */
2092     enum XK_braille_dots_12367         = 0x1002867;  /* U+2867 BRAILLE PATTERN DOTS-12367 */
2093     enum XK_braille_dots_467           = 0x1002868;  /* U+2868 BRAILLE PATTERN DOTS-467 */
2094     enum XK_braille_dots_1467          = 0x1002869;  /* U+2869 BRAILLE PATTERN DOTS-1467 */
2095     enum XK_braille_dots_2467          = 0x100286a;  /* U+286a BRAILLE PATTERN DOTS-2467 */
2096     enum XK_braille_dots_12467         = 0x100286b;  /* U+286b BRAILLE PATTERN DOTS-12467 */
2097     enum XK_braille_dots_3467          = 0x100286c;  /* U+286c BRAILLE PATTERN DOTS-3467 */
2098     enum XK_braille_dots_13467         = 0x100286d;  /* U+286d BRAILLE PATTERN DOTS-13467 */
2099     enum XK_braille_dots_23467         = 0x100286e;  /* U+286e BRAILLE PATTERN DOTS-23467 */
2100     enum XK_braille_dots_123467        = 0x100286f;  /* U+286f BRAILLE PATTERN DOTS-123467 */
2101     enum XK_braille_dots_567           = 0x1002870;  /* U+2870 BRAILLE PATTERN DOTS-567 */
2102     enum XK_braille_dots_1567          = 0x1002871;  /* U+2871 BRAILLE PATTERN DOTS-1567 */
2103     enum XK_braille_dots_2567          = 0x1002872;  /* U+2872 BRAILLE PATTERN DOTS-2567 */
2104     enum XK_braille_dots_12567         = 0x1002873;  /* U+2873 BRAILLE PATTERN DOTS-12567 */
2105     enum XK_braille_dots_3567          = 0x1002874;  /* U+2874 BRAILLE PATTERN DOTS-3567 */
2106     enum XK_braille_dots_13567         = 0x1002875;  /* U+2875 BRAILLE PATTERN DOTS-13567 */
2107     enum XK_braille_dots_23567         = 0x1002876;  /* U+2876 BRAILLE PATTERN DOTS-23567 */
2108     enum XK_braille_dots_123567        = 0x1002877;  /* U+2877 BRAILLE PATTERN DOTS-123567 */
2109     enum XK_braille_dots_4567          = 0x1002878;  /* U+2878 BRAILLE PATTERN DOTS-4567 */
2110     enum XK_braille_dots_14567         = 0x1002879;  /* U+2879 BRAILLE PATTERN DOTS-14567 */
2111     enum XK_braille_dots_24567         = 0x100287a;  /* U+287a BRAILLE PATTERN DOTS-24567 */
2112     enum XK_braille_dots_124567        = 0x100287b;  /* U+287b BRAILLE PATTERN DOTS-124567 */
2113     enum XK_braille_dots_34567         = 0x100287c;  /* U+287c BRAILLE PATTERN DOTS-34567 */
2114     enum XK_braille_dots_134567        = 0x100287d;  /* U+287d BRAILLE PATTERN DOTS-134567 */
2115     enum XK_braille_dots_234567        = 0x100287e;  /* U+287e BRAILLE PATTERN DOTS-234567 */
2116     enum XK_braille_dots_1234567       = 0x100287f;  /* U+287f BRAILLE PATTERN DOTS-1234567 */
2117     enum XK_braille_dots_8             = 0x1002880;  /* U+2880 BRAILLE PATTERN DOTS-8 */
2118     enum XK_braille_dots_18            = 0x1002881;  /* U+2881 BRAILLE PATTERN DOTS-18 */
2119     enum XK_braille_dots_28            = 0x1002882;  /* U+2882 BRAILLE PATTERN DOTS-28 */
2120     enum XK_braille_dots_128           = 0x1002883;  /* U+2883 BRAILLE PATTERN DOTS-128 */
2121     enum XK_braille_dots_38            = 0x1002884;  /* U+2884 BRAILLE PATTERN DOTS-38 */
2122     enum XK_braille_dots_138           = 0x1002885;  /* U+2885 BRAILLE PATTERN DOTS-138 */
2123     enum XK_braille_dots_238           = 0x1002886;  /* U+2886 BRAILLE PATTERN DOTS-238 */
2124     enum XK_braille_dots_1238          = 0x1002887;  /* U+2887 BRAILLE PATTERN DOTS-1238 */
2125     enum XK_braille_dots_48            = 0x1002888;  /* U+2888 BRAILLE PATTERN DOTS-48 */
2126     enum XK_braille_dots_148           = 0x1002889;  /* U+2889 BRAILLE PATTERN DOTS-148 */
2127     enum XK_braille_dots_248           = 0x100288a;  /* U+288a BRAILLE PATTERN DOTS-248 */
2128     enum XK_braille_dots_1248          = 0x100288b;  /* U+288b BRAILLE PATTERN DOTS-1248 */
2129     enum XK_braille_dots_348           = 0x100288c;  /* U+288c BRAILLE PATTERN DOTS-348 */
2130     enum XK_braille_dots_1348          = 0x100288d;  /* U+288d BRAILLE PATTERN DOTS-1348 */
2131     enum XK_braille_dots_2348          = 0x100288e;  /* U+288e BRAILLE PATTERN DOTS-2348 */
2132     enum XK_braille_dots_12348         = 0x100288f;  /* U+288f BRAILLE PATTERN DOTS-12348 */
2133     enum XK_braille_dots_58            = 0x1002890;  /* U+2890 BRAILLE PATTERN DOTS-58 */
2134     enum XK_braille_dots_158           = 0x1002891;  /* U+2891 BRAILLE PATTERN DOTS-158 */
2135     enum XK_braille_dots_258           = 0x1002892;  /* U+2892 BRAILLE PATTERN DOTS-258 */
2136     enum XK_braille_dots_1258          = 0x1002893;  /* U+2893 BRAILLE PATTERN DOTS-1258 */
2137     enum XK_braille_dots_358           = 0x1002894;  /* U+2894 BRAILLE PATTERN DOTS-358 */
2138     enum XK_braille_dots_1358          = 0x1002895;  /* U+2895 BRAILLE PATTERN DOTS-1358 */
2139     enum XK_braille_dots_2358          = 0x1002896;  /* U+2896 BRAILLE PATTERN DOTS-2358 */
2140     enum XK_braille_dots_12358         = 0x1002897;  /* U+2897 BRAILLE PATTERN DOTS-12358 */
2141     enum XK_braille_dots_458           = 0x1002898;  /* U+2898 BRAILLE PATTERN DOTS-458 */
2142     enum XK_braille_dots_1458          = 0x1002899;  /* U+2899 BRAILLE PATTERN DOTS-1458 */
2143     enum XK_braille_dots_2458          = 0x100289a;  /* U+289a BRAILLE PATTERN DOTS-2458 */
2144     enum XK_braille_dots_12458         = 0x100289b;  /* U+289b BRAILLE PATTERN DOTS-12458 */
2145     enum XK_braille_dots_3458          = 0x100289c;  /* U+289c BRAILLE PATTERN DOTS-3458 */
2146     enum XK_braille_dots_13458         = 0x100289d;  /* U+289d BRAILLE PATTERN DOTS-13458 */
2147     enum XK_braille_dots_23458         = 0x100289e;  /* U+289e BRAILLE PATTERN DOTS-23458 */
2148     enum XK_braille_dots_123458        = 0x100289f;  /* U+289f BRAILLE PATTERN DOTS-123458 */
2149     enum XK_braille_dots_68            = 0x10028a0;  /* U+28a0 BRAILLE PATTERN DOTS-68 */
2150     enum XK_braille_dots_168           = 0x10028a1;  /* U+28a1 BRAILLE PATTERN DOTS-168 */
2151     enum XK_braille_dots_268           = 0x10028a2;  /* U+28a2 BRAILLE PATTERN DOTS-268 */
2152     enum XK_braille_dots_1268          = 0x10028a3;  /* U+28a3 BRAILLE PATTERN DOTS-1268 */
2153     enum XK_braille_dots_368           = 0x10028a4;  /* U+28a4 BRAILLE PATTERN DOTS-368 */
2154     enum XK_braille_dots_1368          = 0x10028a5;  /* U+28a5 BRAILLE PATTERN DOTS-1368 */
2155     enum XK_braille_dots_2368          = 0x10028a6;  /* U+28a6 BRAILLE PATTERN DOTS-2368 */
2156     enum XK_braille_dots_12368         = 0x10028a7;  /* U+28a7 BRAILLE PATTERN DOTS-12368 */
2157     enum XK_braille_dots_468           = 0x10028a8;  /* U+28a8 BRAILLE PATTERN DOTS-468 */
2158     enum XK_braille_dots_1468          = 0x10028a9;  /* U+28a9 BRAILLE PATTERN DOTS-1468 */
2159     enum XK_braille_dots_2468          = 0x10028aa;  /* U+28aa BRAILLE PATTERN DOTS-2468 */
2160     enum XK_braille_dots_12468         = 0x10028ab;  /* U+28ab BRAILLE PATTERN DOTS-12468 */
2161     enum XK_braille_dots_3468          = 0x10028ac;  /* U+28ac BRAILLE PATTERN DOTS-3468 */
2162     enum XK_braille_dots_13468         = 0x10028ad;  /* U+28ad BRAILLE PATTERN DOTS-13468 */
2163     enum XK_braille_dots_23468         = 0x10028ae;  /* U+28ae BRAILLE PATTERN DOTS-23468 */
2164     enum XK_braille_dots_123468        = 0x10028af;  /* U+28af BRAILLE PATTERN DOTS-123468 */
2165     enum XK_braille_dots_568           = 0x10028b0;  /* U+28b0 BRAILLE PATTERN DOTS-568 */
2166     enum XK_braille_dots_1568          = 0x10028b1;  /* U+28b1 BRAILLE PATTERN DOTS-1568 */
2167     enum XK_braille_dots_2568          = 0x10028b2;  /* U+28b2 BRAILLE PATTERN DOTS-2568 */
2168     enum XK_braille_dots_12568         = 0x10028b3;  /* U+28b3 BRAILLE PATTERN DOTS-12568 */
2169     enum XK_braille_dots_3568          = 0x10028b4;  /* U+28b4 BRAILLE PATTERN DOTS-3568 */
2170     enum XK_braille_dots_13568         = 0x10028b5;  /* U+28b5 BRAILLE PATTERN DOTS-13568 */
2171     enum XK_braille_dots_23568         = 0x10028b6;  /* U+28b6 BRAILLE PATTERN DOTS-23568 */
2172     enum XK_braille_dots_123568        = 0x10028b7;  /* U+28b7 BRAILLE PATTERN DOTS-123568 */
2173     enum XK_braille_dots_4568          = 0x10028b8;  /* U+28b8 BRAILLE PATTERN DOTS-4568 */
2174     enum XK_braille_dots_14568         = 0x10028b9;  /* U+28b9 BRAILLE PATTERN DOTS-14568 */
2175     enum XK_braille_dots_24568         = 0x10028ba;  /* U+28ba BRAILLE PATTERN DOTS-24568 */
2176     enum XK_braille_dots_124568        = 0x10028bb;  /* U+28bb BRAILLE PATTERN DOTS-124568 */
2177     enum XK_braille_dots_34568         = 0x10028bc;  /* U+28bc BRAILLE PATTERN DOTS-34568 */
2178     enum XK_braille_dots_134568        = 0x10028bd;  /* U+28bd BRAILLE PATTERN DOTS-134568 */
2179     enum XK_braille_dots_234568        = 0x10028be;  /* U+28be BRAILLE PATTERN DOTS-234568 */
2180     enum XK_braille_dots_1234568       = 0x10028bf;  /* U+28bf BRAILLE PATTERN DOTS-1234568 */
2181     enum XK_braille_dots_78            = 0x10028c0;  /* U+28c0 BRAILLE PATTERN DOTS-78 */
2182     enum XK_braille_dots_178           = 0x10028c1;  /* U+28c1 BRAILLE PATTERN DOTS-178 */
2183     enum XK_braille_dots_278           = 0x10028c2;  /* U+28c2 BRAILLE PATTERN DOTS-278 */
2184     enum XK_braille_dots_1278          = 0x10028c3;  /* U+28c3 BRAILLE PATTERN DOTS-1278 */
2185     enum XK_braille_dots_378           = 0x10028c4;  /* U+28c4 BRAILLE PATTERN DOTS-378 */
2186     enum XK_braille_dots_1378          = 0x10028c5;  /* U+28c5 BRAILLE PATTERN DOTS-1378 */
2187     enum XK_braille_dots_2378          = 0x10028c6;  /* U+28c6 BRAILLE PATTERN DOTS-2378 */
2188     enum XK_braille_dots_12378         = 0x10028c7;  /* U+28c7 BRAILLE PATTERN DOTS-12378 */
2189     enum XK_braille_dots_478           = 0x10028c8;  /* U+28c8 BRAILLE PATTERN DOTS-478 */
2190     enum XK_braille_dots_1478          = 0x10028c9;  /* U+28c9 BRAILLE PATTERN DOTS-1478 */
2191     enum XK_braille_dots_2478          = 0x10028ca;  /* U+28ca BRAILLE PATTERN DOTS-2478 */
2192     enum XK_braille_dots_12478         = 0x10028cb;  /* U+28cb BRAILLE PATTERN DOTS-12478 */
2193     enum XK_braille_dots_3478          = 0x10028cc;  /* U+28cc BRAILLE PATTERN DOTS-3478 */
2194     enum XK_braille_dots_13478         = 0x10028cd;  /* U+28cd BRAILLE PATTERN DOTS-13478 */
2195     enum XK_braille_dots_23478         = 0x10028ce;  /* U+28ce BRAILLE PATTERN DOTS-23478 */
2196     enum XK_braille_dots_123478        = 0x10028cf;  /* U+28cf BRAILLE PATTERN DOTS-123478 */
2197     enum XK_braille_dots_578           = 0x10028d0;  /* U+28d0 BRAILLE PATTERN DOTS-578 */
2198     enum XK_braille_dots_1578          = 0x10028d1;  /* U+28d1 BRAILLE PATTERN DOTS-1578 */
2199     enum XK_braille_dots_2578          = 0x10028d2;  /* U+28d2 BRAILLE PATTERN DOTS-2578 */
2200     enum XK_braille_dots_12578         = 0x10028d3;  /* U+28d3 BRAILLE PATTERN DOTS-12578 */
2201     enum XK_braille_dots_3578          = 0x10028d4;  /* U+28d4 BRAILLE PATTERN DOTS-3578 */
2202     enum XK_braille_dots_13578         = 0x10028d5;  /* U+28d5 BRAILLE PATTERN DOTS-13578 */
2203     enum XK_braille_dots_23578         = 0x10028d6;  /* U+28d6 BRAILLE PATTERN DOTS-23578 */
2204     enum XK_braille_dots_123578        = 0x10028d7;  /* U+28d7 BRAILLE PATTERN DOTS-123578 */
2205     enum XK_braille_dots_4578          = 0x10028d8;  /* U+28d8 BRAILLE PATTERN DOTS-4578 */
2206     enum XK_braille_dots_14578         = 0x10028d9;  /* U+28d9 BRAILLE PATTERN DOTS-14578 */
2207     enum XK_braille_dots_24578         = 0x10028da;  /* U+28da BRAILLE PATTERN DOTS-24578 */
2208     enum XK_braille_dots_124578        = 0x10028db;  /* U+28db BRAILLE PATTERN DOTS-124578 */
2209     enum XK_braille_dots_34578         = 0x10028dc;  /* U+28dc BRAILLE PATTERN DOTS-34578 */
2210     enum XK_braille_dots_134578        = 0x10028dd;  /* U+28dd BRAILLE PATTERN DOTS-134578 */
2211     enum XK_braille_dots_234578        = 0x10028de;  /* U+28de BRAILLE PATTERN DOTS-234578 */
2212     enum XK_braille_dots_1234578       = 0x10028df;  /* U+28df BRAILLE PATTERN DOTS-1234578 */
2213     enum XK_braille_dots_678           = 0x10028e0;  /* U+28e0 BRAILLE PATTERN DOTS-678 */
2214     enum XK_braille_dots_1678          = 0x10028e1;  /* U+28e1 BRAILLE PATTERN DOTS-1678 */
2215     enum XK_braille_dots_2678          = 0x10028e2;  /* U+28e2 BRAILLE PATTERN DOTS-2678 */
2216     enum XK_braille_dots_12678         = 0x10028e3;  /* U+28e3 BRAILLE PATTERN DOTS-12678 */
2217     enum XK_braille_dots_3678          = 0x10028e4;  /* U+28e4 BRAILLE PATTERN DOTS-3678 */
2218     enum XK_braille_dots_13678         = 0x10028e5;  /* U+28e5 BRAILLE PATTERN DOTS-13678 */
2219     enum XK_braille_dots_23678         = 0x10028e6;  /* U+28e6 BRAILLE PATTERN DOTS-23678 */
2220     enum XK_braille_dots_123678        = 0x10028e7;  /* U+28e7 BRAILLE PATTERN DOTS-123678 */
2221     enum XK_braille_dots_4678          = 0x10028e8;  /* U+28e8 BRAILLE PATTERN DOTS-4678 */
2222     enum XK_braille_dots_14678         = 0x10028e9;  /* U+28e9 BRAILLE PATTERN DOTS-14678 */
2223     enum XK_braille_dots_24678         = 0x10028ea;  /* U+28ea BRAILLE PATTERN DOTS-24678 */
2224     enum XK_braille_dots_124678        = 0x10028eb;  /* U+28eb BRAILLE PATTERN DOTS-124678 */
2225     enum XK_braille_dots_34678         = 0x10028ec;  /* U+28ec BRAILLE PATTERN DOTS-34678 */
2226     enum XK_braille_dots_134678        = 0x10028ed;  /* U+28ed BRAILLE PATTERN DOTS-134678 */
2227     enum XK_braille_dots_234678        = 0x10028ee;  /* U+28ee BRAILLE PATTERN DOTS-234678 */
2228     enum XK_braille_dots_1234678       = 0x10028ef;  /* U+28ef BRAILLE PATTERN DOTS-1234678 */
2229     enum XK_braille_dots_5678          = 0x10028f0;  /* U+28f0 BRAILLE PATTERN DOTS-5678 */
2230     enum XK_braille_dots_15678         = 0x10028f1;  /* U+28f1 BRAILLE PATTERN DOTS-15678 */
2231     enum XK_braille_dots_25678         = 0x10028f2;  /* U+28f2 BRAILLE PATTERN DOTS-25678 */
2232     enum XK_braille_dots_125678        = 0x10028f3;  /* U+28f3 BRAILLE PATTERN DOTS-125678 */
2233     enum XK_braille_dots_35678         = 0x10028f4;  /* U+28f4 BRAILLE PATTERN DOTS-35678 */
2234     enum XK_braille_dots_135678        = 0x10028f5;  /* U+28f5 BRAILLE PATTERN DOTS-135678 */
2235     enum XK_braille_dots_235678        = 0x10028f6;  /* U+28f6 BRAILLE PATTERN DOTS-235678 */
2236     enum XK_braille_dots_1235678       = 0x10028f7;  /* U+28f7 BRAILLE PATTERN DOTS-1235678 */
2237     enum XK_braille_dots_45678         = 0x10028f8;  /* U+28f8 BRAILLE PATTERN DOTS-45678 */
2238     enum XK_braille_dots_145678        = 0x10028f9;  /* U+28f9 BRAILLE PATTERN DOTS-145678 */
2239     enum XK_braille_dots_245678        = 0x10028fa;  /* U+28fa BRAILLE PATTERN DOTS-245678 */
2240     enum XK_braille_dots_1245678       = 0x10028fb;  /* U+28fb BRAILLE PATTERN DOTS-1245678 */
2241     enum XK_braille_dots_345678        = 0x10028fc;  /* U+28fc BRAILLE PATTERN DOTS-345678 */
2242     enum XK_braille_dots_1345678       = 0x10028fd;  /* U+28fd BRAILLE PATTERN DOTS-1345678 */
2243     enum XK_braille_dots_2345678       = 0x10028fe;  /* U+28fe BRAILLE PATTERN DOTS-2345678 */
2244     enum XK_braille_dots_12345678      = 0x10028ff;  /* U+28ff BRAILLE PATTERN DOTS-12345678 */
2245 }
2246 
2247 /*
2248  * Sinhala (http://unicode.org/charts/PDF/U0D80.pdf)
2249  * http://www.nongnu.org/sinhala/doc/transliteration/sinhala-transliteration_6.html
2250  */
2251 
2252 static if( XK_SINHALA ){
2253     enum XK_Sinh_ng            = 0x1000d82;  /* U+0D82 SINHALA ANUSVARAYA */
2254     enum XK_Sinh_h2            = 0x1000d83;  /* U+0D83 SINHALA VISARGAYA */
2255     enum XK_Sinh_a             = 0x1000d85;  /* U+0D85 SINHALA AYANNA */
2256     enum XK_Sinh_aa            = 0x1000d86;  /* U+0D86 SINHALA AAYANNA */
2257     enum XK_Sinh_ae            = 0x1000d87;  /* U+0D87 SINHALA AEYANNA */
2258     enum XK_Sinh_aee           = 0x1000d88;  /* U+0D88 SINHALA AEEYANNA */
2259     enum XK_Sinh_i             = 0x1000d89;  /* U+0D89 SINHALA IYANNA */
2260     enum XK_Sinh_ii            = 0x1000d8a;  /* U+0D8A SINHALA IIYANNA */
2261     enum XK_Sinh_u             = 0x1000d8b;  /* U+0D8B SINHALA UYANNA */
2262     enum XK_Sinh_uu            = 0x1000d8c;  /* U+0D8C SINHALA UUYANNA */
2263     enum XK_Sinh_ri            = 0x1000d8d;  /* U+0D8D SINHALA IRUYANNA */
2264     enum XK_Sinh_rii           = 0x1000d8e;  /* U+0D8E SINHALA IRUUYANNA */
2265     enum XK_Sinh_lu            = 0x1000d8f;  /* U+0D8F SINHALA ILUYANNA */
2266     enum XK_Sinh_luu           = 0x1000d90;  /* U+0D90 SINHALA ILUUYANNA */
2267     enum XK_Sinh_e             = 0x1000d91;  /* U+0D91 SINHALA EYANNA */
2268     enum XK_Sinh_ee            = 0x1000d92;  /* U+0D92 SINHALA EEYANNA */
2269     enum XK_Sinh_ai            = 0x1000d93;  /* U+0D93 SINHALA AIYANNA */
2270     enum XK_Sinh_o             = 0x1000d94;  /* U+0D94 SINHALA OYANNA */
2271     enum XK_Sinh_oo            = 0x1000d95;  /* U+0D95 SINHALA OOYANNA */
2272     enum XK_Sinh_au            = 0x1000d96;  /* U+0D96 SINHALA AUYANNA */
2273     enum XK_Sinh_ka            = 0x1000d9a;  /* U+0D9A SINHALA KAYANNA */
2274     enum XK_Sinh_kha           = 0x1000d9b;  /* U+0D9B SINHALA MAHA. KAYANNA */
2275     enum XK_Sinh_ga            = 0x1000d9c;  /* U+0D9C SINHALA GAYANNA */
2276     enum XK_Sinh_gha           = 0x1000d9d;  /* U+0D9D SINHALA MAHA. GAYANNA */
2277     enum XK_Sinh_ng2           = 0x1000d9e;  /* U+0D9E SINHALA KANTAJA NAASIKYAYA */
2278     enum XK_Sinh_nga           = 0x1000d9f;  /* U+0D9F SINHALA SANYAKA GAYANNA */
2279     enum XK_Sinh_ca            = 0x1000da0;  /* U+0DA0 SINHALA CAYANNA */
2280     enum XK_Sinh_cha           = 0x1000da1;  /* U+0DA1 SINHALA MAHA. CAYANNA */
2281     enum XK_Sinh_ja            = 0x1000da2;  /* U+0DA2 SINHALA JAYANNA */
2282     enum XK_Sinh_jha           = 0x1000da3;  /* U+0DA3 SINHALA MAHA. JAYANNA */
2283     enum XK_Sinh_nya           = 0x1000da4;  /* U+0DA4 SINHALA TAALUJA NAASIKYAYA */
2284     enum XK_Sinh_jnya          = 0x1000da5;  /* U+0DA5 SINHALA TAALUJA SANYOOGA NAASIKYAYA */
2285     enum XK_Sinh_nja           = 0x1000da6;  /* U+0DA6 SINHALA SANYAKA JAYANNA */
2286     enum XK_Sinh_tta           = 0x1000da7;  /* U+0DA7 SINHALA TTAYANNA */
2287     enum XK_Sinh_ttha          = 0x1000da8;  /* U+0DA8 SINHALA MAHA. TTAYANNA */
2288     enum XK_Sinh_dda           = 0x1000da9;  /* U+0DA9 SINHALA DDAYANNA */
2289     enum XK_Sinh_ddha          = 0x1000daa;  /* U+0DAA SINHALA MAHA. DDAYANNA */
2290     enum XK_Sinh_nna           = 0x1000dab;  /* U+0DAB SINHALA MUURDHAJA NAYANNA */
2291     enum XK_Sinh_ndda          = 0x1000dac;  /* U+0DAC SINHALA SANYAKA DDAYANNA */
2292     enum XK_Sinh_tha           = 0x1000dad;  /* U+0DAD SINHALA TAYANNA */
2293     enum XK_Sinh_thha          = 0x1000dae;  /* U+0DAE SINHALA MAHA. TAYANNA */
2294     enum XK_Sinh_dha           = 0x1000daf;  /* U+0DAF SINHALA DAYANNA */
2295     enum XK_Sinh_dhha          = 0x1000db0;  /* U+0DB0 SINHALA MAHA. DAYANNA */
2296     enum XK_Sinh_na            = 0x1000db1;  /* U+0DB1 SINHALA DANTAJA NAYANNA */
2297     enum XK_Sinh_ndha          = 0x1000db3;  /* U+0DB3 SINHALA SANYAKA DAYANNA */
2298     enum XK_Sinh_pa            = 0x1000db4;  /* U+0DB4 SINHALA PAYANNA */
2299     enum XK_Sinh_pha           = 0x1000db5;  /* U+0DB5 SINHALA MAHA. PAYANNA */
2300     enum XK_Sinh_ba            = 0x1000db6;  /* U+0DB6 SINHALA BAYANNA */
2301     enum XK_Sinh_bha           = 0x1000db7;  /* U+0DB7 SINHALA MAHA. BAYANNA */
2302     enum XK_Sinh_ma            = 0x1000db8;  /* U+0DB8 SINHALA MAYANNA */
2303     enum XK_Sinh_mba           = 0x1000db9;  /* U+0DB9 SINHALA AMBA BAYANNA */
2304     enum XK_Sinh_ya            = 0x1000dba;  /* U+0DBA SINHALA YAYANNA */
2305     enum XK_Sinh_ra            = 0x1000dbb;  /* U+0DBB SINHALA RAYANNA */
2306     enum XK_Sinh_la            = 0x1000dbd;  /* U+0DBD SINHALA DANTAJA LAYANNA */
2307     enum XK_Sinh_va            = 0x1000dc0;  /* U+0DC0 SINHALA VAYANNA */
2308     enum XK_Sinh_sha           = 0x1000dc1;  /* U+0DC1 SINHALA TAALUJA SAYANNA */
2309     enum XK_Sinh_ssha          = 0x1000dc2;  /* U+0DC2 SINHALA MUURDHAJA SAYANNA */
2310     enum XK_Sinh_sa            = 0x1000dc3;  /* U+0DC3 SINHALA DANTAJA SAYANNA */
2311     enum XK_Sinh_ha            = 0x1000dc4;  /* U+0DC4 SINHALA HAYANNA */
2312     enum XK_Sinh_lla           = 0x1000dc5;  /* U+0DC5 SINHALA MUURDHAJA LAYANNA */
2313     enum XK_Sinh_fa            = 0x1000dc6;  /* U+0DC6 SINHALA FAYANNA */
2314     enum XK_Sinh_al            = 0x1000dca;  /* U+0DCA SINHALA AL-LAKUNA */
2315     enum XK_Sinh_aa2           = 0x1000dcf;  /* U+0DCF SINHALA AELA-PILLA */
2316     enum XK_Sinh_ae2           = 0x1000dd0;  /* U+0DD0 SINHALA AEDA-PILLA */
2317     enum XK_Sinh_aee2          = 0x1000dd1;  /* U+0DD1 SINHALA DIGA AEDA-PILLA */
2318     enum XK_Sinh_i2            = 0x1000dd2;  /* U+0DD2 SINHALA IS-PILLA */
2319     enum XK_Sinh_ii2           = 0x1000dd3;  /* U+0DD3 SINHALA DIGA IS-PILLA */
2320     enum XK_Sinh_u2            = 0x1000dd4;  /* U+0DD4 SINHALA PAA-PILLA */
2321     enum XK_Sinh_uu2           = 0x1000dd6;  /* U+0DD6 SINHALA DIGA PAA-PILLA */
2322     enum XK_Sinh_ru2           = 0x1000dd8;  /* U+0DD8 SINHALA GAETTA-PILLA */
2323     enum XK_Sinh_e2            = 0x1000dd9;  /* U+0DD9 SINHALA KOMBUVA */
2324     enum XK_Sinh_ee2           = 0x1000dda;  /* U+0DDA SINHALA DIGA KOMBUVA */
2325     enum XK_Sinh_ai2           = 0x1000ddb;  /* U+0DDB SINHALA KOMBU DEKA */
2326     enum XK_Sinh_o2            = 0x1000ddc;  /* U+0DDC SINHALA KOMBUVA HAA AELA-PILLA*/
2327     enum XK_Sinh_oo2           = 0x1000ddd;  /* U+0DDD SINHALA KOMBUVA HAA DIGA AELA-PILLA*/
2328     enum XK_Sinh_au2           = 0x1000dde;  /* U+0DDE SINHALA KOMBUVA HAA GAYANUKITTA */
2329     enum XK_Sinh_lu2           = 0x1000ddf;  /* U+0DDF SINHALA GAYANUKITTA */
2330     enum XK_Sinh_ruu2          = 0x1000df2;  /* U+0DF2 SINHALA DIGA GAETTA-PILLA */
2331     enum XK_Sinh_luu2          = 0x1000df3;  /* U+0DF3 SINHALA DIGA GAYANUKITTA */
2332     enum XK_Sinh_kunddaliya    = 0x1000df4;  /* U+0DF4 SINHALA KUNDDALIYA */
2333 }