2510 lines
		
	
	
		
			209 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			2510 lines
		
	
	
		
			209 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
| 
 | |
| /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *\
 | |
| 
 | |
|    This file is automatically translated from X.Org's xproto/keysymdef.h
 | |
|    Please, do not update this file with your hands, run keysyms.update.sh.
 | |
| 
 | |
| \* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
 | |
| 
 | |
| module.exports = {
 | |
| 
 | |
| /***********************************************************
 | |
| Copyright 1987, 1994, 1998  The Open Group
 | |
| 
 | |
| Permission to use, copy, modify, distribute, and sell this software and its
 | |
| documentation for any purpose is hereby granted without fee, provided that
 | |
| the above copyright notice appear in all copies and that both that
 | |
| copyright notice and this permission notice appear in supporting
 | |
| documentation.
 | |
| 
 | |
| The above copyright notice and this permission notice shall be included
 | |
| in all copies or substantial portions of the Software.
 | |
| 
 | |
| THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
 | |
| OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
 | |
| MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
 | |
| IN NO EVENT SHALL THE OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR
 | |
| OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
 | |
| ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
 | |
| OTHER DEALINGS IN THE SOFTWARE.
 | |
| 
 | |
| Except as contained in this notice, the name of The Open Group shall
 | |
| not be used in advertising or otherwise to promote the sale, use or
 | |
| other dealings in this Software without prior written authorization
 | |
| from The Open Group.
 | |
| 
 | |
| 
 | |
| Copyright 1987 by Digital Equipment Corporation, Maynard, Massachusetts
 | |
| 
 | |
|                         All Rights Reserved
 | |
| 
 | |
| Permission to use, copy, modify, and distribute this software and its
 | |
| documentation for any purpose and without fee is hereby granted,
 | |
| provided that the above copyright notice appear in all copies and that
 | |
| both that copyright notice and this permission notice appear in
 | |
| supporting documentation, and that the name of Digital not be
 | |
| used in advertising or publicity pertaining to distribution of the
 | |
| software without specific, written prior permission.
 | |
| 
 | |
| DIGITAL DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING
 | |
| ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL
 | |
| DIGITAL BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR
 | |
| ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
 | |
| WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION,
 | |
| ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
 | |
| SOFTWARE.
 | |
| 
 | |
| ******************************************************************/
 | |
| 
 | |
| /*
 | |
|  * The "X11 Window System Protocol" standard defines in Appendix A the
 | |
|  * keysym codes. These 29-bit integer values identify characters or
 | |
|  * functions associated with each key (e.g., via the visible
 | |
|  * engraving) of a keyboard layout. This file assigns mnemonic macro
 | |
|  * names for these keysyms.
 | |
|  *
 | |
|  * This file is also compiled (by src/util/makekeys.c in libX11) into
 | |
|  * hash tables that can be accessed with X11 library functions such as
 | |
|  * XStringToKeysym() and XKeysymToString().
 | |
|  *
 | |
|  * Where a keysym corresponds one-to-one to an ISO 10646 / Unicode
 | |
|  * character, this is noted in a comment that provides both the U+xxxx
 | |
|  * Unicode position, as well as the official Unicode name of the
 | |
|  * character.
 | |
|  *
 | |
|  * Where the correspondence is either not one-to-one or semantically
 | |
|  * unclear, the Unicode position and name are enclosed in
 | |
|  * parentheses. Such legacy keysyms should be considered deprecated
 | |
|  * and are not recommended for use in future keyboard mappings.
 | |
|  *
 | |
|  * For any future extension of the keysyms with characters already
 | |
|  * found in ISO 10646 / Unicode, the following algorithm shall be
 | |
|  * used. The new keysym code position will simply be the character's
 | |
|  * Unicode number plus 0x01000000. The keysym values in the range
 | |
|  * 0x01000100 to 0x0110ffff are reserved to represent Unicode
 | |
|  * characters in the range (\u0100) to U+10FFFF.
 | |
|  * 
 | |
|  * While most newer Unicode-based X11 clients do already accept
 | |
|  * Unicode-mapped keysyms in the range 0x01000100 to 0x0110ffff, it
 | |
|  * will remain necessary for clients -- in the interest of
 | |
|  * compatibility with existing servers -- to also understand the
 | |
|  * existing legacy keysym values in the range 0x0100 to 0x20ff.
 | |
|  *
 | |
|  * Where several mnemonic names are defined for the same keysym in this
 | |
|  * file, all but the first one listed should be considered deprecated.
 | |
|  *
 | |
|  * Mnemonic names for keysyms are defined in this file with lines
 | |
|  * that match one of these Perl regular expressions:
 | |
|  *
 | |
|  *    /^\  XK_([a-zA-Z_0-9]+)\s+0x([0-9a-f]+)\s*\/\*: { code: U+([0-9A-F]{4,6}), description: null }, (.*) \*\/\s*$/
 | |
|  *    /^\  XK_([a-zA-Z_0-9]+)\s+0x([0-9a-f]+)\s*\/\*\(U+([0-9A-F]{4,6}): { code: (.*)\)\*\/\s*$/, description: null },
 | |
|  *    /^\#define XK_([a-zA-Z_0-9]+)\s+0x([0-9a-f]+)\s*(\/\*\s*(.*)\s*\*\/)?\s*$/
 | |
|  *
 | |
|  * Before adding new keysyms, please do consider the following: In
 | |
|  * addition to the keysym names defined in this file, the
 | |
|  * XStringToKeysym() and XKeysymToString() functions will also handle
 | |
|  * any keysym string of the form "U0020" to "U007E" and "U00A0" to
 | |
|  * "U10FFFF" for all possible Unicode characters. In other words,
 | |
|  * every possible Unicode character has already a keysym string
 | |
|  * defined algorithmically, even if it is not listed here. Therefore,
 | |
|  * defining an additional keysym macro is only necessary where a
 | |
|  * non-hexadecimal mnemonic name is needed, or where the new keysym
 | |
|  * does not represent any existing Unicode character.
 | |
|  *
 | |
|  * When adding new keysyms to this file, do not forget to also update the
 | |
|  * following as needed:
 | |
|  *
 | |
|  *   - the mappings in src/KeyBind.c in the repo
 | |
|  *     git://anongit.freedesktop.org/xorg/lib/libX11.git
 | |
|  *
 | |
|  *   - the protocol specification in specs/keysyms.xml
 | |
|  *     in the repo git://anongit.freedesktop.org/xorg/proto/x11proto.git
 | |
|  *
 | |
|  */
 | |
| 
 | |
|   XK_VoidSymbol:                  { code: 0xffffff, description: "Void symbol" },
 | |
| 
 | |
| // Group XK_MISCELLANY
 | |
| /*
 | |
|  * TTY function keys, cleverly chosen to map to ASCII, for convenience of
 | |
|  * programming, but could have been arbitrary (at the cost of lookup
 | |
|  * tables in client code).
 | |
|  */
 | |
| 
 | |
|   XK_BackSpace:                     { code: 0xff08, description: "Back space, back char" },
 | |
|   XK_Tab:                           { code: 0xff09, description: null },
 | |
|   XK_Linefeed:                      { code: 0xff0a, description: "Linefeed, LF" },
 | |
|   XK_Clear:                         { code: 0xff0b, description: null },
 | |
|   XK_Return:                        { code: 0xff0d, description: "Return, enter" },
 | |
|   XK_Pause:                         { code: 0xff13, description: "Pause, hold" },
 | |
|   XK_Scroll_Lock:                   { code: 0xff14, description: null },
 | |
|   XK_Sys_Req:                       { code: 0xff15, description: null },
 | |
|   XK_Escape:                        { code: 0xff1b, description: null },
 | |
|   XK_Delete:                        { code: 0xffff, description: "Delete, rubout" },
 | |
| 
 | |
| 
 | |
| 
 | |
| /* International & multi-key character composition */
 | |
| 
 | |
|   XK_Multi_key:                     { code: 0xff20, description: "Multi-key character compose" },
 | |
|   XK_Codeinput:                     { code: 0xff37, description: null },
 | |
|   XK_SingleCandidate:               { code: 0xff3c, description: null },
 | |
|   XK_MultipleCandidate:             { code: 0xff3d, description: null },
 | |
|   XK_PreviousCandidate:             { code: 0xff3e, description: null },
 | |
| 
 | |
| /* Japanese keyboard support */
 | |
| 
 | |
|   XK_Kanji:                         { code: 0xff21, description: "Kanji, Kanji convert" },
 | |
|   XK_Muhenkan:                      { code: 0xff22, description: "Cancel Conversion" },
 | |
|   XK_Henkan_Mode:                   { code: 0xff23, description: "Start/Stop Conversion" },
 | |
|   XK_Henkan:                        { code: 0xff23, description: "Alias for Henkan_Mode" },
 | |
|   XK_Romaji:                        { code: 0xff24, description: "to Romaji" },
 | |
|   XK_Hiragana:                      { code: 0xff25, description: "to Hiragana" },
 | |
|   XK_Katakana:                      { code: 0xff26, description: "to Katakana" },
 | |
|   XK_Hiragana_Katakana:             { code: 0xff27, description: "Hiragana/Katakana toggle" },
 | |
|   XK_Zenkaku:                       { code: 0xff28, description: "to Zenkaku" },
 | |
|   XK_Hankaku:                       { code: 0xff29, description: "to Hankaku" },
 | |
|   XK_Zenkaku_Hankaku:               { code: 0xff2a, description: "Zenkaku/Hankaku toggle" },
 | |
|   XK_Touroku:                       { code: 0xff2b, description: "Add to Dictionary" },
 | |
|   XK_Massyo:                        { code: 0xff2c, description: "Delete from Dictionary" },
 | |
|   XK_Kana_Lock:                     { code: 0xff2d, description: "Kana Lock" },
 | |
|   XK_Kana_Shift:                    { code: 0xff2e, description: "Kana Shift" },
 | |
|   XK_Eisu_Shift:                    { code: 0xff2f, description: "Alphanumeric Shift" },
 | |
|   XK_Eisu_toggle:                   { code: 0xff30, description: "Alphanumeric toggle" },
 | |
|   XK_Kanji_Bangou:                  { code: 0xff37, description: "Codeinput" },
 | |
|   XK_Zen_Koho:                      { code: 0xff3d, description: "Multiple/All Candidate(s)" },
 | |
|   XK_Mae_Koho:                      { code: 0xff3e, description: "Previous Candidate" },
 | |
| 
 | |
| /* 0xff31 thru 0xff3f are under XK_KOREAN */
 | |
| 
 | |
| /* Cursor control & motion */
 | |
| 
 | |
|   XK_Home:                          { code: 0xff50, description: null },
 | |
|   XK_Left:                          { code: 0xff51, description: "Move left, left arrow" },
 | |
|   XK_Up:                            { code: 0xff52, description: "Move up, up arrow" },
 | |
|   XK_Right:                         { code: 0xff53, description: "Move right, right arrow" },
 | |
|   XK_Down:                          { code: 0xff54, description: "Move down, down arrow" },
 | |
|   XK_Prior:                         { code: 0xff55, description: "Prior, previous" },
 | |
|   XK_Page_Up:                       { code: 0xff55, description: null },
 | |
|   XK_Next:                          { code: 0xff56, description: "Next" },
 | |
|   XK_Page_Down:                     { code: 0xff56, description: null },
 | |
|   XK_End:                           { code: 0xff57, description: "EOL" },
 | |
|   XK_Begin:                         { code: 0xff58, description: "BOL" },
 | |
| 
 | |
| 
 | |
| /* Misc functions */
 | |
| 
 | |
|   XK_Select:                        { code: 0xff60, description: "Select, mark" },
 | |
|   XK_Print:                         { code: 0xff61, description: null },
 | |
|   XK_Execute:                       { code: 0xff62, description: "Execute, run, do" },
 | |
|   XK_Insert:                        { code: 0xff63, description: "Insert, insert here" },
 | |
|   XK_Undo:                          { code: 0xff65, description: null },
 | |
|   XK_Redo:                          { code: 0xff66, description: "Redo, again" },
 | |
|   XK_Menu:                          { code: 0xff67, description: null },
 | |
|   XK_Find:                          { code: 0xff68, description: "Find, search" },
 | |
|   XK_Cancel:                        { code: 0xff69, description: "Cancel, stop, abort, exit" },
 | |
|   XK_Help:                          { code: 0xff6a, description: "Help" },
 | |
|   XK_Break:                         { code: 0xff6b, description: null },
 | |
|   XK_Mode_switch:                   { code: 0xff7e, description: "Character set switch" },
 | |
|   XK_script_switch:                 { code: 0xff7e, description: "Alias for mode_switch" },
 | |
|   XK_Num_Lock:                      { code: 0xff7f, description: null },
 | |
| 
 | |
| /* Keypad functions, keypad numbers cleverly chosen to map to ASCII */
 | |
| 
 | |
|   XK_KP_Space:                      { code: 0xff80, description: "Space" },
 | |
|   XK_KP_Tab:                        { code: 0xff89, description: null },
 | |
|   XK_KP_Enter:                      { code: 0xff8d, description: "Enter" },
 | |
|   XK_KP_F1:                         { code: 0xff91, description: "PF1, KP_A, ..." },
 | |
|   XK_KP_F2:                         { code: 0xff92, description: null },
 | |
|   XK_KP_F3:                         { code: 0xff93, description: null },
 | |
|   XK_KP_F4:                         { code: 0xff94, description: null },
 | |
|   XK_KP_Home:                       { code: 0xff95, description: null },
 | |
|   XK_KP_Left:                       { code: 0xff96, description: null },
 | |
|   XK_KP_Up:                         { code: 0xff97, description: null },
 | |
|   XK_KP_Right:                      { code: 0xff98, description: null },
 | |
|   XK_KP_Down:                       { code: 0xff99, description: null },
 | |
|   XK_KP_Prior:                      { code: 0xff9a, description: null },
 | |
|   XK_KP_Page_Up:                    { code: 0xff9a, description: null },
 | |
|   XK_KP_Next:                       { code: 0xff9b, description: null },
 | |
|   XK_KP_Page_Down:                  { code: 0xff9b, description: null },
 | |
|   XK_KP_End:                        { code: 0xff9c, description: null },
 | |
|   XK_KP_Begin:                      { code: 0xff9d, description: null },
 | |
|   XK_KP_Insert:                     { code: 0xff9e, description: null },
 | |
|   XK_KP_Delete:                     { code: 0xff9f, description: null },
 | |
|   XK_KP_Equal:                      { code: 0xffbd, description: "Equals" },
 | |
|   XK_KP_Multiply:                   { code: 0xffaa, description: null },
 | |
|   XK_KP_Add:                        { code: 0xffab, description: null },
 | |
|   XK_KP_Separator:                  { code: 0xffac, description: "Separator, often comma" },
 | |
|   XK_KP_Subtract:                   { code: 0xffad, description: null },
 | |
|   XK_KP_Decimal:                    { code: 0xffae, description: null },
 | |
|   XK_KP_Divide:                     { code: 0xffaf, description: null },
 | |
| 
 | |
|   XK_KP_0:                          { code: 0xffb0, description: null },
 | |
|   XK_KP_1:                          { code: 0xffb1, description: null },
 | |
|   XK_KP_2:                          { code: 0xffb2, description: null },
 | |
|   XK_KP_3:                          { code: 0xffb3, description: null },
 | |
|   XK_KP_4:                          { code: 0xffb4, description: null },
 | |
|   XK_KP_5:                          { code: 0xffb5, description: null },
 | |
|   XK_KP_6:                          { code: 0xffb6, description: null },
 | |
|   XK_KP_7:                          { code: 0xffb7, description: null },
 | |
|   XK_KP_8:                          { code: 0xffb8, description: null },
 | |
|   XK_KP_9:                          { code: 0xffb9, description: null },
 | |
| 
 | |
| 
 | |
| 
 | |
| /*
 | |
|  * Auxiliary functions; note the duplicate definitions for left and right
 | |
|  * function keys;  Sun keyboards and a few other manufacturers have such
 | |
|  * function key groups on the left and/or right sides of the keyboard.
 | |
|  * We've not found a keyboard with more than 35 function keys total.
 | |
|  */
 | |
| 
 | |
|   XK_F1:                            { code: 0xffbe, description: null },
 | |
|   XK_F2:                            { code: 0xffbf, description: null },
 | |
|   XK_F3:                            { code: 0xffc0, description: null },
 | |
|   XK_F4:                            { code: 0xffc1, description: null },
 | |
|   XK_F5:                            { code: 0xffc2, description: null },
 | |
|   XK_F6:                            { code: 0xffc3, description: null },
 | |
|   XK_F7:                            { code: 0xffc4, description: null },
 | |
|   XK_F8:                            { code: 0xffc5, description: null },
 | |
|   XK_F9:                            { code: 0xffc6, description: null },
 | |
|   XK_F10:                           { code: 0xffc7, description: null },
 | |
|   XK_F11:                           { code: 0xffc8, description: null },
 | |
|   XK_L1:                            { code: 0xffc8, description: null },
 | |
|   XK_F12:                           { code: 0xffc9, description: null },
 | |
|   XK_L2:                            { code: 0xffc9, description: null },
 | |
|   XK_F13:                           { code: 0xffca, description: null },
 | |
|   XK_L3:                            { code: 0xffca, description: null },
 | |
|   XK_F14:                           { code: 0xffcb, description: null },
 | |
|   XK_L4:                            { code: 0xffcb, description: null },
 | |
|   XK_F15:                           { code: 0xffcc, description: null },
 | |
|   XK_L5:                            { code: 0xffcc, description: null },
 | |
|   XK_F16:                           { code: 0xffcd, description: null },
 | |
|   XK_L6:                            { code: 0xffcd, description: null },
 | |
|   XK_F17:                           { code: 0xffce, description: null },
 | |
|   XK_L7:                            { code: 0xffce, description: null },
 | |
|   XK_F18:                           { code: 0xffcf, description: null },
 | |
|   XK_L8:                            { code: 0xffcf, description: null },
 | |
|   XK_F19:                           { code: 0xffd0, description: null },
 | |
|   XK_L9:                            { code: 0xffd0, description: null },
 | |
|   XK_F20:                           { code: 0xffd1, description: null },
 | |
|   XK_L10:                           { code: 0xffd1, description: null },
 | |
|   XK_F21:                           { code: 0xffd2, description: null },
 | |
|   XK_R1:                            { code: 0xffd2, description: null },
 | |
|   XK_F22:                           { code: 0xffd3, description: null },
 | |
|   XK_R2:                            { code: 0xffd3, description: null },
 | |
|   XK_F23:                           { code: 0xffd4, description: null },
 | |
|   XK_R3:                            { code: 0xffd4, description: null },
 | |
|   XK_F24:                           { code: 0xffd5, description: null },
 | |
|   XK_R4:                            { code: 0xffd5, description: null },
 | |
|   XK_F25:                           { code: 0xffd6, description: null },
 | |
|   XK_R5:                            { code: 0xffd6, description: null },
 | |
|   XK_F26:                           { code: 0xffd7, description: null },
 | |
|   XK_R6:                            { code: 0xffd7, description: null },
 | |
|   XK_F27:                           { code: 0xffd8, description: null },
 | |
|   XK_R7:                            { code: 0xffd8, description: null },
 | |
|   XK_F28:                           { code: 0xffd9, description: null },
 | |
|   XK_R8:                            { code: 0xffd9, description: null },
 | |
|   XK_F29:                           { code: 0xffda, description: null },
 | |
|   XK_R9:                            { code: 0xffda, description: null },
 | |
|   XK_F30:                           { code: 0xffdb, description: null },
 | |
|   XK_R10:                           { code: 0xffdb, description: null },
 | |
|   XK_F31:                           { code: 0xffdc, description: null },
 | |
|   XK_R11:                           { code: 0xffdc, description: null },
 | |
|   XK_F32:                           { code: 0xffdd, description: null },
 | |
|   XK_R12:                           { code: 0xffdd, description: null },
 | |
|   XK_F33:                           { code: 0xffde, description: null },
 | |
|   XK_R13:                           { code: 0xffde, description: null },
 | |
|   XK_F34:                           { code: 0xffdf, description: null },
 | |
|   XK_R14:                           { code: 0xffdf, description: null },
 | |
|   XK_F35:                           { code: 0xffe0, description: null },
 | |
|   XK_R15:                           { code: 0xffe0, description: null },
 | |
| 
 | |
| /* Modifiers */
 | |
| 
 | |
|   XK_Shift_L:                       { code: 0xffe1, description: "Left shift" },
 | |
|   XK_Shift_R:                       { code: 0xffe2, description: "Right shift" },
 | |
|   XK_Control_L:                     { code: 0xffe3, description: "Left control" },
 | |
|   XK_Control_R:                     { code: 0xffe4, description: "Right control" },
 | |
|   XK_Caps_Lock:                     { code: 0xffe5, description: "Caps lock" },
 | |
|   XK_Shift_Lock:                    { code: 0xffe6, description: "Shift lock" },
 | |
| 
 | |
|   XK_Meta_L:                        { code: 0xffe7, description: "Left meta" },
 | |
|   XK_Meta_R:                        { code: 0xffe8, description: "Right meta" },
 | |
|   XK_Alt_L:                         { code: 0xffe9, description: "Left alt" },
 | |
|   XK_Alt_R:                         { code: 0xffea, description: "Right alt" },
 | |
|   XK_Super_L:                       { code: 0xffeb, description: "Left super" },
 | |
|   XK_Super_R:                       { code: 0xffec, description: "Right super" },
 | |
|   XK_Hyper_L:                       { code: 0xffed, description: "Left hyper" },
 | |
|   XK_Hyper_R:                       { code: 0xffee, description: "Right hyper" },
 | |
| 
 | |
| 
 | |
| /*
 | |
|  * Keyboard (XKB) Extension function and modifier keys
 | |
|  * (from Appendix C of "The X Keyboard Extension: Protocol Specification")
 | |
|  * Byte 3 = 0xfe
 | |
|  */
 | |
| 
 | |
| // Group XK_XKB_KEYS
 | |
|   XK_ISO_Lock:                      { code: 0xfe01, description: null },
 | |
|   XK_ISO_Level2_Latch:              { code: 0xfe02, description: null },
 | |
|   XK_ISO_Level3_Shift:              { code: 0xfe03, description: null },
 | |
|   XK_ISO_Level3_Latch:              { code: 0xfe04, description: null },
 | |
|   XK_ISO_Level3_Lock:               { code: 0xfe05, description: null },
 | |
|   XK_ISO_Level5_Shift:              { code: 0xfe11, description: null },
 | |
|   XK_ISO_Level5_Latch:              { code: 0xfe12, description: null },
 | |
|   XK_ISO_Level5_Lock:               { code: 0xfe13, description: null },
 | |
|   XK_ISO_Group_Shift:               { code: 0xff7e, description: "Alias for mode_switch" },
 | |
|   XK_ISO_Group_Latch:               { code: 0xfe06, description: null },
 | |
|   XK_ISO_Group_Lock:                { code: 0xfe07, description: null },
 | |
|   XK_ISO_Next_Group:                { code: 0xfe08, description: null },
 | |
|   XK_ISO_Next_Group_Lock:           { code: 0xfe09, description: null },
 | |
|   XK_ISO_Prev_Group:                { code: 0xfe0a, description: null },
 | |
|   XK_ISO_Prev_Group_Lock:           { code: 0xfe0b, description: null },
 | |
|   XK_ISO_First_Group:               { code: 0xfe0c, description: null },
 | |
|   XK_ISO_First_Group_Lock:          { code: 0xfe0d, description: null },
 | |
|   XK_ISO_Last_Group:                { code: 0xfe0e, description: null },
 | |
|   XK_ISO_Last_Group_Lock:           { code: 0xfe0f, description: null },
 | |
| 
 | |
|   XK_ISO_Left_Tab:                  { code: 0xfe20, description: null },
 | |
|   XK_ISO_Move_Line_Up:              { code: 0xfe21, description: null },
 | |
|   XK_ISO_Move_Line_Down:            { code: 0xfe22, description: null },
 | |
|   XK_ISO_Partial_Line_Up:           { code: 0xfe23, description: null },
 | |
|   XK_ISO_Partial_Line_Down:         { code: 0xfe24, description: null },
 | |
|   XK_ISO_Partial_Space_Left:        { code: 0xfe25, description: null },
 | |
|   XK_ISO_Partial_Space_Right:       { code: 0xfe26, description: null },
 | |
|   XK_ISO_Set_Margin_Left:           { code: 0xfe27, description: null },
 | |
|   XK_ISO_Set_Margin_Right:          { code: 0xfe28, description: null },
 | |
|   XK_ISO_Release_Margin_Left:       { code: 0xfe29, description: null },
 | |
|   XK_ISO_Release_Margin_Right:      { code: 0xfe2a, description: null },
 | |
|   XK_ISO_Release_Both_Margins:      { code: 0xfe2b, description: null },
 | |
|   XK_ISO_Fast_Cursor_Left:          { code: 0xfe2c, description: null },
 | |
|   XK_ISO_Fast_Cursor_Right:         { code: 0xfe2d, description: null },
 | |
|   XK_ISO_Fast_Cursor_Up:            { code: 0xfe2e, description: null },
 | |
|   XK_ISO_Fast_Cursor_Down:          { code: 0xfe2f, description: null },
 | |
|   XK_ISO_Continuous_Underline:      { code: 0xfe30, description: null },
 | |
|   XK_ISO_Discontinuous_Underline:   { code: 0xfe31, description: null },
 | |
|   XK_ISO_Emphasize:                 { code: 0xfe32, description: null },
 | |
|   XK_ISO_Center_Object:             { code: 0xfe33, description: null },
 | |
|   XK_ISO_Enter:                     { code: 0xfe34, description: null },
 | |
| 
 | |
|   XK_dead_grave:                    { code: 0xfe50, description: null },
 | |
|   XK_dead_acute:                    { code: 0xfe51, description: null },
 | |
|   XK_dead_circumflex:               { code: 0xfe52, description: null },
 | |
|   XK_dead_tilde:                    { code: 0xfe53, description: null },
 | |
|   XK_dead_perispomeni:              { code: 0xfe53, description: "alias for dead_tilde" },
 | |
|   XK_dead_macron:                   { code: 0xfe54, description: null },
 | |
|   XK_dead_breve:                    { code: 0xfe55, description: null },
 | |
|   XK_dead_abovedot:                 { code: 0xfe56, description: null },
 | |
|   XK_dead_diaeresis:                { code: 0xfe57, description: null },
 | |
|   XK_dead_abovering:                { code: 0xfe58, description: null },
 | |
|   XK_dead_doubleacute:              { code: 0xfe59, description: null },
 | |
|   XK_dead_caron:                    { code: 0xfe5a, description: null },
 | |
|   XK_dead_cedilla:                  { code: 0xfe5b, description: null },
 | |
|   XK_dead_ogonek:                   { code: 0xfe5c, description: null },
 | |
|   XK_dead_iota:                     { code: 0xfe5d, description: null },
 | |
|   XK_dead_voiced_sound:             { code: 0xfe5e, description: null },
 | |
|   XK_dead_semivoiced_sound:         { code: 0xfe5f, description: null },
 | |
|   XK_dead_belowdot:                 { code: 0xfe60, description: null },
 | |
|   XK_dead_hook:                     { code: 0xfe61, description: null },
 | |
|   XK_dead_horn:                     { code: 0xfe62, description: null },
 | |
|   XK_dead_stroke:                   { code: 0xfe63, description: null },
 | |
|   XK_dead_abovecomma:               { code: 0xfe64, description: null },
 | |
|   XK_dead_psili:                    { code: 0xfe64, description: "alias for dead_abovecomma" },
 | |
|   XK_dead_abovereversedcomma:       { code: 0xfe65, description: null },
 | |
|   XK_dead_dasia:                    { code: 0xfe65, description: "alias for dead_abovereversedcomma" },
 | |
|   XK_dead_doublegrave:              { code: 0xfe66, description: null },
 | |
|   XK_dead_belowring:                { code: 0xfe67, description: null },
 | |
|   XK_dead_belowmacron:              { code: 0xfe68, description: null },
 | |
|   XK_dead_belowcircumflex:          { code: 0xfe69, description: null },
 | |
|   XK_dead_belowtilde:               { code: 0xfe6a, description: null },
 | |
|   XK_dead_belowbreve:               { code: 0xfe6b, description: null },
 | |
|   XK_dead_belowdiaeresis:           { code: 0xfe6c, description: null },
 | |
|   XK_dead_invertedbreve:            { code: 0xfe6d, description: null },
 | |
|   XK_dead_belowcomma:               { code: 0xfe6e, description: null },
 | |
|   XK_dead_currency:                 { code: 0xfe6f, description: null },
 | |
| 
 | |
| /* extra dead elements for German T3 layout */
 | |
|   XK_dead_lowline:                  { code: 0xfe90, description: null },
 | |
|   XK_dead_aboveverticalline:        { code: 0xfe91, description: null },
 | |
|   XK_dead_belowverticalline:        { code: 0xfe92, description: null },
 | |
|   XK_dead_longsolidusoverlay:       { code: 0xfe93, description: null },
 | |
| 
 | |
| /* dead vowels for universal syllable entry */
 | |
|   XK_dead_a:                        { code: 0xfe80, description: null },
 | |
|   XK_dead_A:                        { code: 0xfe81, description: null },
 | |
|   XK_dead_e:                        { code: 0xfe82, description: null },
 | |
|   XK_dead_E:                        { code: 0xfe83, description: null },
 | |
|   XK_dead_i:                        { code: 0xfe84, description: null },
 | |
|   XK_dead_I:                        { code: 0xfe85, description: null },
 | |
|   XK_dead_o:                        { code: 0xfe86, description: null },
 | |
|   XK_dead_O:                        { code: 0xfe87, description: null },
 | |
|   XK_dead_u:                        { code: 0xfe88, description: null },
 | |
|   XK_dead_U:                        { code: 0xfe89, description: null },
 | |
|   XK_dead_small_schwa:              { code: 0xfe8a, description: null },
 | |
|   XK_dead_capital_schwa:            { code: 0xfe8b, description: null },
 | |
| 
 | |
|   XK_dead_greek:                    { code: 0xfe8c, description: null },
 | |
| 
 | |
|   XK_First_Virtual_Screen:          { code: 0xfed0, description: null },
 | |
|   XK_Prev_Virtual_Screen:           { code: 0xfed1, description: null },
 | |
|   XK_Next_Virtual_Screen:           { code: 0xfed2, description: null },
 | |
|   XK_Last_Virtual_Screen:           { code: 0xfed4, description: null },
 | |
|   XK_Terminate_Server:              { code: 0xfed5, description: null },
 | |
| 
 | |
|   XK_AccessX_Enable:                { code: 0xfe70, description: null },
 | |
|   XK_AccessX_Feedback_Enable:       { code: 0xfe71, description: null },
 | |
|   XK_RepeatKeys_Enable:             { code: 0xfe72, description: null },
 | |
|   XK_SlowKeys_Enable:               { code: 0xfe73, description: null },
 | |
|   XK_BounceKeys_Enable:             { code: 0xfe74, description: null },
 | |
|   XK_StickyKeys_Enable:             { code: 0xfe75, description: null },
 | |
|   XK_MouseKeys_Enable:              { code: 0xfe76, description: null },
 | |
|   XK_MouseKeys_Accel_Enable:        { code: 0xfe77, description: null },
 | |
|   XK_Overlay1_Enable:               { code: 0xfe78, description: null },
 | |
|   XK_Overlay2_Enable:               { code: 0xfe79, description: null },
 | |
|   XK_AudibleBell_Enable:            { code: 0xfe7a, description: null },
 | |
| 
 | |
|   XK_Pointer_Left:                  { code: 0xfee0, description: null },
 | |
|   XK_Pointer_Right:                 { code: 0xfee1, description: null },
 | |
|   XK_Pointer_Up:                    { code: 0xfee2, description: null },
 | |
|   XK_Pointer_Down:                  { code: 0xfee3, description: null },
 | |
|   XK_Pointer_UpLeft:                { code: 0xfee4, description: null },
 | |
|   XK_Pointer_UpRight:               { code: 0xfee5, description: null },
 | |
|   XK_Pointer_DownLeft:              { code: 0xfee6, description: null },
 | |
|   XK_Pointer_DownRight:             { code: 0xfee7, description: null },
 | |
|   XK_Pointer_Button_Dflt:           { code: 0xfee8, description: null },
 | |
|   XK_Pointer_Button1:               { code: 0xfee9, description: null },
 | |
|   XK_Pointer_Button2:               { code: 0xfeea, description: null },
 | |
|   XK_Pointer_Button3:               { code: 0xfeeb, description: null },
 | |
|   XK_Pointer_Button4:               { code: 0xfeec, description: null },
 | |
|   XK_Pointer_Button5:               { code: 0xfeed, description: null },
 | |
|   XK_Pointer_DblClick_Dflt:         { code: 0xfeee, description: null },
 | |
|   XK_Pointer_DblClick1:             { code: 0xfeef, description: null },
 | |
|   XK_Pointer_DblClick2:             { code: 0xfef0, description: null },
 | |
|   XK_Pointer_DblClick3:             { code: 0xfef1, description: null },
 | |
|   XK_Pointer_DblClick4:             { code: 0xfef2, description: null },
 | |
|   XK_Pointer_DblClick5:             { code: 0xfef3, description: null },
 | |
|   XK_Pointer_Drag_Dflt:             { code: 0xfef4, description: null },
 | |
|   XK_Pointer_Drag1:                 { code: 0xfef5, description: null },
 | |
|   XK_Pointer_Drag2:                 { code: 0xfef6, description: null },
 | |
|   XK_Pointer_Drag3:                 { code: 0xfef7, description: null },
 | |
|   XK_Pointer_Drag4:                 { code: 0xfef8, description: null },
 | |
|   XK_Pointer_Drag5:                 { code: 0xfefd, description: null },
 | |
| 
 | |
|   XK_Pointer_EnableKeys:            { code: 0xfef9, description: null },
 | |
|   XK_Pointer_Accelerate:            { code: 0xfefa, description: null },
 | |
|   XK_Pointer_DfltBtnNext:           { code: 0xfefb, description: null },
 | |
|   XK_Pointer_DfltBtnPrev:           { code: 0xfefc, description: null },
 | |
| 
 | |
| /* Single-Stroke Multiple-Character N-Graph Keysyms For The X Input Method */
 | |
| 
 | |
|   XK_ch:                            { code: 0xfea0, description: null },
 | |
|   XK_Ch:                            { code: 0xfea1, description: null },
 | |
|   XK_CH:                            { code: 0xfea2, description: null },
 | |
|   XK_c_h:                           { code: 0xfea3, description: null },
 | |
|   XK_C_h:                           { code: 0xfea4, description: null },
 | |
|   XK_C_H:                           { code: 0xfea5, description: null },
 | |
| 
 | |
| 
 | |
| 
 | |
| /*
 | |
|  * 3270 Terminal Keys
 | |
|  * Byte 3 = 0xfd
 | |
|  */
 | |
| 
 | |
| // Group XK_3270
 | |
|   XK_3270_Duplicate:                { code: 0xfd01, description: null },
 | |
|   XK_3270_FieldMark:                { code: 0xfd02, description: null },
 | |
|   XK_3270_Right2:                   { code: 0xfd03, description: null },
 | |
|   XK_3270_Left2:                    { code: 0xfd04, description: null },
 | |
|   XK_3270_BackTab:                  { code: 0xfd05, description: null },
 | |
|   XK_3270_EraseEOF:                 { code: 0xfd06, description: null },
 | |
|   XK_3270_EraseInput:               { code: 0xfd07, description: null },
 | |
|   XK_3270_Reset:                    { code: 0xfd08, description: null },
 | |
|   XK_3270_Quit:                     { code: 0xfd09, description: null },
 | |
|   XK_3270_PA1:                      { code: 0xfd0a, description: null },
 | |
|   XK_3270_PA2:                      { code: 0xfd0b, description: null },
 | |
|   XK_3270_PA3:                      { code: 0xfd0c, description: null },
 | |
|   XK_3270_Test:                     { code: 0xfd0d, description: null },
 | |
|   XK_3270_Attn:                     { code: 0xfd0e, description: null },
 | |
|   XK_3270_CursorBlink:              { code: 0xfd0f, description: null },
 | |
|   XK_3270_AltCursor:                { code: 0xfd10, description: null },
 | |
|   XK_3270_KeyClick:                 { code: 0xfd11, description: null },
 | |
|   XK_3270_Jump:                     { code: 0xfd12, description: null },
 | |
|   XK_3270_Ident:                    { code: 0xfd13, description: null },
 | |
|   XK_3270_Rule:                     { code: 0xfd14, description: null },
 | |
|   XK_3270_Copy:                     { code: 0xfd15, description: null },
 | |
|   XK_3270_Play:                     { code: 0xfd16, description: null },
 | |
|   XK_3270_Setup:                    { code: 0xfd17, description: null },
 | |
|   XK_3270_Record:                   { code: 0xfd18, description: null },
 | |
|   XK_3270_ChangeScreen:             { code: 0xfd19, description: null },
 | |
|   XK_3270_DeleteWord:               { code: 0xfd1a, description: null },
 | |
|   XK_3270_ExSelect:                 { code: 0xfd1b, description: null },
 | |
|   XK_3270_CursorSelect:             { code: 0xfd1c, description: null },
 | |
|   XK_3270_PrintScreen:              { code: 0xfd1d, description: null },
 | |
|   XK_3270_Enter:                    { code: 0xfd1e, description: null },
 | |
| 
 | |
| 
 | |
| /*
 | |
|  * Latin 1
 | |
|  * (ISO/IEC 8859-1 = Unicode (\u0020)..U+00FF)
 | |
|  * Byte 3 = 0
 | |
|  */
 | |
| // Group XK_LATIN1
 | |
|   XK_space:                         { code: 0x0020, description: "(\u0020) SPACE" },
 | |
|   XK_exclam:                        { code: 0x0021, description: "(\u0021) EXCLAMATION MARK" },
 | |
|   XK_quotedbl:                      { code: 0x0022, description: "(\u0022) QUOTATION MARK" },
 | |
|   XK_numbersign:                    { code: 0x0023, description: "(\u0023) NUMBER SIGN" },
 | |
|   XK_dollar:                        { code: 0x0024, description: "(\u0024) DOLLAR SIGN" },
 | |
|   XK_percent:                       { code: 0x0025, description: "(\u0025) PERCENT SIGN" },
 | |
|   XK_ampersand:                     { code: 0x0026, description: "(\u0026) AMPERSAND" },
 | |
|   XK_apostrophe:                    { code: 0x0027, description: "(\u0027) APOSTROPHE" },
 | |
|   XK_quoteright:                    { code: 0x0027, description: "deprecated" },
 | |
|   XK_parenleft:                     { code: 0x0028, description: "(\u0028) LEFT PARENTHESIS" },
 | |
|   XK_parenright:                    { code: 0x0029, description: "(\u0029) RIGHT PARENTHESIS" },
 | |
|   XK_asterisk:                      { code: 0x002a, description: "(\u002A) ASTERISK" },
 | |
|   XK_plus:                          { code: 0x002b, description: "(\u002B) PLUS SIGN" },
 | |
|   XK_comma:                         { code: 0x002c, description: "(\u002C) COMMA" },
 | |
|   XK_minus:                         { code: 0x002d, description: "(\u002D) HYPHEN-MINUS" },
 | |
|   XK_period:                        { code: 0x002e, description: "(\u002E) FULL STOP" },
 | |
|   XK_slash:                         { code: 0x002f, description: "(\u002F) SOLIDUS" },
 | |
|   XK_0:                             { code: 0x0030, description: "(\u0030) DIGIT ZERO" },
 | |
|   XK_1:                             { code: 0x0031, description: "(\u0031) DIGIT ONE" },
 | |
|   XK_2:                             { code: 0x0032, description: "(\u0032) DIGIT TWO" },
 | |
|   XK_3:                             { code: 0x0033, description: "(\u0033) DIGIT THREE" },
 | |
|   XK_4:                             { code: 0x0034, description: "(\u0034) DIGIT FOUR" },
 | |
|   XK_5:                             { code: 0x0035, description: "(\u0035) DIGIT FIVE" },
 | |
|   XK_6:                             { code: 0x0036, description: "(\u0036) DIGIT SIX" },
 | |
|   XK_7:                             { code: 0x0037, description: "(\u0037) DIGIT SEVEN" },
 | |
|   XK_8:                             { code: 0x0038, description: "(\u0038) DIGIT EIGHT" },
 | |
|   XK_9:                             { code: 0x0039, description: "(\u0039) DIGIT NINE" },
 | |
|   XK_colon:                         { code: 0x003a, description: "(\u003A) COLON" },
 | |
|   XK_semicolon:                     { code: 0x003b, description: "(\u003B) SEMICOLON" },
 | |
|   XK_less:                          { code: 0x003c, description: "(\u003C) LESS-THAN SIGN" },
 | |
|   XK_equal:                         { code: 0x003d, description: "(\u003D) EQUALS SIGN" },
 | |
|   XK_greater:                       { code: 0x003e, description: "(\u003E) GREATER-THAN SIGN" },
 | |
|   XK_question:                      { code: 0x003f, description: "(\u003F) QUESTION MARK" },
 | |
|   XK_at:                            { code: 0x0040, description: "(\u0040) COMMERCIAL AT" },
 | |
|   XK_A:                             { code: 0x0041, description: "(\u0041) LATIN CAPITAL LETTER A" },
 | |
|   XK_B:                             { code: 0x0042, description: "(\u0042) LATIN CAPITAL LETTER B" },
 | |
|   XK_C:                             { code: 0x0043, description: "(\u0043) LATIN CAPITAL LETTER C" },
 | |
|   XK_D:                             { code: 0x0044, description: "(\u0044) LATIN CAPITAL LETTER D" },
 | |
|   XK_E:                             { code: 0x0045, description: "(\u0045) LATIN CAPITAL LETTER E" },
 | |
|   XK_F:                             { code: 0x0046, description: "(\u0046) LATIN CAPITAL LETTER F" },
 | |
|   XK_G:                             { code: 0x0047, description: "(\u0047) LATIN CAPITAL LETTER G" },
 | |
|   XK_H:                             { code: 0x0048, description: "(\u0048) LATIN CAPITAL LETTER H" },
 | |
|   XK_I:                             { code: 0x0049, description: "(\u0049) LATIN CAPITAL LETTER I" },
 | |
|   XK_J:                             { code: 0x004a, description: "(\u004A) LATIN CAPITAL LETTER J" },
 | |
|   XK_K:                             { code: 0x004b, description: "(\u004B) LATIN CAPITAL LETTER K" },
 | |
|   XK_L:                             { code: 0x004c, description: "(\u004C) LATIN CAPITAL LETTER L" },
 | |
|   XK_M:                             { code: 0x004d, description: "(\u004D) LATIN CAPITAL LETTER M" },
 | |
|   XK_N:                             { code: 0x004e, description: "(\u004E) LATIN CAPITAL LETTER N" },
 | |
|   XK_O:                             { code: 0x004f, description: "(\u004F) LATIN CAPITAL LETTER O" },
 | |
|   XK_P:                             { code: 0x0050, description: "(\u0050) LATIN CAPITAL LETTER P" },
 | |
|   XK_Q:                             { code: 0x0051, description: "(\u0051) LATIN CAPITAL LETTER Q" },
 | |
|   XK_R:                             { code: 0x0052, description: "(\u0052) LATIN CAPITAL LETTER R" },
 | |
|   XK_S:                             { code: 0x0053, description: "(\u0053) LATIN CAPITAL LETTER S" },
 | |
|   XK_T:                             { code: 0x0054, description: "(\u0054) LATIN CAPITAL LETTER T" },
 | |
|   XK_U:                             { code: 0x0055, description: "(\u0055) LATIN CAPITAL LETTER U" },
 | |
|   XK_V:                             { code: 0x0056, description: "(\u0056) LATIN CAPITAL LETTER V" },
 | |
|   XK_W:                             { code: 0x0057, description: "(\u0057) LATIN CAPITAL LETTER W" },
 | |
|   XK_X:                             { code: 0x0058, description: "(\u0058) LATIN CAPITAL LETTER X" },
 | |
|   XK_Y:                             { code: 0x0059, description: "(\u0059) LATIN CAPITAL LETTER Y" },
 | |
|   XK_Z:                             { code: 0x005a, description: "(\u005A) LATIN CAPITAL LETTER Z" },
 | |
|   XK_bracketleft:                   { code: 0x005b, description: "(\u005B) LEFT SQUARE BRACKET" },
 | |
|   XK_backslash:                     { code: 0x005c, description: "(\u005C) REVERSE SOLIDUS" },
 | |
|   XK_bracketright:                  { code: 0x005d, description: "(\u005D) RIGHT SQUARE BRACKET" },
 | |
|   XK_asciicircum:                   { code: 0x005e, description: "(\u005E) CIRCUMFLEX ACCENT" },
 | |
|   XK_underscore:                    { code: 0x005f, description: "(\u005F) LOW LINE" },
 | |
|   XK_grave:                         { code: 0x0060, description: "(\u0060) GRAVE ACCENT" },
 | |
|   XK_quoteleft:                     { code: 0x0060, description: "deprecated" },
 | |
|   XK_a:                             { code: 0x0061, description: "(\u0061) LATIN SMALL LETTER A" },
 | |
|   XK_b:                             { code: 0x0062, description: "(\u0062) LATIN SMALL LETTER B" },
 | |
|   XK_c:                             { code: 0x0063, description: "(\u0063) LATIN SMALL LETTER C" },
 | |
|   XK_d:                             { code: 0x0064, description: "(\u0064) LATIN SMALL LETTER D" },
 | |
|   XK_e:                             { code: 0x0065, description: "(\u0065) LATIN SMALL LETTER E" },
 | |
|   XK_f:                             { code: 0x0066, description: "(\u0066) LATIN SMALL LETTER F" },
 | |
|   XK_g:                             { code: 0x0067, description: "(\u0067) LATIN SMALL LETTER G" },
 | |
|   XK_h:                             { code: 0x0068, description: "(\u0068) LATIN SMALL LETTER H" },
 | |
|   XK_i:                             { code: 0x0069, description: "(\u0069) LATIN SMALL LETTER I" },
 | |
|   XK_j:                             { code: 0x006a, description: "(\u006A) LATIN SMALL LETTER J" },
 | |
|   XK_k:                             { code: 0x006b, description: "(\u006B) LATIN SMALL LETTER K" },
 | |
|   XK_l:                             { code: 0x006c, description: "(\u006C) LATIN SMALL LETTER L" },
 | |
|   XK_m:                             { code: 0x006d, description: "(\u006D) LATIN SMALL LETTER M" },
 | |
|   XK_n:                             { code: 0x006e, description: "(\u006E) LATIN SMALL LETTER N" },
 | |
|   XK_o:                             { code: 0x006f, description: "(\u006F) LATIN SMALL LETTER O" },
 | |
|   XK_p:                             { code: 0x0070, description: "(\u0070) LATIN SMALL LETTER P" },
 | |
|   XK_q:                             { code: 0x0071, description: "(\u0071) LATIN SMALL LETTER Q" },
 | |
|   XK_r:                             { code: 0x0072, description: "(\u0072) LATIN SMALL LETTER R" },
 | |
|   XK_s:                             { code: 0x0073, description: "(\u0073) LATIN SMALL LETTER S" },
 | |
|   XK_t:                             { code: 0x0074, description: "(\u0074) LATIN SMALL LETTER T" },
 | |
|   XK_u:                             { code: 0x0075, description: "(\u0075) LATIN SMALL LETTER U" },
 | |
|   XK_v:                             { code: 0x0076, description: "(\u0076) LATIN SMALL LETTER V" },
 | |
|   XK_w:                             { code: 0x0077, description: "(\u0077) LATIN SMALL LETTER W" },
 | |
|   XK_x:                             { code: 0x0078, description: "(\u0078) LATIN SMALL LETTER X" },
 | |
|   XK_y:                             { code: 0x0079, description: "(\u0079) LATIN SMALL LETTER Y" },
 | |
|   XK_z:                             { code: 0x007a, description: "(\u007A) LATIN SMALL LETTER Z" },
 | |
|   XK_braceleft:                     { code: 0x007b, description: "(\u007B) LEFT CURLY BRACKET" },
 | |
|   XK_bar:                           { code: 0x007c, description: "(\u007C) VERTICAL LINE" },
 | |
|   XK_braceright:                    { code: 0x007d, description: "(\u007D) RIGHT CURLY BRACKET" },
 | |
|   XK_asciitilde:                    { code: 0x007e, description: "(\u007E) TILDE" },
 | |
| 
 | |
|   XK_nobreakspace:                  { code: 0x00a0, description: "(\u00A0) NO-BREAK SPACE" },
 | |
|   XK_exclamdown:                    { code: 0x00a1, description: "(\u00A1) INVERTED EXCLAMATION MARK" },
 | |
|   XK_cent:                          { code: 0x00a2, description: "(\u00A2) CENT SIGN" },
 | |
|   XK_sterling:                      { code: 0x00a3, description: "(\u00A3) POUND SIGN" },
 | |
|   XK_currency:                      { code: 0x00a4, description: "(\u00A4) CURRENCY SIGN" },
 | |
|   XK_yen:                           { code: 0x00a5, description: "(\u00A5) YEN SIGN" },
 | |
|   XK_brokenbar:                     { code: 0x00a6, description: "(\u00A6) BROKEN BAR" },
 | |
|   XK_section:                       { code: 0x00a7, description: "(\u00A7) SECTION SIGN" },
 | |
|   XK_diaeresis:                     { code: 0x00a8, description: "(\u00A8) DIAERESIS" },
 | |
|   XK_copyright:                     { code: 0x00a9, description: "(\u00A9) COPYRIGHT SIGN" },
 | |
|   XK_ordfeminine:                   { code: 0x00aa, description: "(\u00AA) FEMININE ORDINAL INDICATOR" },
 | |
|   XK_guillemotleft:                 { code: 0x00ab, description: "(\u00AB) LEFT-POINTING DOUBLE ANGLE QUOTATION MARK" },
 | |
|   XK_notsign:                       { code: 0x00ac, description: "(\u00AC) NOT SIGN" },
 | |
|   XK_hyphen:                        { code: 0x00ad, description: "(\u00AD) SOFT HYPHEN" },
 | |
|   XK_registered:                    { code: 0x00ae, description: "(\u00AE) REGISTERED SIGN" },
 | |
|   XK_macron:                        { code: 0x00af, description: "(\u00AF) MACRON" },
 | |
|   XK_degree:                        { code: 0x00b0, description: "(\u00B0) DEGREE SIGN" },
 | |
|   XK_plusminus:                     { code: 0x00b1, description: "(\u00B1) PLUS-MINUS SIGN" },
 | |
|   XK_twosuperior:                   { code: 0x00b2, description: "(\u00B2) SUPERSCRIPT TWO" },
 | |
|   XK_threesuperior:                 { code: 0x00b3, description: "(\u00B3) SUPERSCRIPT THREE" },
 | |
|   XK_acute:                         { code: 0x00b4, description: "(\u00B4) ACUTE ACCENT" },
 | |
|   XK_mu:                            { code: 0x00b5, description: "(\u00B5) MICRO SIGN" },
 | |
|   XK_paragraph:                     { code: 0x00b6, description: "(\u00B6) PILCROW SIGN" },
 | |
|   XK_periodcentered:                { code: 0x00b7, description: "(\u00B7) MIDDLE DOT" },
 | |
|   XK_cedilla:                       { code: 0x00b8, description: "(\u00B8) CEDILLA" },
 | |
|   XK_onesuperior:                   { code: 0x00b9, description: "(\u00B9) SUPERSCRIPT ONE" },
 | |
|   XK_masculine:                     { code: 0x00ba, description: "(\u00BA) MASCULINE ORDINAL INDICATOR" },
 | |
|   XK_guillemotright:                { code: 0x00bb, description: "(\u00BB) RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK" },
 | |
|   XK_onequarter:                    { code: 0x00bc, description: "(\u00BC) VULGAR FRACTION ONE QUARTER" },
 | |
|   XK_onehalf:                       { code: 0x00bd, description: "(\u00BD) VULGAR FRACTION ONE HALF" },
 | |
|   XK_threequarters:                 { code: 0x00be, description: "(\u00BE) VULGAR FRACTION THREE QUARTERS" },
 | |
|   XK_questiondown:                  { code: 0x00bf, description: "(\u00BF) INVERTED QUESTION MARK" },
 | |
|   XK_Agrave:                        { code: 0x00c0, description: "(\u00C0) LATIN CAPITAL LETTER A WITH GRAVE" },
 | |
|   XK_Aacute:                        { code: 0x00c1, description: "(\u00C1) LATIN CAPITAL LETTER A WITH ACUTE" },
 | |
|   XK_Acircumflex:                   { code: 0x00c2, description: "(\u00C2) LATIN CAPITAL LETTER A WITH CIRCUMFLEX" },
 | |
|   XK_Atilde:                        { code: 0x00c3, description: "(\u00C3) LATIN CAPITAL LETTER A WITH TILDE" },
 | |
|   XK_Adiaeresis:                    { code: 0x00c4, description: "(\u00C4) LATIN CAPITAL LETTER A WITH DIAERESIS" },
 | |
|   XK_Aring:                         { code: 0x00c5, description: "(\u00C5) LATIN CAPITAL LETTER A WITH RING ABOVE" },
 | |
|   XK_AE:                            { code: 0x00c6, description: "(\u00C6) LATIN CAPITAL LETTER AE" },
 | |
|   XK_Ccedilla:                      { code: 0x00c7, description: "(\u00C7) LATIN CAPITAL LETTER C WITH CEDILLA" },
 | |
|   XK_Egrave:                        { code: 0x00c8, description: "(\u00C8) LATIN CAPITAL LETTER E WITH GRAVE" },
 | |
|   XK_Eacute:                        { code: 0x00c9, description: "(\u00C9) LATIN CAPITAL LETTER E WITH ACUTE" },
 | |
|   XK_Ecircumflex:                   { code: 0x00ca, description: "(\u00CA) LATIN CAPITAL LETTER E WITH CIRCUMFLEX" },
 | |
|   XK_Ediaeresis:                    { code: 0x00cb, description: "(\u00CB) LATIN CAPITAL LETTER E WITH DIAERESIS" },
 | |
|   XK_Igrave:                        { code: 0x00cc, description: "(\u00CC) LATIN CAPITAL LETTER I WITH GRAVE" },
 | |
|   XK_Iacute:                        { code: 0x00cd, description: "(\u00CD) LATIN CAPITAL LETTER I WITH ACUTE" },
 | |
|   XK_Icircumflex:                   { code: 0x00ce, description: "(\u00CE) LATIN CAPITAL LETTER I WITH CIRCUMFLEX" },
 | |
|   XK_Idiaeresis:                    { code: 0x00cf, description: "(\u00CF) LATIN CAPITAL LETTER I WITH DIAERESIS" },
 | |
|   XK_ETH:                           { code: 0x00d0, description: "(\u00D0) LATIN CAPITAL LETTER ETH" },
 | |
|   XK_Eth:                           { code: 0x00d0, description: "deprecated" },
 | |
|   XK_Ntilde:                        { code: 0x00d1, description: "(\u00D1) LATIN CAPITAL LETTER N WITH TILDE" },
 | |
|   XK_Ograve:                        { code: 0x00d2, description: "(\u00D2) LATIN CAPITAL LETTER O WITH GRAVE" },
 | |
|   XK_Oacute:                        { code: 0x00d3, description: "(\u00D3) LATIN CAPITAL LETTER O WITH ACUTE" },
 | |
|   XK_Ocircumflex:                   { code: 0x00d4, description: "(\u00D4) LATIN CAPITAL LETTER O WITH CIRCUMFLEX" },
 | |
|   XK_Otilde:                        { code: 0x00d5, description: "(\u00D5) LATIN CAPITAL LETTER O WITH TILDE" },
 | |
|   XK_Odiaeresis:                    { code: 0x00d6, description: "(\u00D6) LATIN CAPITAL LETTER O WITH DIAERESIS" },
 | |
|   XK_multiply:                      { code: 0x00d7, description: "(\u00D7) MULTIPLICATION SIGN" },
 | |
|   XK_Oslash:                        { code: 0x00d8, description: "(\u00D8) LATIN CAPITAL LETTER O WITH STROKE" },
 | |
|   XK_Ooblique:                      { code: 0x00d8, description: "(\u00D8) LATIN CAPITAL LETTER O WITH STROKE" },
 | |
|   XK_Ugrave:                        { code: 0x00d9, description: "(\u00D9) LATIN CAPITAL LETTER U WITH GRAVE" },
 | |
|   XK_Uacute:                        { code: 0x00da, description: "(\u00DA) LATIN CAPITAL LETTER U WITH ACUTE" },
 | |
|   XK_Ucircumflex:                   { code: 0x00db, description: "(\u00DB) LATIN CAPITAL LETTER U WITH CIRCUMFLEX" },
 | |
|   XK_Udiaeresis:                    { code: 0x00dc, description: "(\u00DC) LATIN CAPITAL LETTER U WITH DIAERESIS" },
 | |
|   XK_Yacute:                        { code: 0x00dd, description: "(\u00DD) LATIN CAPITAL LETTER Y WITH ACUTE" },
 | |
|   XK_THORN:                         { code: 0x00de, description: "(\u00DE) LATIN CAPITAL LETTER THORN" },
 | |
|   XK_Thorn:                         { code: 0x00de, description: "deprecated" },
 | |
|   XK_ssharp:                        { code: 0x00df, description: "(\u00DF) LATIN SMALL LETTER SHARP S" },
 | |
|   XK_agrave:                        { code: 0x00e0, description: "(\u00E0) LATIN SMALL LETTER A WITH GRAVE" },
 | |
|   XK_aacute:                        { code: 0x00e1, description: "(\u00E1) LATIN SMALL LETTER A WITH ACUTE" },
 | |
|   XK_acircumflex:                   { code: 0x00e2, description: "(\u00E2) LATIN SMALL LETTER A WITH CIRCUMFLEX" },
 | |
|   XK_atilde:                        { code: 0x00e3, description: "(\u00E3) LATIN SMALL LETTER A WITH TILDE" },
 | |
|   XK_adiaeresis:                    { code: 0x00e4, description: "(\u00E4) LATIN SMALL LETTER A WITH DIAERESIS" },
 | |
|   XK_aring:                         { code: 0x00e5, description: "(\u00E5) LATIN SMALL LETTER A WITH RING ABOVE" },
 | |
|   XK_ae:                            { code: 0x00e6, description: "(\u00E6) LATIN SMALL LETTER AE" },
 | |
|   XK_ccedilla:                      { code: 0x00e7, description: "(\u00E7) LATIN SMALL LETTER C WITH CEDILLA" },
 | |
|   XK_egrave:                        { code: 0x00e8, description: "(\u00E8) LATIN SMALL LETTER E WITH GRAVE" },
 | |
|   XK_eacute:                        { code: 0x00e9, description: "(\u00E9) LATIN SMALL LETTER E WITH ACUTE" },
 | |
|   XK_ecircumflex:                   { code: 0x00ea, description: "(\u00EA) LATIN SMALL LETTER E WITH CIRCUMFLEX" },
 | |
|   XK_ediaeresis:                    { code: 0x00eb, description: "(\u00EB) LATIN SMALL LETTER E WITH DIAERESIS" },
 | |
|   XK_igrave:                        { code: 0x00ec, description: "(\u00EC) LATIN SMALL LETTER I WITH GRAVE" },
 | |
|   XK_iacute:                        { code: 0x00ed, description: "(\u00ED) LATIN SMALL LETTER I WITH ACUTE" },
 | |
|   XK_icircumflex:                   { code: 0x00ee, description: "(\u00EE) LATIN SMALL LETTER I WITH CIRCUMFLEX" },
 | |
|   XK_idiaeresis:                    { code: 0x00ef, description: "(\u00EF) LATIN SMALL LETTER I WITH DIAERESIS" },
 | |
|   XK_eth:                           { code: 0x00f0, description: "(\u00F0) LATIN SMALL LETTER ETH" },
 | |
|   XK_ntilde:                        { code: 0x00f1, description: "(\u00F1) LATIN SMALL LETTER N WITH TILDE" },
 | |
|   XK_ograve:                        { code: 0x00f2, description: "(\u00F2) LATIN SMALL LETTER O WITH GRAVE" },
 | |
|   XK_oacute:                        { code: 0x00f3, description: "(\u00F3) LATIN SMALL LETTER O WITH ACUTE" },
 | |
|   XK_ocircumflex:                   { code: 0x00f4, description: "(\u00F4) LATIN SMALL LETTER O WITH CIRCUMFLEX" },
 | |
|   XK_otilde:                        { code: 0x00f5, description: "(\u00F5) LATIN SMALL LETTER O WITH TILDE" },
 | |
|   XK_odiaeresis:                    { code: 0x00f6, description: "(\u00F6) LATIN SMALL LETTER O WITH DIAERESIS" },
 | |
|   XK_division:                      { code: 0x00f7, description: "(\u00F7) DIVISION SIGN" },
 | |
|   XK_oslash:                        { code: 0x00f8, description: "(\u00F8) LATIN SMALL LETTER O WITH STROKE" },
 | |
|   XK_ooblique:                      { code: 0x00f8, description: "(\u00F8) LATIN SMALL LETTER O WITH STROKE" },
 | |
|   XK_ugrave:                        { code: 0x00f9, description: "(\u00F9) LATIN SMALL LETTER U WITH GRAVE" },
 | |
|   XK_uacute:                        { code: 0x00fa, description: "(\u00FA) LATIN SMALL LETTER U WITH ACUTE" },
 | |
|   XK_ucircumflex:                   { code: 0x00fb, description: "(\u00FB) LATIN SMALL LETTER U WITH CIRCUMFLEX" },
 | |
|   XK_udiaeresis:                    { code: 0x00fc, description: "(\u00FC) LATIN SMALL LETTER U WITH DIAERESIS" },
 | |
|   XK_yacute:                        { code: 0x00fd, description: "(\u00FD) LATIN SMALL LETTER Y WITH ACUTE" },
 | |
|   XK_thorn:                         { code: 0x00fe, description: "(\u00FE) LATIN SMALL LETTER THORN" },
 | |
|   XK_ydiaeresis:                    { code: 0x00ff, description: "(\u00FF) LATIN SMALL LETTER Y WITH DIAERESIS" },
 | |
| 
 | |
| 
 | |
| /*
 | |
|  * Latin 2
 | |
|  * Byte 3 = 1
 | |
|  */
 | |
| 
 | |
| // Group XK_LATIN2
 | |
|   XK_Aogonek:                       { code: 0x01a1, description: "(\u0104) LATIN CAPITAL LETTER A WITH OGONEK" },
 | |
|   XK_breve:                         { code: 0x01a2, description: "(\u02D8) BREVE" },
 | |
|   XK_Lstroke:                       { code: 0x01a3, description: "(\u0141) LATIN CAPITAL LETTER L WITH STROKE" },
 | |
|   XK_Lcaron:                        { code: 0x01a5, description: "(\u013D) LATIN CAPITAL LETTER L WITH CARON" },
 | |
|   XK_Sacute:                        { code: 0x01a6, description: "(\u015A) LATIN CAPITAL LETTER S WITH ACUTE" },
 | |
|   XK_Scaron:                        { code: 0x01a9, description: "(\u0160) LATIN CAPITAL LETTER S WITH CARON" },
 | |
|   XK_Scedilla:                      { code: 0x01aa, description: "(\u015E) LATIN CAPITAL LETTER S WITH CEDILLA" },
 | |
|   XK_Tcaron:                        { code: 0x01ab, description: "(\u0164) LATIN CAPITAL LETTER T WITH CARON" },
 | |
|   XK_Zacute:                        { code: 0x01ac, description: "(\u0179) LATIN CAPITAL LETTER Z WITH ACUTE" },
 | |
|   XK_Zcaron:                        { code: 0x01ae, description: "(\u017D) LATIN CAPITAL LETTER Z WITH CARON" },
 | |
|   XK_Zabovedot:                     { code: 0x01af, description: "(\u017B) LATIN CAPITAL LETTER Z WITH DOT ABOVE" },
 | |
|   XK_aogonek:                       { code: 0x01b1, description: "(\u0105) LATIN SMALL LETTER A WITH OGONEK" },
 | |
|   XK_ogonek:                        { code: 0x01b2, description: "(\u02DB) OGONEK" },
 | |
|   XK_lstroke:                       { code: 0x01b3, description: "(\u0142) LATIN SMALL LETTER L WITH STROKE" },
 | |
|   XK_lcaron:                        { code: 0x01b5, description: "(\u013E) LATIN SMALL LETTER L WITH CARON" },
 | |
|   XK_sacute:                        { code: 0x01b6, description: "(\u015B) LATIN SMALL LETTER S WITH ACUTE" },
 | |
|   XK_caron:                         { code: 0x01b7, description: "(\u02C7) CARON" },
 | |
|   XK_scaron:                        { code: 0x01b9, description: "(\u0161) LATIN SMALL LETTER S WITH CARON" },
 | |
|   XK_scedilla:                      { code: 0x01ba, description: "(\u015F) LATIN SMALL LETTER S WITH CEDILLA" },
 | |
|   XK_tcaron:                        { code: 0x01bb, description: "(\u0165) LATIN SMALL LETTER T WITH CARON" },
 | |
|   XK_zacute:                        { code: 0x01bc, description: "(\u017A) LATIN SMALL LETTER Z WITH ACUTE" },
 | |
|   XK_doubleacute:                   { code: 0x01bd, description: "(\u02DD) DOUBLE ACUTE ACCENT" },
 | |
|   XK_zcaron:                        { code: 0x01be, description: "(\u017E) LATIN SMALL LETTER Z WITH CARON" },
 | |
|   XK_zabovedot:                     { code: 0x01bf, description: "(\u017C) LATIN SMALL LETTER Z WITH DOT ABOVE" },
 | |
|   XK_Racute:                        { code: 0x01c0, description: "(\u0154) LATIN CAPITAL LETTER R WITH ACUTE" },
 | |
|   XK_Abreve:                        { code: 0x01c3, description: "(\u0102) LATIN CAPITAL LETTER A WITH BREVE" },
 | |
|   XK_Lacute:                        { code: 0x01c5, description: "(\u0139) LATIN CAPITAL LETTER L WITH ACUTE" },
 | |
|   XK_Cacute:                        { code: 0x01c6, description: "(\u0106) LATIN CAPITAL LETTER C WITH ACUTE" },
 | |
|   XK_Ccaron:                        { code: 0x01c8, description: "(\u010C) LATIN CAPITAL LETTER C WITH CARON" },
 | |
|   XK_Eogonek:                       { code: 0x01ca, description: "(\u0118) LATIN CAPITAL LETTER E WITH OGONEK" },
 | |
|   XK_Ecaron:                        { code: 0x01cc, description: "(\u011A) LATIN CAPITAL LETTER E WITH CARON" },
 | |
|   XK_Dcaron:                        { code: 0x01cf, description: "(\u010E) LATIN CAPITAL LETTER D WITH CARON" },
 | |
|   XK_Dstroke:                       { code: 0x01d0, description: "(\u0110) LATIN CAPITAL LETTER D WITH STROKE" },
 | |
|   XK_Nacute:                        { code: 0x01d1, description: "(\u0143) LATIN CAPITAL LETTER N WITH ACUTE" },
 | |
|   XK_Ncaron:                        { code: 0x01d2, description: "(\u0147) LATIN CAPITAL LETTER N WITH CARON" },
 | |
|   XK_Odoubleacute:                  { code: 0x01d5, description: "(\u0150) LATIN CAPITAL LETTER O WITH DOUBLE ACUTE" },
 | |
|   XK_Rcaron:                        { code: 0x01d8, description: "(\u0158) LATIN CAPITAL LETTER R WITH CARON" },
 | |
|   XK_Uring:                         { code: 0x01d9, description: "(\u016E) LATIN CAPITAL LETTER U WITH RING ABOVE" },
 | |
|   XK_Udoubleacute:                  { code: 0x01db, description: "(\u0170) LATIN CAPITAL LETTER U WITH DOUBLE ACUTE" },
 | |
|   XK_Tcedilla:                      { code: 0x01de, description: "(\u0162) LATIN CAPITAL LETTER T WITH CEDILLA" },
 | |
|   XK_racute:                        { code: 0x01e0, description: "(\u0155) LATIN SMALL LETTER R WITH ACUTE" },
 | |
|   XK_abreve:                        { code: 0x01e3, description: "(\u0103) LATIN SMALL LETTER A WITH BREVE" },
 | |
|   XK_lacute:                        { code: 0x01e5, description: "(\u013A) LATIN SMALL LETTER L WITH ACUTE" },
 | |
|   XK_cacute:                        { code: 0x01e6, description: "(\u0107) LATIN SMALL LETTER C WITH ACUTE" },
 | |
|   XK_ccaron:                        { code: 0x01e8, description: "(\u010D) LATIN SMALL LETTER C WITH CARON" },
 | |
|   XK_eogonek:                       { code: 0x01ea, description: "(\u0119) LATIN SMALL LETTER E WITH OGONEK" },
 | |
|   XK_ecaron:                        { code: 0x01ec, description: "(\u011B) LATIN SMALL LETTER E WITH CARON" },
 | |
|   XK_dcaron:                        { code: 0x01ef, description: "(\u010F) LATIN SMALL LETTER D WITH CARON" },
 | |
|   XK_dstroke:                       { code: 0x01f0, description: "(\u0111) LATIN SMALL LETTER D WITH STROKE" },
 | |
|   XK_nacute:                        { code: 0x01f1, description: "(\u0144) LATIN SMALL LETTER N WITH ACUTE" },
 | |
|   XK_ncaron:                        { code: 0x01f2, description: "(\u0148) LATIN SMALL LETTER N WITH CARON" },
 | |
|   XK_odoubleacute:                  { code: 0x01f5, description: "(\u0151) LATIN SMALL LETTER O WITH DOUBLE ACUTE" },
 | |
|   XK_rcaron:                        { code: 0x01f8, description: "(\u0159) LATIN SMALL LETTER R WITH CARON" },
 | |
|   XK_uring:                         { code: 0x01f9, description: "(\u016F) LATIN SMALL LETTER U WITH RING ABOVE" },
 | |
|   XK_udoubleacute:                  { code: 0x01fb, description: "(\u0171) LATIN SMALL LETTER U WITH DOUBLE ACUTE" },
 | |
|   XK_tcedilla:                      { code: 0x01fe, description: "(\u0163) LATIN SMALL LETTER T WITH CEDILLA" },
 | |
|   XK_abovedot:                      { code: 0x01ff, description: "(\u02D9) DOT ABOVE" },
 | |
| 
 | |
| 
 | |
| /*
 | |
|  * Latin 3
 | |
|  * Byte 3 = 2
 | |
|  */
 | |
| 
 | |
| // Group XK_LATIN3
 | |
|   XK_Hstroke:                       { code: 0x02a1, description: "(\u0126) LATIN CAPITAL LETTER H WITH STROKE" },
 | |
|   XK_Hcircumflex:                   { code: 0x02a6, description: "(\u0124) LATIN CAPITAL LETTER H WITH CIRCUMFLEX" },
 | |
|   XK_Iabovedot:                     { code: 0x02a9, description: "(\u0130) LATIN CAPITAL LETTER I WITH DOT ABOVE" },
 | |
|   XK_Gbreve:                        { code: 0x02ab, description: "(\u011E) LATIN CAPITAL LETTER G WITH BREVE" },
 | |
|   XK_Jcircumflex:                   { code: 0x02ac, description: "(\u0134) LATIN CAPITAL LETTER J WITH CIRCUMFLEX" },
 | |
|   XK_hstroke:                       { code: 0x02b1, description: "(\u0127) LATIN SMALL LETTER H WITH STROKE" },
 | |
|   XK_hcircumflex:                   { code: 0x02b6, description: "(\u0125) LATIN SMALL LETTER H WITH CIRCUMFLEX" },
 | |
|   XK_idotless:                      { code: 0x02b9, description: "(\u0131) LATIN SMALL LETTER DOTLESS I" },
 | |
|   XK_gbreve:                        { code: 0x02bb, description: "(\u011F) LATIN SMALL LETTER G WITH BREVE" },
 | |
|   XK_jcircumflex:                   { code: 0x02bc, description: "(\u0135) LATIN SMALL LETTER J WITH CIRCUMFLEX" },
 | |
|   XK_Cabovedot:                     { code: 0x02c5, description: "(\u010A) LATIN CAPITAL LETTER C WITH DOT ABOVE" },
 | |
|   XK_Ccircumflex:                   { code: 0x02c6, description: "(\u0108) LATIN CAPITAL LETTER C WITH CIRCUMFLEX" },
 | |
|   XK_Gabovedot:                     { code: 0x02d5, description: "(\u0120) LATIN CAPITAL LETTER G WITH DOT ABOVE" },
 | |
|   XK_Gcircumflex:                   { code: 0x02d8, description: "(\u011C) LATIN CAPITAL LETTER G WITH CIRCUMFLEX" },
 | |
|   XK_Ubreve:                        { code: 0x02dd, description: "(\u016C) LATIN CAPITAL LETTER U WITH BREVE" },
 | |
|   XK_Scircumflex:                   { code: 0x02de, description: "(\u015C) LATIN CAPITAL LETTER S WITH CIRCUMFLEX" },
 | |
|   XK_cabovedot:                     { code: 0x02e5, description: "(\u010B) LATIN SMALL LETTER C WITH DOT ABOVE" },
 | |
|   XK_ccircumflex:                   { code: 0x02e6, description: "(\u0109) LATIN SMALL LETTER C WITH CIRCUMFLEX" },
 | |
|   XK_gabovedot:                     { code: 0x02f5, description: "(\u0121) LATIN SMALL LETTER G WITH DOT ABOVE" },
 | |
|   XK_gcircumflex:                   { code: 0x02f8, description: "(\u011D) LATIN SMALL LETTER G WITH CIRCUMFLEX" },
 | |
|   XK_ubreve:                        { code: 0x02fd, description: "(\u016D) LATIN SMALL LETTER U WITH BREVE" },
 | |
|   XK_scircumflex:                   { code: 0x02fe, description: "(\u015D) LATIN SMALL LETTER S WITH CIRCUMFLEX" },
 | |
| 
 | |
| 
 | |
| 
 | |
| /*
 | |
|  * Latin 4
 | |
|  * Byte 3 = 3
 | |
|  */
 | |
| 
 | |
| // Group XK_LATIN4
 | |
|   XK_kra:                           { code: 0x03a2, description: "(\u0138) LATIN SMALL LETTER KRA" },
 | |
|   XK_kappa:                         { code: 0x03a2, description: "deprecated" },
 | |
|   XK_Rcedilla:                      { code: 0x03a3, description: "(\u0156) LATIN CAPITAL LETTER R WITH CEDILLA" },
 | |
|   XK_Itilde:                        { code: 0x03a5, description: "(\u0128) LATIN CAPITAL LETTER I WITH TILDE" },
 | |
|   XK_Lcedilla:                      { code: 0x03a6, description: "(\u013B) LATIN CAPITAL LETTER L WITH CEDILLA" },
 | |
|   XK_Emacron:                       { code: 0x03aa, description: "(\u0112) LATIN CAPITAL LETTER E WITH MACRON" },
 | |
|   XK_Gcedilla:                      { code: 0x03ab, description: "(\u0122) LATIN CAPITAL LETTER G WITH CEDILLA" },
 | |
|   XK_Tslash:                        { code: 0x03ac, description: "(\u0166) LATIN CAPITAL LETTER T WITH STROKE" },
 | |
|   XK_rcedilla:                      { code: 0x03b3, description: "(\u0157) LATIN SMALL LETTER R WITH CEDILLA" },
 | |
|   XK_itilde:                        { code: 0x03b5, description: "(\u0129) LATIN SMALL LETTER I WITH TILDE" },
 | |
|   XK_lcedilla:                      { code: 0x03b6, description: "(\u013C) LATIN SMALL LETTER L WITH CEDILLA" },
 | |
|   XK_emacron:                       { code: 0x03ba, description: "(\u0113) LATIN SMALL LETTER E WITH MACRON" },
 | |
|   XK_gcedilla:                      { code: 0x03bb, description: "(\u0123) LATIN SMALL LETTER G WITH CEDILLA" },
 | |
|   XK_tslash:                        { code: 0x03bc, description: "(\u0167) LATIN SMALL LETTER T WITH STROKE" },
 | |
|   XK_ENG:                           { code: 0x03bd, description: "(\u014A) LATIN CAPITAL LETTER ENG" },
 | |
|   XK_eng:                           { code: 0x03bf, description: "(\u014B) LATIN SMALL LETTER ENG" },
 | |
|   XK_Amacron:                       { code: 0x03c0, description: "(\u0100) LATIN CAPITAL LETTER A WITH MACRON" },
 | |
|   XK_Iogonek:                       { code: 0x03c7, description: "(\u012E) LATIN CAPITAL LETTER I WITH OGONEK" },
 | |
|   XK_Eabovedot:                     { code: 0x03cc, description: "(\u0116) LATIN CAPITAL LETTER E WITH DOT ABOVE" },
 | |
|   XK_Imacron:                       { code: 0x03cf, description: "(\u012A) LATIN CAPITAL LETTER I WITH MACRON" },
 | |
|   XK_Ncedilla:                      { code: 0x03d1, description: "(\u0145) LATIN CAPITAL LETTER N WITH CEDILLA" },
 | |
|   XK_Omacron:                       { code: 0x03d2, description: "(\u014C) LATIN CAPITAL LETTER O WITH MACRON" },
 | |
|   XK_Kcedilla:                      { code: 0x03d3, description: "(\u0136) LATIN CAPITAL LETTER K WITH CEDILLA" },
 | |
|   XK_Uogonek:                       { code: 0x03d9, description: "(\u0172) LATIN CAPITAL LETTER U WITH OGONEK" },
 | |
|   XK_Utilde:                        { code: 0x03dd, description: "(\u0168) LATIN CAPITAL LETTER U WITH TILDE" },
 | |
|   XK_Umacron:                       { code: 0x03de, description: "(\u016A) LATIN CAPITAL LETTER U WITH MACRON" },
 | |
|   XK_amacron:                       { code: 0x03e0, description: "(\u0101) LATIN SMALL LETTER A WITH MACRON" },
 | |
|   XK_iogonek:                       { code: 0x03e7, description: "(\u012F) LATIN SMALL LETTER I WITH OGONEK" },
 | |
|   XK_eabovedot:                     { code: 0x03ec, description: "(\u0117) LATIN SMALL LETTER E WITH DOT ABOVE" },
 | |
|   XK_imacron:                       { code: 0x03ef, description: "(\u012B) LATIN SMALL LETTER I WITH MACRON" },
 | |
|   XK_ncedilla:                      { code: 0x03f1, description: "(\u0146) LATIN SMALL LETTER N WITH CEDILLA" },
 | |
|   XK_omacron:                       { code: 0x03f2, description: "(\u014D) LATIN SMALL LETTER O WITH MACRON" },
 | |
|   XK_kcedilla:                      { code: 0x03f3, description: "(\u0137) LATIN SMALL LETTER K WITH CEDILLA" },
 | |
|   XK_uogonek:                       { code: 0x03f9, description: "(\u0173) LATIN SMALL LETTER U WITH OGONEK" },
 | |
|   XK_utilde:                        { code: 0x03fd, description: "(\u0169) LATIN SMALL LETTER U WITH TILDE" },
 | |
|   XK_umacron:                       { code: 0x03fe, description: "(\u016B) LATIN SMALL LETTER U WITH MACRON" },
 | |
| 
 | |
| 
 | |
| /*
 | |
|  * Latin 8
 | |
|  */
 | |
| // Group XK_LATIN8
 | |
|   XK_Wcircumflex:                { code: 0x1000174, description: "(\u0174) LATIN CAPITAL LETTER W WITH CIRCUMFLEX" },
 | |
|   XK_wcircumflex:                { code: 0x1000175, description: "(\u0175) LATIN SMALL LETTER W WITH CIRCUMFLEX" },
 | |
|   XK_Ycircumflex:                { code: 0x1000176, description: "(\u0176) LATIN CAPITAL LETTER Y WITH CIRCUMFLEX" },
 | |
|   XK_ycircumflex:                { code: 0x1000177, description: "(\u0177) LATIN SMALL LETTER Y WITH CIRCUMFLEX" },
 | |
|   XK_Babovedot:                  { code: 0x1001e02, description: "(\u1E02) LATIN CAPITAL LETTER B WITH DOT ABOVE" },
 | |
|   XK_babovedot:                  { code: 0x1001e03, description: "(\u1E03) LATIN SMALL LETTER B WITH DOT ABOVE" },
 | |
|   XK_Dabovedot:                  { code: 0x1001e0a, description: "(\u1E0A) LATIN CAPITAL LETTER D WITH DOT ABOVE" },
 | |
|   XK_dabovedot:                  { code: 0x1001e0b, description: "(\u1E0B) LATIN SMALL LETTER D WITH DOT ABOVE" },
 | |
|   XK_Fabovedot:                  { code: 0x1001e1e, description: "(\u1E1E) LATIN CAPITAL LETTER F WITH DOT ABOVE" },
 | |
|   XK_fabovedot:                  { code: 0x1001e1f, description: "(\u1E1F) LATIN SMALL LETTER F WITH DOT ABOVE" },
 | |
|   XK_Mabovedot:                  { code: 0x1001e40, description: "(\u1E40) LATIN CAPITAL LETTER M WITH DOT ABOVE" },
 | |
|   XK_mabovedot:                  { code: 0x1001e41, description: "(\u1E41) LATIN SMALL LETTER M WITH DOT ABOVE" },
 | |
|   XK_Pabovedot:                  { code: 0x1001e56, description: "(\u1E56) LATIN CAPITAL LETTER P WITH DOT ABOVE" },
 | |
|   XK_pabovedot:                  { code: 0x1001e57, description: "(\u1E57) LATIN SMALL LETTER P WITH DOT ABOVE" },
 | |
|   XK_Sabovedot:                  { code: 0x1001e60, description: "(\u1E60) LATIN CAPITAL LETTER S WITH DOT ABOVE" },
 | |
|   XK_sabovedot:                  { code: 0x1001e61, description: "(\u1E61) LATIN SMALL LETTER S WITH DOT ABOVE" },
 | |
|   XK_Tabovedot:                  { code: 0x1001e6a, description: "(\u1E6A) LATIN CAPITAL LETTER T WITH DOT ABOVE" },
 | |
|   XK_tabovedot:                  { code: 0x1001e6b, description: "(\u1E6B) LATIN SMALL LETTER T WITH DOT ABOVE" },
 | |
|   XK_Wgrave:                     { code: 0x1001e80, description: "(\u1E80) LATIN CAPITAL LETTER W WITH GRAVE" },
 | |
|   XK_wgrave:                     { code: 0x1001e81, description: "(\u1E81) LATIN SMALL LETTER W WITH GRAVE" },
 | |
|   XK_Wacute:                     { code: 0x1001e82, description: "(\u1E82) LATIN CAPITAL LETTER W WITH ACUTE" },
 | |
|   XK_wacute:                     { code: 0x1001e83, description: "(\u1E83) LATIN SMALL LETTER W WITH ACUTE" },
 | |
|   XK_Wdiaeresis:                 { code: 0x1001e84, description: "(\u1E84) LATIN CAPITAL LETTER W WITH DIAERESIS" },
 | |
|   XK_wdiaeresis:                 { code: 0x1001e85, description: "(\u1E85) LATIN SMALL LETTER W WITH DIAERESIS" },
 | |
|   XK_Ygrave:                     { code: 0x1001ef2, description: "(\u1EF2) LATIN CAPITAL LETTER Y WITH GRAVE" },
 | |
|   XK_ygrave:                     { code: 0x1001ef3, description: "(\u1EF3) LATIN SMALL LETTER Y WITH GRAVE" },
 | |
| 
 | |
| 
 | |
| /*
 | |
|  * Latin 9
 | |
|  * Byte 3 = 0x13
 | |
|  */
 | |
| 
 | |
| // Group XK_LATIN9
 | |
|   XK_OE:                            { code: 0x13bc, description: "(\u0152) LATIN CAPITAL LIGATURE OE" },
 | |
|   XK_oe:                            { code: 0x13bd, description: "(\u0153) LATIN SMALL LIGATURE OE" },
 | |
|   XK_Ydiaeresis:                    { code: 0x13be, description: "(\u0178) LATIN CAPITAL LETTER Y WITH DIAERESIS" },
 | |
| 
 | |
| 
 | |
| /*
 | |
|  * Katakana
 | |
|  * Byte 3 = 4
 | |
|  */
 | |
| 
 | |
| // Group XK_KATAKANA
 | |
|   XK_overline:                      { code: 0x047e, description: "(\u203E) OVERLINE" },
 | |
|   XK_kana_fullstop:                 { code: 0x04a1, description: "(\u3002) IDEOGRAPHIC FULL STOP" },
 | |
|   XK_kana_openingbracket:           { code: 0x04a2, description: "(\u300C) LEFT CORNER BRACKET" },
 | |
|   XK_kana_closingbracket:           { code: 0x04a3, description: "(\u300D) RIGHT CORNER BRACKET" },
 | |
|   XK_kana_comma:                    { code: 0x04a4, description: "(\u3001) IDEOGRAPHIC COMMA" },
 | |
|   XK_kana_conjunctive:              { code: 0x04a5, description: "(\u30FB) KATAKANA MIDDLE DOT" },
 | |
|   XK_kana_middledot:                { code: 0x04a5, description: "deprecated" },
 | |
|   XK_kana_WO:                       { code: 0x04a6, description: "(\u30F2) KATAKANA LETTER WO" },
 | |
|   XK_kana_a:                        { code: 0x04a7, description: "(\u30A1) KATAKANA LETTER SMALL A" },
 | |
|   XK_kana_i:                        { code: 0x04a8, description: "(\u30A3) KATAKANA LETTER SMALL I" },
 | |
|   XK_kana_u:                        { code: 0x04a9, description: "(\u30A5) KATAKANA LETTER SMALL U" },
 | |
|   XK_kana_e:                        { code: 0x04aa, description: "(\u30A7) KATAKANA LETTER SMALL E" },
 | |
|   XK_kana_o:                        { code: 0x04ab, description: "(\u30A9) KATAKANA LETTER SMALL O" },
 | |
|   XK_kana_ya:                       { code: 0x04ac, description: "(\u30E3) KATAKANA LETTER SMALL YA" },
 | |
|   XK_kana_yu:                       { code: 0x04ad, description: "(\u30E5) KATAKANA LETTER SMALL YU" },
 | |
|   XK_kana_yo:                       { code: 0x04ae, description: "(\u30E7) KATAKANA LETTER SMALL YO" },
 | |
|   XK_kana_tsu:                      { code: 0x04af, description: "(\u30C3) KATAKANA LETTER SMALL TU" },
 | |
|   XK_kana_tu:                       { code: 0x04af, description: "deprecated" },
 | |
|   XK_prolongedsound:                { code: 0x04b0, description: "(\u30FC) KATAKANA-HIRAGANA PROLONGED SOUND MARK" },
 | |
|   XK_kana_A:                        { code: 0x04b1, description: "(\u30A2) KATAKANA LETTER A" },
 | |
|   XK_kana_I:                        { code: 0x04b2, description: "(\u30A4) KATAKANA LETTER I" },
 | |
|   XK_kana_U:                        { code: 0x04b3, description: "(\u30A6) KATAKANA LETTER U" },
 | |
|   XK_kana_E:                        { code: 0x04b4, description: "(\u30A8) KATAKANA LETTER E" },
 | |
|   XK_kana_O:                        { code: 0x04b5, description: "(\u30AA) KATAKANA LETTER O" },
 | |
|   XK_kana_KA:                       { code: 0x04b6, description: "(\u30AB) KATAKANA LETTER KA" },
 | |
|   XK_kana_KI:                       { code: 0x04b7, description: "(\u30AD) KATAKANA LETTER KI" },
 | |
|   XK_kana_KU:                       { code: 0x04b8, description: "(\u30AF) KATAKANA LETTER KU" },
 | |
|   XK_kana_KE:                       { code: 0x04b9, description: "(\u30B1) KATAKANA LETTER KE" },
 | |
|   XK_kana_KO:                       { code: 0x04ba, description: "(\u30B3) KATAKANA LETTER KO" },
 | |
|   XK_kana_SA:                       { code: 0x04bb, description: "(\u30B5) KATAKANA LETTER SA" },
 | |
|   XK_kana_SHI:                      { code: 0x04bc, description: "(\u30B7) KATAKANA LETTER SI" },
 | |
|   XK_kana_SU:                       { code: 0x04bd, description: "(\u30B9) KATAKANA LETTER SU" },
 | |
|   XK_kana_SE:                       { code: 0x04be, description: "(\u30BB) KATAKANA LETTER SE" },
 | |
|   XK_kana_SO:                       { code: 0x04bf, description: "(\u30BD) KATAKANA LETTER SO" },
 | |
|   XK_kana_TA:                       { code: 0x04c0, description: "(\u30BF) KATAKANA LETTER TA" },
 | |
|   XK_kana_CHI:                      { code: 0x04c1, description: "(\u30C1) KATAKANA LETTER TI" },
 | |
|   XK_kana_TI:                       { code: 0x04c1, description: "deprecated" },
 | |
|   XK_kana_TSU:                      { code: 0x04c2, description: "(\u30C4) KATAKANA LETTER TU" },
 | |
|   XK_kana_TU:                       { code: 0x04c2, description: "deprecated" },
 | |
|   XK_kana_TE:                       { code: 0x04c3, description: "(\u30C6) KATAKANA LETTER TE" },
 | |
|   XK_kana_TO:                       { code: 0x04c4, description: "(\u30C8) KATAKANA LETTER TO" },
 | |
|   XK_kana_NA:                       { code: 0x04c5, description: "(\u30CA) KATAKANA LETTER NA" },
 | |
|   XK_kana_NI:                       { code: 0x04c6, description: "(\u30CB) KATAKANA LETTER NI" },
 | |
|   XK_kana_NU:                       { code: 0x04c7, description: "(\u30CC) KATAKANA LETTER NU" },
 | |
|   XK_kana_NE:                       { code: 0x04c8, description: "(\u30CD) KATAKANA LETTER NE" },
 | |
|   XK_kana_NO:                       { code: 0x04c9, description: "(\u30CE) KATAKANA LETTER NO" },
 | |
|   XK_kana_HA:                       { code: 0x04ca, description: "(\u30CF) KATAKANA LETTER HA" },
 | |
|   XK_kana_HI:                       { code: 0x04cb, description: "(\u30D2) KATAKANA LETTER HI" },
 | |
|   XK_kana_FU:                       { code: 0x04cc, description: "(\u30D5) KATAKANA LETTER HU" },
 | |
|   XK_kana_HU:                       { code: 0x04cc, description: "deprecated" },
 | |
|   XK_kana_HE:                       { code: 0x04cd, description: "(\u30D8) KATAKANA LETTER HE" },
 | |
|   XK_kana_HO:                       { code: 0x04ce, description: "(\u30DB) KATAKANA LETTER HO" },
 | |
|   XK_kana_MA:                       { code: 0x04cf, description: "(\u30DE) KATAKANA LETTER MA" },
 | |
|   XK_kana_MI:                       { code: 0x04d0, description: "(\u30DF) KATAKANA LETTER MI" },
 | |
|   XK_kana_MU:                       { code: 0x04d1, description: "(\u30E0) KATAKANA LETTER MU" },
 | |
|   XK_kana_ME:                       { code: 0x04d2, description: "(\u30E1) KATAKANA LETTER ME" },
 | |
|   XK_kana_MO:                       { code: 0x04d3, description: "(\u30E2) KATAKANA LETTER MO" },
 | |
|   XK_kana_YA:                       { code: 0x04d4, description: "(\u30E4) KATAKANA LETTER YA" },
 | |
|   XK_kana_YU:                       { code: 0x04d5, description: "(\u30E6) KATAKANA LETTER YU" },
 | |
|   XK_kana_YO:                       { code: 0x04d6, description: "(\u30E8) KATAKANA LETTER YO" },
 | |
|   XK_kana_RA:                       { code: 0x04d7, description: "(\u30E9) KATAKANA LETTER RA" },
 | |
|   XK_kana_RI:                       { code: 0x04d8, description: "(\u30EA) KATAKANA LETTER RI" },
 | |
|   XK_kana_RU:                       { code: 0x04d9, description: "(\u30EB) KATAKANA LETTER RU" },
 | |
|   XK_kana_RE:                       { code: 0x04da, description: "(\u30EC) KATAKANA LETTER RE" },
 | |
|   XK_kana_RO:                       { code: 0x04db, description: "(\u30ED) KATAKANA LETTER RO" },
 | |
|   XK_kana_WA:                       { code: 0x04dc, description: "(\u30EF) KATAKANA LETTER WA" },
 | |
|   XK_kana_N:                        { code: 0x04dd, description: "(\u30F3) KATAKANA LETTER N" },
 | |
|   XK_voicedsound:                   { code: 0x04de, description: "(\u309B) KATAKANA-HIRAGANA VOICED SOUND MARK" },
 | |
|   XK_semivoicedsound:               { code: 0x04df, description: "(\u309C) KATAKANA-HIRAGANA SEMI-VOICED SOUND MARK" },
 | |
|   XK_kana_switch:                   { code: 0xff7e, description: "Alias for mode_switch" },
 | |
| 
 | |
| 
 | |
| /*
 | |
|  * Arabic
 | |
|  * Byte 3 = 5
 | |
|  */
 | |
| 
 | |
| // Group XK_ARABIC
 | |
|   XK_Farsi_0:                    { code: 0x10006f0, description: "(\u06F0) EXTENDED ARABIC-INDIC DIGIT ZERO" },
 | |
|   XK_Farsi_1:                    { code: 0x10006f1, description: "(\u06F1) EXTENDED ARABIC-INDIC DIGIT ONE" },
 | |
|   XK_Farsi_2:                    { code: 0x10006f2, description: "(\u06F2) EXTENDED ARABIC-INDIC DIGIT TWO" },
 | |
|   XK_Farsi_3:                    { code: 0x10006f3, description: "(\u06F3) EXTENDED ARABIC-INDIC DIGIT THREE" },
 | |
|   XK_Farsi_4:                    { code: 0x10006f4, description: "(\u06F4) EXTENDED ARABIC-INDIC DIGIT FOUR" },
 | |
|   XK_Farsi_5:                    { code: 0x10006f5, description: "(\u06F5) EXTENDED ARABIC-INDIC DIGIT FIVE" },
 | |
|   XK_Farsi_6:                    { code: 0x10006f6, description: "(\u06F6) EXTENDED ARABIC-INDIC DIGIT SIX" },
 | |
|   XK_Farsi_7:                    { code: 0x10006f7, description: "(\u06F7) EXTENDED ARABIC-INDIC DIGIT SEVEN" },
 | |
|   XK_Farsi_8:                    { code: 0x10006f8, description: "(\u06F8) EXTENDED ARABIC-INDIC DIGIT EIGHT" },
 | |
|   XK_Farsi_9:                    { code: 0x10006f9, description: "(\u06F9) EXTENDED ARABIC-INDIC DIGIT NINE" },
 | |
|   XK_Arabic_percent:             { code: 0x100066a, description: "(\u066A) ARABIC PERCENT SIGN" },
 | |
|   XK_Arabic_superscript_alef:    { code: 0x1000670, description: "(\u0670) ARABIC LETTER SUPERSCRIPT ALEF" },
 | |
|   XK_Arabic_tteh:                { code: 0x1000679, description: "(\u0679) ARABIC LETTER TTEH" },
 | |
|   XK_Arabic_peh:                 { code: 0x100067e, description: "(\u067E) ARABIC LETTER PEH" },
 | |
|   XK_Arabic_tcheh:               { code: 0x1000686, description: "(\u0686) ARABIC LETTER TCHEH" },
 | |
|   XK_Arabic_ddal:                { code: 0x1000688, description: "(\u0688) ARABIC LETTER DDAL" },
 | |
|   XK_Arabic_rreh:                { code: 0x1000691, description: "(\u0691) ARABIC LETTER RREH" },
 | |
|   XK_Arabic_comma:                  { code: 0x05ac, description: "(\u060C) ARABIC COMMA" },
 | |
|   XK_Arabic_fullstop:            { code: 0x10006d4, description: "(\u06D4) ARABIC FULL STOP" },
 | |
|   XK_Arabic_0:                   { code: 0x1000660, description: "(\u0660) ARABIC-INDIC DIGIT ZERO" },
 | |
|   XK_Arabic_1:                   { code: 0x1000661, description: "(\u0661) ARABIC-INDIC DIGIT ONE" },
 | |
|   XK_Arabic_2:                   { code: 0x1000662, description: "(\u0662) ARABIC-INDIC DIGIT TWO" },
 | |
|   XK_Arabic_3:                   { code: 0x1000663, description: "(\u0663) ARABIC-INDIC DIGIT THREE" },
 | |
|   XK_Arabic_4:                   { code: 0x1000664, description: "(\u0664) ARABIC-INDIC DIGIT FOUR" },
 | |
|   XK_Arabic_5:                   { code: 0x1000665, description: "(\u0665) ARABIC-INDIC DIGIT FIVE" },
 | |
|   XK_Arabic_6:                   { code: 0x1000666, description: "(\u0666) ARABIC-INDIC DIGIT SIX" },
 | |
|   XK_Arabic_7:                   { code: 0x1000667, description: "(\u0667) ARABIC-INDIC DIGIT SEVEN" },
 | |
|   XK_Arabic_8:                   { code: 0x1000668, description: "(\u0668) ARABIC-INDIC DIGIT EIGHT" },
 | |
|   XK_Arabic_9:                   { code: 0x1000669, description: "(\u0669) ARABIC-INDIC DIGIT NINE" },
 | |
|   XK_Arabic_semicolon:              { code: 0x05bb, description: "(\u061B) ARABIC SEMICOLON" },
 | |
|   XK_Arabic_question_mark:          { code: 0x05bf, description: "(\u061F) ARABIC QUESTION MARK" },
 | |
|   XK_Arabic_hamza:                  { code: 0x05c1, description: "(\u0621) ARABIC LETTER HAMZA" },
 | |
|   XK_Arabic_maddaonalef:            { code: 0x05c2, description: "(\u0622) ARABIC LETTER ALEF WITH MADDA ABOVE" },
 | |
|   XK_Arabic_hamzaonalef:            { code: 0x05c3, description: "(\u0623) ARABIC LETTER ALEF WITH HAMZA ABOVE" },
 | |
|   XK_Arabic_hamzaonwaw:             { code: 0x05c4, description: "(\u0624) ARABIC LETTER WAW WITH HAMZA ABOVE" },
 | |
|   XK_Arabic_hamzaunderalef:         { code: 0x05c5, description: "(\u0625) ARABIC LETTER ALEF WITH HAMZA BELOW" },
 | |
|   XK_Arabic_hamzaonyeh:             { code: 0x05c6, description: "(\u0626) ARABIC LETTER YEH WITH HAMZA ABOVE" },
 | |
|   XK_Arabic_alef:                   { code: 0x05c7, description: "(\u0627) ARABIC LETTER ALEF" },
 | |
|   XK_Arabic_beh:                    { code: 0x05c8, description: "(\u0628) ARABIC LETTER BEH" },
 | |
|   XK_Arabic_tehmarbuta:             { code: 0x05c9, description: "(\u0629) ARABIC LETTER TEH MARBUTA" },
 | |
|   XK_Arabic_teh:                    { code: 0x05ca, description: "(\u062A) ARABIC LETTER TEH" },
 | |
|   XK_Arabic_theh:                   { code: 0x05cb, description: "(\u062B) ARABIC LETTER THEH" },
 | |
|   XK_Arabic_jeem:                   { code: 0x05cc, description: "(\u062C) ARABIC LETTER JEEM" },
 | |
|   XK_Arabic_hah:                    { code: 0x05cd, description: "(\u062D) ARABIC LETTER HAH" },
 | |
|   XK_Arabic_khah:                   { code: 0x05ce, description: "(\u062E) ARABIC LETTER KHAH" },
 | |
|   XK_Arabic_dal:                    { code: 0x05cf, description: "(\u062F) ARABIC LETTER DAL" },
 | |
|   XK_Arabic_thal:                   { code: 0x05d0, description: "(\u0630) ARABIC LETTER THAL" },
 | |
|   XK_Arabic_ra:                     { code: 0x05d1, description: "(\u0631) ARABIC LETTER REH" },
 | |
|   XK_Arabic_zain:                   { code: 0x05d2, description: "(\u0632) ARABIC LETTER ZAIN" },
 | |
|   XK_Arabic_seen:                   { code: 0x05d3, description: "(\u0633) ARABIC LETTER SEEN" },
 | |
|   XK_Arabic_sheen:                  { code: 0x05d4, description: "(\u0634) ARABIC LETTER SHEEN" },
 | |
|   XK_Arabic_sad:                    { code: 0x05d5, description: "(\u0635) ARABIC LETTER SAD" },
 | |
|   XK_Arabic_dad:                    { code: 0x05d6, description: "(\u0636) ARABIC LETTER DAD" },
 | |
|   XK_Arabic_tah:                    { code: 0x05d7, description: "(\u0637) ARABIC LETTER TAH" },
 | |
|   XK_Arabic_zah:                    { code: 0x05d8, description: "(\u0638) ARABIC LETTER ZAH" },
 | |
|   XK_Arabic_ain:                    { code: 0x05d9, description: "(\u0639) ARABIC LETTER AIN" },
 | |
|   XK_Arabic_ghain:                  { code: 0x05da, description: "(\u063A) ARABIC LETTER GHAIN" },
 | |
|   XK_Arabic_tatweel:                { code: 0x05e0, description: "(\u0640) ARABIC TATWEEL" },
 | |
|   XK_Arabic_feh:                    { code: 0x05e1, description: "(\u0641) ARABIC LETTER FEH" },
 | |
|   XK_Arabic_qaf:                    { code: 0x05e2, description: "(\u0642) ARABIC LETTER QAF" },
 | |
|   XK_Arabic_kaf:                    { code: 0x05e3, description: "(\u0643) ARABIC LETTER KAF" },
 | |
|   XK_Arabic_lam:                    { code: 0x05e4, description: "(\u0644) ARABIC LETTER LAM" },
 | |
|   XK_Arabic_meem:                   { code: 0x05e5, description: "(\u0645) ARABIC LETTER MEEM" },
 | |
|   XK_Arabic_noon:                   { code: 0x05e6, description: "(\u0646) ARABIC LETTER NOON" },
 | |
|   XK_Arabic_ha:                     { code: 0x05e7, description: "(\u0647) ARABIC LETTER HEH" },
 | |
|   XK_Arabic_heh:                    { code: 0x05e7, description: "deprecated" },
 | |
|   XK_Arabic_waw:                    { code: 0x05e8, description: "(\u0648) ARABIC LETTER WAW" },
 | |
|   XK_Arabic_alefmaksura:            { code: 0x05e9, description: "(\u0649) ARABIC LETTER ALEF MAKSURA" },
 | |
|   XK_Arabic_yeh:                    { code: 0x05ea, description: "(\u064A) ARABIC LETTER YEH" },
 | |
|   XK_Arabic_fathatan:               { code: 0x05eb, description: "(\u064B) ARABIC FATHATAN" },
 | |
|   XK_Arabic_dammatan:               { code: 0x05ec, description: "(\u064C) ARABIC DAMMATAN" },
 | |
|   XK_Arabic_kasratan:               { code: 0x05ed, description: "(\u064D) ARABIC KASRATAN" },
 | |
|   XK_Arabic_fatha:                  { code: 0x05ee, description: "(\u064E) ARABIC FATHA" },
 | |
|   XK_Arabic_damma:                  { code: 0x05ef, description: "(\u064F) ARABIC DAMMA" },
 | |
|   XK_Arabic_kasra:                  { code: 0x05f0, description: "(\u0650) ARABIC KASRA" },
 | |
|   XK_Arabic_shadda:                 { code: 0x05f1, description: "(\u0651) ARABIC SHADDA" },
 | |
|   XK_Arabic_sukun:                  { code: 0x05f2, description: "(\u0652) ARABIC SUKUN" },
 | |
|   XK_Arabic_madda_above:         { code: 0x1000653, description: "(\u0653) ARABIC MADDAH ABOVE" },
 | |
|   XK_Arabic_hamza_above:         { code: 0x1000654, description: "(\u0654) ARABIC HAMZA ABOVE" },
 | |
|   XK_Arabic_hamza_below:         { code: 0x1000655, description: "(\u0655) ARABIC HAMZA BELOW" },
 | |
|   XK_Arabic_jeh:                 { code: 0x1000698, description: "(\u0698) ARABIC LETTER JEH" },
 | |
|   XK_Arabic_veh:                 { code: 0x10006a4, description: "(\u06A4) ARABIC LETTER VEH" },
 | |
|   XK_Arabic_keheh:               { code: 0x10006a9, description: "(\u06A9) ARABIC LETTER KEHEH" },
 | |
|   XK_Arabic_gaf:                 { code: 0x10006af, description: "(\u06AF) ARABIC LETTER GAF" },
 | |
|   XK_Arabic_noon_ghunna:         { code: 0x10006ba, description: "(\u06BA) ARABIC LETTER NOON GHUNNA" },
 | |
|   XK_Arabic_heh_doachashmee:     { code: 0x10006be, description: "(\u06BE) ARABIC LETTER HEH DOACHASHMEE" },
 | |
|   XK_Farsi_yeh:                  { code: 0x10006cc, description: "(\u06CC) ARABIC LETTER FARSI YEH" },
 | |
|   XK_Arabic_farsi_yeh:           { code: 0x10006cc, description: "(\u06CC) ARABIC LETTER FARSI YEH" },
 | |
|   XK_Arabic_yeh_baree:           { code: 0x10006d2, description: "(\u06D2) ARABIC LETTER YEH BARREE" },
 | |
|   XK_Arabic_heh_goal:            { code: 0x10006c1, description: "(\u06C1) ARABIC LETTER HEH GOAL" },
 | |
|   XK_Arabic_switch:                 { code: 0xff7e, description: "Alias for mode_switch" },
 | |
| 
 | |
| 
 | |
| /*
 | |
|  * Cyrillic
 | |
|  * Byte 3 = 6
 | |
|  */
 | |
| // Group XK_CYRILLIC
 | |
|   XK_Cyrillic_GHE_bar:           { code: 0x1000492, description: "(\u0492) CYRILLIC CAPITAL LETTER GHE WITH STROKE" },
 | |
|   XK_Cyrillic_ghe_bar:           { code: 0x1000493, description: "(\u0493) CYRILLIC SMALL LETTER GHE WITH STROKE" },
 | |
|   XK_Cyrillic_ZHE_descender:     { code: 0x1000496, description: "(\u0496) CYRILLIC CAPITAL LETTER ZHE WITH DESCENDER" },
 | |
|   XK_Cyrillic_zhe_descender:     { code: 0x1000497, description: "(\u0497) CYRILLIC SMALL LETTER ZHE WITH DESCENDER" },
 | |
|   XK_Cyrillic_KA_descender:      { code: 0x100049a, description: "(\u049A) CYRILLIC CAPITAL LETTER KA WITH DESCENDER" },
 | |
|   XK_Cyrillic_ka_descender:      { code: 0x100049b, description: "(\u049B) CYRILLIC SMALL LETTER KA WITH DESCENDER" },
 | |
|   XK_Cyrillic_KA_vertstroke:     { code: 0x100049c, description: "(\u049C) CYRILLIC CAPITAL LETTER KA WITH VERTICAL STROKE" },
 | |
|   XK_Cyrillic_ka_vertstroke:     { code: 0x100049d, description: "(\u049D) CYRILLIC SMALL LETTER KA WITH VERTICAL STROKE" },
 | |
|   XK_Cyrillic_EN_descender:      { code: 0x10004a2, description: "(\u04A2) CYRILLIC CAPITAL LETTER EN WITH DESCENDER" },
 | |
|   XK_Cyrillic_en_descender:      { code: 0x10004a3, description: "(\u04A3) CYRILLIC SMALL LETTER EN WITH DESCENDER" },
 | |
|   XK_Cyrillic_U_straight:        { code: 0x10004ae, description: "(\u04AE) CYRILLIC CAPITAL LETTER STRAIGHT U" },
 | |
|   XK_Cyrillic_u_straight:        { code: 0x10004af, description: "(\u04AF) CYRILLIC SMALL LETTER STRAIGHT U" },
 | |
|   XK_Cyrillic_U_straight_bar:    { code: 0x10004b0, description: "(\u04B0) CYRILLIC CAPITAL LETTER STRAIGHT U WITH STROKE" },
 | |
|   XK_Cyrillic_u_straight_bar:    { code: 0x10004b1, description: "(\u04B1) CYRILLIC SMALL LETTER STRAIGHT U WITH STROKE" },
 | |
|   XK_Cyrillic_HA_descender:      { code: 0x10004b2, description: "(\u04B2) CYRILLIC CAPITAL LETTER HA WITH DESCENDER" },
 | |
|   XK_Cyrillic_ha_descender:      { code: 0x10004b3, description: "(\u04B3) CYRILLIC SMALL LETTER HA WITH DESCENDER" },
 | |
|   XK_Cyrillic_CHE_descender:     { code: 0x10004b6, description: "(\u04B6) CYRILLIC CAPITAL LETTER CHE WITH DESCENDER" },
 | |
|   XK_Cyrillic_che_descender:     { code: 0x10004b7, description: "(\u04B7) CYRILLIC SMALL LETTER CHE WITH DESCENDER" },
 | |
|   XK_Cyrillic_CHE_vertstroke:    { code: 0x10004b8, description: "(\u04B8) CYRILLIC CAPITAL LETTER CHE WITH VERTICAL STROKE" },
 | |
|   XK_Cyrillic_che_vertstroke:    { code: 0x10004b9, description: "(\u04B9) CYRILLIC SMALL LETTER CHE WITH VERTICAL STROKE" },
 | |
|   XK_Cyrillic_SHHA:              { code: 0x10004ba, description: "(\u04BA) CYRILLIC CAPITAL LETTER SHHA" },
 | |
|   XK_Cyrillic_shha:              { code: 0x10004bb, description: "(\u04BB) CYRILLIC SMALL LETTER SHHA" },
 | |
| 
 | |
|   XK_Cyrillic_SCHWA:             { code: 0x10004d8, description: "(\u04D8) CYRILLIC CAPITAL LETTER SCHWA" },
 | |
|   XK_Cyrillic_schwa:             { code: 0x10004d9, description: "(\u04D9) CYRILLIC SMALL LETTER SCHWA" },
 | |
|   XK_Cyrillic_I_macron:          { code: 0x10004e2, description: "(\u04E2) CYRILLIC CAPITAL LETTER I WITH MACRON" },
 | |
|   XK_Cyrillic_i_macron:          { code: 0x10004e3, description: "(\u04E3) CYRILLIC SMALL LETTER I WITH MACRON" },
 | |
|   XK_Cyrillic_O_bar:             { code: 0x10004e8, description: "(\u04E8) CYRILLIC CAPITAL LETTER BARRED O" },
 | |
|   XK_Cyrillic_o_bar:             { code: 0x10004e9, description: "(\u04E9) CYRILLIC SMALL LETTER BARRED O" },
 | |
|   XK_Cyrillic_U_macron:          { code: 0x10004ee, description: "(\u04EE) CYRILLIC CAPITAL LETTER U WITH MACRON" },
 | |
|   XK_Cyrillic_u_macron:          { code: 0x10004ef, description: "(\u04EF) CYRILLIC SMALL LETTER U WITH MACRON" },
 | |
| 
 | |
|   XK_Serbian_dje:                   { code: 0x06a1, description: "(\u0452) CYRILLIC SMALL LETTER DJE" },
 | |
|   XK_Macedonia_gje:                 { code: 0x06a2, description: "(\u0453) CYRILLIC SMALL LETTER GJE" },
 | |
|   XK_Cyrillic_io:                   { code: 0x06a3, description: "(\u0451) CYRILLIC SMALL LETTER IO" },
 | |
|   XK_Ukrainian_ie:                  { code: 0x06a4, description: "(\u0454) CYRILLIC SMALL LETTER UKRAINIAN IE" },
 | |
|   XK_Ukranian_je:                   { code: 0x06a4, description: "deprecated" },
 | |
|   XK_Macedonia_dse:                 { code: 0x06a5, description: "(\u0455) CYRILLIC SMALL LETTER DZE" },
 | |
|   XK_Ukrainian_i:                   { code: 0x06a6, description: "(\u0456) CYRILLIC SMALL LETTER BYELORUSSIAN-UKRAINIAN I" },
 | |
|   XK_Ukranian_i:                    { code: 0x06a6, description: "deprecated" },
 | |
|   XK_Ukrainian_yi:                  { code: 0x06a7, description: "(\u0457) CYRILLIC SMALL LETTER YI" },
 | |
|   XK_Ukranian_yi:                   { code: 0x06a7, description: "deprecated" },
 | |
|   XK_Cyrillic_je:                   { code: 0x06a8, description: "(\u0458) CYRILLIC SMALL LETTER JE" },
 | |
|   XK_Serbian_je:                    { code: 0x06a8, description: "deprecated" },
 | |
|   XK_Cyrillic_lje:                  { code: 0x06a9, description: "(\u0459) CYRILLIC SMALL LETTER LJE" },
 | |
|   XK_Serbian_lje:                   { code: 0x06a9, description: "deprecated" },
 | |
|   XK_Cyrillic_nje:                  { code: 0x06aa, description: "(\u045A) CYRILLIC SMALL LETTER NJE" },
 | |
|   XK_Serbian_nje:                   { code: 0x06aa, description: "deprecated" },
 | |
|   XK_Serbian_tshe:                  { code: 0x06ab, description: "(\u045B) CYRILLIC SMALL LETTER TSHE" },
 | |
|   XK_Macedonia_kje:                 { code: 0x06ac, description: "(\u045C) CYRILLIC SMALL LETTER KJE" },
 | |
|   XK_Ukrainian_ghe_with_upturn:     { code: 0x06ad, description: "(\u0491) CYRILLIC SMALL LETTER GHE WITH UPTURN" },
 | |
|   XK_Byelorussian_shortu:           { code: 0x06ae, description: "(\u045E) CYRILLIC SMALL LETTER SHORT U" },
 | |
|   XK_Cyrillic_dzhe:                 { code: 0x06af, description: "(\u045F) CYRILLIC SMALL LETTER DZHE" },
 | |
|   XK_Serbian_dze:                   { code: 0x06af, description: "deprecated" },
 | |
|   XK_numerosign:                    { code: 0x06b0, description: "(\u2116) NUMERO SIGN" },
 | |
|   XK_Serbian_DJE:                   { code: 0x06b1, description: "(\u0402) CYRILLIC CAPITAL LETTER DJE" },
 | |
|   XK_Macedonia_GJE:                 { code: 0x06b2, description: "(\u0403) CYRILLIC CAPITAL LETTER GJE" },
 | |
|   XK_Cyrillic_IO:                   { code: 0x06b3, description: "(\u0401) CYRILLIC CAPITAL LETTER IO" },
 | |
|   XK_Ukrainian_IE:                  { code: 0x06b4, description: "(\u0404) CYRILLIC CAPITAL LETTER UKRAINIAN IE" },
 | |
|   XK_Ukranian_JE:                   { code: 0x06b4, description: "deprecated" },
 | |
|   XK_Macedonia_DSE:                 { code: 0x06b5, description: "(\u0405) CYRILLIC CAPITAL LETTER DZE" },
 | |
|   XK_Ukrainian_I:                   { code: 0x06b6, description: "(\u0406) CYRILLIC CAPITAL LETTER BYELORUSSIAN-UKRAINIAN I" },
 | |
|   XK_Ukranian_I:                    { code: 0x06b6, description: "deprecated" },
 | |
|   XK_Ukrainian_YI:                  { code: 0x06b7, description: "(\u0407) CYRILLIC CAPITAL LETTER YI" },
 | |
|   XK_Ukranian_YI:                   { code: 0x06b7, description: "deprecated" },
 | |
|   XK_Cyrillic_JE:                   { code: 0x06b8, description: "(\u0408) CYRILLIC CAPITAL LETTER JE" },
 | |
|   XK_Serbian_JE:                    { code: 0x06b8, description: "deprecated" },
 | |
|   XK_Cyrillic_LJE:                  { code: 0x06b9, description: "(\u0409) CYRILLIC CAPITAL LETTER LJE" },
 | |
|   XK_Serbian_LJE:                   { code: 0x06b9, description: "deprecated" },
 | |
|   XK_Cyrillic_NJE:                  { code: 0x06ba, description: "(\u040A) CYRILLIC CAPITAL LETTER NJE" },
 | |
|   XK_Serbian_NJE:                   { code: 0x06ba, description: "deprecated" },
 | |
|   XK_Serbian_TSHE:                  { code: 0x06bb, description: "(\u040B) CYRILLIC CAPITAL LETTER TSHE" },
 | |
|   XK_Macedonia_KJE:                 { code: 0x06bc, description: "(\u040C) CYRILLIC CAPITAL LETTER KJE" },
 | |
|   XK_Ukrainian_GHE_WITH_UPTURN:     { code: 0x06bd, description: "(\u0490) CYRILLIC CAPITAL LETTER GHE WITH UPTURN" },
 | |
|   XK_Byelorussian_SHORTU:           { code: 0x06be, description: "(\u040E) CYRILLIC CAPITAL LETTER SHORT U" },
 | |
|   XK_Cyrillic_DZHE:                 { code: 0x06bf, description: "(\u040F) CYRILLIC CAPITAL LETTER DZHE" },
 | |
|   XK_Serbian_DZE:                   { code: 0x06bf, description: "deprecated" },
 | |
|   XK_Cyrillic_yu:                   { code: 0x06c0, description: "(\u044E) CYRILLIC SMALL LETTER YU" },
 | |
|   XK_Cyrillic_a:                    { code: 0x06c1, description: "(\u0430) CYRILLIC SMALL LETTER A" },
 | |
|   XK_Cyrillic_be:                   { code: 0x06c2, description: "(\u0431) CYRILLIC SMALL LETTER BE" },
 | |
|   XK_Cyrillic_tse:                  { code: 0x06c3, description: "(\u0446) CYRILLIC SMALL LETTER TSE" },
 | |
|   XK_Cyrillic_de:                   { code: 0x06c4, description: "(\u0434) CYRILLIC SMALL LETTER DE" },
 | |
|   XK_Cyrillic_ie:                   { code: 0x06c5, description: "(\u0435) CYRILLIC SMALL LETTER IE" },
 | |
|   XK_Cyrillic_ef:                   { code: 0x06c6, description: "(\u0444) CYRILLIC SMALL LETTER EF" },
 | |
|   XK_Cyrillic_ghe:                  { code: 0x06c7, description: "(\u0433) CYRILLIC SMALL LETTER GHE" },
 | |
|   XK_Cyrillic_ha:                   { code: 0x06c8, description: "(\u0445) CYRILLIC SMALL LETTER HA" },
 | |
|   XK_Cyrillic_i:                    { code: 0x06c9, description: "(\u0438) CYRILLIC SMALL LETTER I" },
 | |
|   XK_Cyrillic_shorti:               { code: 0x06ca, description: "(\u0439) CYRILLIC SMALL LETTER SHORT I" },
 | |
|   XK_Cyrillic_ka:                   { code: 0x06cb, description: "(\u043A) CYRILLIC SMALL LETTER KA" },
 | |
|   XK_Cyrillic_el:                   { code: 0x06cc, description: "(\u043B) CYRILLIC SMALL LETTER EL" },
 | |
|   XK_Cyrillic_em:                   { code: 0x06cd, description: "(\u043C) CYRILLIC SMALL LETTER EM" },
 | |
|   XK_Cyrillic_en:                   { code: 0x06ce, description: "(\u043D) CYRILLIC SMALL LETTER EN" },
 | |
|   XK_Cyrillic_o:                    { code: 0x06cf, description: "(\u043E) CYRILLIC SMALL LETTER O" },
 | |
|   XK_Cyrillic_pe:                   { code: 0x06d0, description: "(\u043F) CYRILLIC SMALL LETTER PE" },
 | |
|   XK_Cyrillic_ya:                   { code: 0x06d1, description: "(\u044F) CYRILLIC SMALL LETTER YA" },
 | |
|   XK_Cyrillic_er:                   { code: 0x06d2, description: "(\u0440) CYRILLIC SMALL LETTER ER" },
 | |
|   XK_Cyrillic_es:                   { code: 0x06d3, description: "(\u0441) CYRILLIC SMALL LETTER ES" },
 | |
|   XK_Cyrillic_te:                   { code: 0x06d4, description: "(\u0442) CYRILLIC SMALL LETTER TE" },
 | |
|   XK_Cyrillic_u:                    { code: 0x06d5, description: "(\u0443) CYRILLIC SMALL LETTER U" },
 | |
|   XK_Cyrillic_zhe:                  { code: 0x06d6, description: "(\u0436) CYRILLIC SMALL LETTER ZHE" },
 | |
|   XK_Cyrillic_ve:                   { code: 0x06d7, description: "(\u0432) CYRILLIC SMALL LETTER VE" },
 | |
|   XK_Cyrillic_softsign:             { code: 0x06d8, description: "(\u044C) CYRILLIC SMALL LETTER SOFT SIGN" },
 | |
|   XK_Cyrillic_yeru:                 { code: 0x06d9, description: "(\u044B) CYRILLIC SMALL LETTER YERU" },
 | |
|   XK_Cyrillic_ze:                   { code: 0x06da, description: "(\u0437) CYRILLIC SMALL LETTER ZE" },
 | |
|   XK_Cyrillic_sha:                  { code: 0x06db, description: "(\u0448) CYRILLIC SMALL LETTER SHA" },
 | |
|   XK_Cyrillic_e:                    { code: 0x06dc, description: "(\u044D) CYRILLIC SMALL LETTER E" },
 | |
|   XK_Cyrillic_shcha:                { code: 0x06dd, description: "(\u0449) CYRILLIC SMALL LETTER SHCHA" },
 | |
|   XK_Cyrillic_che:                  { code: 0x06de, description: "(\u0447) CYRILLIC SMALL LETTER CHE" },
 | |
|   XK_Cyrillic_hardsign:             { code: 0x06df, description: "(\u044A) CYRILLIC SMALL LETTER HARD SIGN" },
 | |
|   XK_Cyrillic_YU:                   { code: 0x06e0, description: "(\u042E) CYRILLIC CAPITAL LETTER YU" },
 | |
|   XK_Cyrillic_A:                    { code: 0x06e1, description: "(\u0410) CYRILLIC CAPITAL LETTER A" },
 | |
|   XK_Cyrillic_BE:                   { code: 0x06e2, description: "(\u0411) CYRILLIC CAPITAL LETTER BE" },
 | |
|   XK_Cyrillic_TSE:                  { code: 0x06e3, description: "(\u0426) CYRILLIC CAPITAL LETTER TSE" },
 | |
|   XK_Cyrillic_DE:                   { code: 0x06e4, description: "(\u0414) CYRILLIC CAPITAL LETTER DE" },
 | |
|   XK_Cyrillic_IE:                   { code: 0x06e5, description: "(\u0415) CYRILLIC CAPITAL LETTER IE" },
 | |
|   XK_Cyrillic_EF:                   { code: 0x06e6, description: "(\u0424) CYRILLIC CAPITAL LETTER EF" },
 | |
|   XK_Cyrillic_GHE:                  { code: 0x06e7, description: "(\u0413) CYRILLIC CAPITAL LETTER GHE" },
 | |
|   XK_Cyrillic_HA:                   { code: 0x06e8, description: "(\u0425) CYRILLIC CAPITAL LETTER HA" },
 | |
|   XK_Cyrillic_I:                    { code: 0x06e9, description: "(\u0418) CYRILLIC CAPITAL LETTER I" },
 | |
|   XK_Cyrillic_SHORTI:               { code: 0x06ea, description: "(\u0419) CYRILLIC CAPITAL LETTER SHORT I" },
 | |
|   XK_Cyrillic_KA:                   { code: 0x06eb, description: "(\u041A) CYRILLIC CAPITAL LETTER KA" },
 | |
|   XK_Cyrillic_EL:                   { code: 0x06ec, description: "(\u041B) CYRILLIC CAPITAL LETTER EL" },
 | |
|   XK_Cyrillic_EM:                   { code: 0x06ed, description: "(\u041C) CYRILLIC CAPITAL LETTER EM" },
 | |
|   XK_Cyrillic_EN:                   { code: 0x06ee, description: "(\u041D) CYRILLIC CAPITAL LETTER EN" },
 | |
|   XK_Cyrillic_O:                    { code: 0x06ef, description: "(\u041E) CYRILLIC CAPITAL LETTER O" },
 | |
|   XK_Cyrillic_PE:                   { code: 0x06f0, description: "(\u041F) CYRILLIC CAPITAL LETTER PE" },
 | |
|   XK_Cyrillic_YA:                   { code: 0x06f1, description: "(\u042F) CYRILLIC CAPITAL LETTER YA" },
 | |
|   XK_Cyrillic_ER:                   { code: 0x06f2, description: "(\u0420) CYRILLIC CAPITAL LETTER ER" },
 | |
|   XK_Cyrillic_ES:                   { code: 0x06f3, description: "(\u0421) CYRILLIC CAPITAL LETTER ES" },
 | |
|   XK_Cyrillic_TE:                   { code: 0x06f4, description: "(\u0422) CYRILLIC CAPITAL LETTER TE" },
 | |
|   XK_Cyrillic_U:                    { code: 0x06f5, description: "(\u0423) CYRILLIC CAPITAL LETTER U" },
 | |
|   XK_Cyrillic_ZHE:                  { code: 0x06f6, description: "(\u0416) CYRILLIC CAPITAL LETTER ZHE" },
 | |
|   XK_Cyrillic_VE:                   { code: 0x06f7, description: "(\u0412) CYRILLIC CAPITAL LETTER VE" },
 | |
|   XK_Cyrillic_SOFTSIGN:             { code: 0x06f8, description: "(\u042C) CYRILLIC CAPITAL LETTER SOFT SIGN" },
 | |
|   XK_Cyrillic_YERU:                 { code: 0x06f9, description: "(\u042B) CYRILLIC CAPITAL LETTER YERU" },
 | |
|   XK_Cyrillic_ZE:                   { code: 0x06fa, description: "(\u0417) CYRILLIC CAPITAL LETTER ZE" },
 | |
|   XK_Cyrillic_SHA:                  { code: 0x06fb, description: "(\u0428) CYRILLIC CAPITAL LETTER SHA" },
 | |
|   XK_Cyrillic_E:                    { code: 0x06fc, description: "(\u042D) CYRILLIC CAPITAL LETTER E" },
 | |
|   XK_Cyrillic_SHCHA:                { code: 0x06fd, description: "(\u0429) CYRILLIC CAPITAL LETTER SHCHA" },
 | |
|   XK_Cyrillic_CHE:                  { code: 0x06fe, description: "(\u0427) CYRILLIC CAPITAL LETTER CHE" },
 | |
|   XK_Cyrillic_HARDSIGN:             { code: 0x06ff, description: "(\u042A) CYRILLIC CAPITAL LETTER HARD SIGN" },
 | |
| 
 | |
| 
 | |
| /*
 | |
|  * Greek
 | |
|  * (based on an early draft of, and not quite identical to, ISO/IEC 8859-7)
 | |
|  * Byte 3 = 7
 | |
|  */
 | |
| 
 | |
| // Group XK_GREEK
 | |
|   XK_Greek_ALPHAaccent:             { code: 0x07a1, description: "(\u0386) GREEK CAPITAL LETTER ALPHA WITH TONOS" },
 | |
|   XK_Greek_EPSILONaccent:           { code: 0x07a2, description: "(\u0388) GREEK CAPITAL LETTER EPSILON WITH TONOS" },
 | |
|   XK_Greek_ETAaccent:               { code: 0x07a3, description: "(\u0389) GREEK CAPITAL LETTER ETA WITH TONOS" },
 | |
|   XK_Greek_IOTAaccent:              { code: 0x07a4, description: "(\u038A) GREEK CAPITAL LETTER IOTA WITH TONOS" },
 | |
|   XK_Greek_IOTAdieresis:            { code: 0x07a5, description: "(\u03AA) GREEK CAPITAL LETTER IOTA WITH DIALYTIKA" },
 | |
|   XK_Greek_IOTAdiaeresis:           { code: 0x07a5, description: "old typo" },
 | |
|   XK_Greek_OMICRONaccent:           { code: 0x07a7, description: "(\u038C) GREEK CAPITAL LETTER OMICRON WITH TONOS" },
 | |
|   XK_Greek_UPSILONaccent:           { code: 0x07a8, description: "(\u038E) GREEK CAPITAL LETTER UPSILON WITH TONOS" },
 | |
|   XK_Greek_UPSILONdieresis:         { code: 0x07a9, description: "(\u03AB) GREEK CAPITAL LETTER UPSILON WITH DIALYTIKA" },
 | |
|   XK_Greek_OMEGAaccent:             { code: 0x07ab, description: "(\u038F) GREEK CAPITAL LETTER OMEGA WITH TONOS" },
 | |
|   XK_Greek_accentdieresis:          { code: 0x07ae, description: "(\u0385) GREEK DIALYTIKA TONOS" },
 | |
|   XK_Greek_horizbar:                { code: 0x07af, description: "(\u2015) HORIZONTAL BAR" },
 | |
|   XK_Greek_alphaaccent:             { code: 0x07b1, description: "(\u03AC) GREEK SMALL LETTER ALPHA WITH TONOS" },
 | |
|   XK_Greek_epsilonaccent:           { code: 0x07b2, description: "(\u03AD) GREEK SMALL LETTER EPSILON WITH TONOS" },
 | |
|   XK_Greek_etaaccent:               { code: 0x07b3, description: "(\u03AE) GREEK SMALL LETTER ETA WITH TONOS" },
 | |
|   XK_Greek_iotaaccent:              { code: 0x07b4, description: "(\u03AF) GREEK SMALL LETTER IOTA WITH TONOS" },
 | |
|   XK_Greek_iotadieresis:            { code: 0x07b5, description: "(\u03CA) GREEK SMALL LETTER IOTA WITH DIALYTIKA" },
 | |
|   XK_Greek_iotaaccentdieresis:      { code: 0x07b6, description: "(\u0390) GREEK SMALL LETTER IOTA WITH DIALYTIKA AND TONOS" },
 | |
|   XK_Greek_omicronaccent:           { code: 0x07b7, description: "(\u03CC) GREEK SMALL LETTER OMICRON WITH TONOS" },
 | |
|   XK_Greek_upsilonaccent:           { code: 0x07b8, description: "(\u03CD) GREEK SMALL LETTER UPSILON WITH TONOS" },
 | |
|   XK_Greek_upsilondieresis:         { code: 0x07b9, description: "(\u03CB) GREEK SMALL LETTER UPSILON WITH DIALYTIKA" },
 | |
|   XK_Greek_upsilonaccentdieresis:   { code: 0x07ba, description: "(\u03B0) GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND TONOS" },
 | |
|   XK_Greek_omegaaccent:             { code: 0x07bb, description: "(\u03CE) GREEK SMALL LETTER OMEGA WITH TONOS" },
 | |
|   XK_Greek_ALPHA:                   { code: 0x07c1, description: "(\u0391) GREEK CAPITAL LETTER ALPHA" },
 | |
|   XK_Greek_BETA:                    { code: 0x07c2, description: "(\u0392) GREEK CAPITAL LETTER BETA" },
 | |
|   XK_Greek_GAMMA:                   { code: 0x07c3, description: "(\u0393) GREEK CAPITAL LETTER GAMMA" },
 | |
|   XK_Greek_DELTA:                   { code: 0x07c4, description: "(\u0394) GREEK CAPITAL LETTER DELTA" },
 | |
|   XK_Greek_EPSILON:                 { code: 0x07c5, description: "(\u0395) GREEK CAPITAL LETTER EPSILON" },
 | |
|   XK_Greek_ZETA:                    { code: 0x07c6, description: "(\u0396) GREEK CAPITAL LETTER ZETA" },
 | |
|   XK_Greek_ETA:                     { code: 0x07c7, description: "(\u0397) GREEK CAPITAL LETTER ETA" },
 | |
|   XK_Greek_THETA:                   { code: 0x07c8, description: "(\u0398) GREEK CAPITAL LETTER THETA" },
 | |
|   XK_Greek_IOTA:                    { code: 0x07c9, description: "(\u0399) GREEK CAPITAL LETTER IOTA" },
 | |
|   XK_Greek_KAPPA:                   { code: 0x07ca, description: "(\u039A) GREEK CAPITAL LETTER KAPPA" },
 | |
|   XK_Greek_LAMDA:                   { code: 0x07cb, description: "(\u039B) GREEK CAPITAL LETTER LAMDA" },
 | |
|   XK_Greek_LAMBDA:                  { code: 0x07cb, description: "(\u039B) GREEK CAPITAL LETTER LAMDA" },
 | |
|   XK_Greek_MU:                      { code: 0x07cc, description: "(\u039C) GREEK CAPITAL LETTER MU" },
 | |
|   XK_Greek_NU:                      { code: 0x07cd, description: "(\u039D) GREEK CAPITAL LETTER NU" },
 | |
|   XK_Greek_XI:                      { code: 0x07ce, description: "(\u039E) GREEK CAPITAL LETTER XI" },
 | |
|   XK_Greek_OMICRON:                 { code: 0x07cf, description: "(\u039F) GREEK CAPITAL LETTER OMICRON" },
 | |
|   XK_Greek_PI:                      { code: 0x07d0, description: "(\u03A0) GREEK CAPITAL LETTER PI" },
 | |
|   XK_Greek_RHO:                     { code: 0x07d1, description: "(\u03A1) GREEK CAPITAL LETTER RHO" },
 | |
|   XK_Greek_SIGMA:                   { code: 0x07d2, description: "(\u03A3) GREEK CAPITAL LETTER SIGMA" },
 | |
|   XK_Greek_TAU:                     { code: 0x07d4, description: "(\u03A4) GREEK CAPITAL LETTER TAU" },
 | |
|   XK_Greek_UPSILON:                 { code: 0x07d5, description: "(\u03A5) GREEK CAPITAL LETTER UPSILON" },
 | |
|   XK_Greek_PHI:                     { code: 0x07d6, description: "(\u03A6) GREEK CAPITAL LETTER PHI" },
 | |
|   XK_Greek_CHI:                     { code: 0x07d7, description: "(\u03A7) GREEK CAPITAL LETTER CHI" },
 | |
|   XK_Greek_PSI:                     { code: 0x07d8, description: "(\u03A8) GREEK CAPITAL LETTER PSI" },
 | |
|   XK_Greek_OMEGA:                   { code: 0x07d9, description: "(\u03A9) GREEK CAPITAL LETTER OMEGA" },
 | |
|   XK_Greek_alpha:                   { code: 0x07e1, description: "(\u03B1) GREEK SMALL LETTER ALPHA" },
 | |
|   XK_Greek_beta:                    { code: 0x07e2, description: "(\u03B2) GREEK SMALL LETTER BETA" },
 | |
|   XK_Greek_gamma:                   { code: 0x07e3, description: "(\u03B3) GREEK SMALL LETTER GAMMA" },
 | |
|   XK_Greek_delta:                   { code: 0x07e4, description: "(\u03B4) GREEK SMALL LETTER DELTA" },
 | |
|   XK_Greek_epsilon:                 { code: 0x07e5, description: "(\u03B5) GREEK SMALL LETTER EPSILON" },
 | |
|   XK_Greek_zeta:                    { code: 0x07e6, description: "(\u03B6) GREEK SMALL LETTER ZETA" },
 | |
|   XK_Greek_eta:                     { code: 0x07e7, description: "(\u03B7) GREEK SMALL LETTER ETA" },
 | |
|   XK_Greek_theta:                   { code: 0x07e8, description: "(\u03B8) GREEK SMALL LETTER THETA" },
 | |
|   XK_Greek_iota:                    { code: 0x07e9, description: "(\u03B9) GREEK SMALL LETTER IOTA" },
 | |
|   XK_Greek_kappa:                   { code: 0x07ea, description: "(\u03BA) GREEK SMALL LETTER KAPPA" },
 | |
|   XK_Greek_lamda:                   { code: 0x07eb, description: "(\u03BB) GREEK SMALL LETTER LAMDA" },
 | |
|   XK_Greek_lambda:                  { code: 0x07eb, description: "(\u03BB) GREEK SMALL LETTER LAMDA" },
 | |
|   XK_Greek_mu:                      { code: 0x07ec, description: "(\u03BC) GREEK SMALL LETTER MU" },
 | |
|   XK_Greek_nu:                      { code: 0x07ed, description: "(\u03BD) GREEK SMALL LETTER NU" },
 | |
|   XK_Greek_xi:                      { code: 0x07ee, description: "(\u03BE) GREEK SMALL LETTER XI" },
 | |
|   XK_Greek_omicron:                 { code: 0x07ef, description: "(\u03BF) GREEK SMALL LETTER OMICRON" },
 | |
|   XK_Greek_pi:                      { code: 0x07f0, description: "(\u03C0) GREEK SMALL LETTER PI" },
 | |
|   XK_Greek_rho:                     { code: 0x07f1, description: "(\u03C1) GREEK SMALL LETTER RHO" },
 | |
|   XK_Greek_sigma:                   { code: 0x07f2, description: "(\u03C3) GREEK SMALL LETTER SIGMA" },
 | |
|   XK_Greek_finalsmallsigma:         { code: 0x07f3, description: "(\u03C2) GREEK SMALL LETTER FINAL SIGMA" },
 | |
|   XK_Greek_tau:                     { code: 0x07f4, description: "(\u03C4) GREEK SMALL LETTER TAU" },
 | |
|   XK_Greek_upsilon:                 { code: 0x07f5, description: "(\u03C5) GREEK SMALL LETTER UPSILON" },
 | |
|   XK_Greek_phi:                     { code: 0x07f6, description: "(\u03C6) GREEK SMALL LETTER PHI" },
 | |
|   XK_Greek_chi:                     { code: 0x07f7, description: "(\u03C7) GREEK SMALL LETTER CHI" },
 | |
|   XK_Greek_psi:                     { code: 0x07f8, description: "(\u03C8) GREEK SMALL LETTER PSI" },
 | |
|   XK_Greek_omega:                   { code: 0x07f9, description: "(\u03C9) GREEK SMALL LETTER OMEGA" },
 | |
|   XK_Greek_switch:                  { code: 0xff7e, description: "Alias for mode_switch" },
 | |
| 
 | |
| 
 | |
| /*
 | |
|  * Technical
 | |
|  * (from the DEC VT330/VT420 Technical Character Set, http://vt100.net/charsets/technical.html)
 | |
|  * Byte 3 = 8
 | |
|  */
 | |
| 
 | |
| // Group XK_TECHNICAL
 | |
|   XK_leftradical:                   { code: 0x08a1, description: "(\u23B7) RADICAL SYMBOL BOTTOM" },
 | |
|   XK_topleftradical:                { code: 0x08a2, description: "((\u250C) BOX DRAWINGS LIGHT DOWN AND RIGHT)" },
 | |
|   XK_horizconnector:                { code: 0x08a3, description: "((\u2500) BOX DRAWINGS LIGHT HORIZONTAL)" },
 | |
|   XK_topintegral:                   { code: 0x08a4, description: "(\u2320) TOP HALF INTEGRAL" },
 | |
|   XK_botintegral:                   { code: 0x08a5, description: "(\u2321) BOTTOM HALF INTEGRAL" },
 | |
|   XK_vertconnector:                 { code: 0x08a6, description: "((\u2502) BOX DRAWINGS LIGHT VERTICAL)" },
 | |
|   XK_topleftsqbracket:              { code: 0x08a7, description: "(\u23A1) LEFT SQUARE BRACKET UPPER CORNER" },
 | |
|   XK_botleftsqbracket:              { code: 0x08a8, description: "(\u23A3) LEFT SQUARE BRACKET LOWER CORNER" },
 | |
|   XK_toprightsqbracket:             { code: 0x08a9, description: "(\u23A4) RIGHT SQUARE BRACKET UPPER CORNER" },
 | |
|   XK_botrightsqbracket:             { code: 0x08aa, description: "(\u23A6) RIGHT SQUARE BRACKET LOWER CORNER" },
 | |
|   XK_topleftparens:                 { code: 0x08ab, description: "(\u239B) LEFT PARENTHESIS UPPER HOOK" },
 | |
|   XK_botleftparens:                 { code: 0x08ac, description: "(\u239D) LEFT PARENTHESIS LOWER HOOK" },
 | |
|   XK_toprightparens:                { code: 0x08ad, description: "(\u239E) RIGHT PARENTHESIS UPPER HOOK" },
 | |
|   XK_botrightparens:                { code: 0x08ae, description: "(\u23A0) RIGHT PARENTHESIS LOWER HOOK" },
 | |
|   XK_leftmiddlecurlybrace:          { code: 0x08af, description: "(\u23A8) LEFT CURLY BRACKET MIDDLE PIECE" },
 | |
|   XK_rightmiddlecurlybrace:         { code: 0x08b0, description: "(\u23AC) RIGHT CURLY BRACKET MIDDLE PIECE" },
 | |
|   XK_topleftsummation:              { code: 0x08b1, description: null },
 | |
|   XK_botleftsummation:              { code: 0x08b2, description: null },
 | |
|   XK_topvertsummationconnector:     { code: 0x08b3, description: null },
 | |
|   XK_botvertsummationconnector:     { code: 0x08b4, description: null },
 | |
|   XK_toprightsummation:             { code: 0x08b5, description: null },
 | |
|   XK_botrightsummation:             { code: 0x08b6, description: null },
 | |
|   XK_rightmiddlesummation:          { code: 0x08b7, description: null },
 | |
|   XK_lessthanequal:                 { code: 0x08bc, description: "(\u2264) LESS-THAN OR EQUAL TO" },
 | |
|   XK_notequal:                      { code: 0x08bd, description: "(\u2260) NOT EQUAL TO" },
 | |
|   XK_greaterthanequal:              { code: 0x08be, description: "(\u2265) GREATER-THAN OR EQUAL TO" },
 | |
|   XK_integral:                      { code: 0x08bf, description: "(\u222B) INTEGRAL" },
 | |
|   XK_therefore:                     { code: 0x08c0, description: "(\u2234) THEREFORE" },
 | |
|   XK_variation:                     { code: 0x08c1, description: "(\u221D) PROPORTIONAL TO" },
 | |
|   XK_infinity:                      { code: 0x08c2, description: "(\u221E) INFINITY" },
 | |
|   XK_nabla:                         { code: 0x08c5, description: "(\u2207) NABLA" },
 | |
|   XK_approximate:                   { code: 0x08c8, description: "(\u223C) TILDE OPERATOR" },
 | |
|   XK_similarequal:                  { code: 0x08c9, description: "(\u2243) ASYMPTOTICALLY EQUAL TO" },
 | |
|   XK_ifonlyif:                      { code: 0x08cd, description: "(\u21D4) LEFT RIGHT DOUBLE ARROW" },
 | |
|   XK_implies:                       { code: 0x08ce, description: "(\u21D2) RIGHTWARDS DOUBLE ARROW" },
 | |
|   XK_identical:                     { code: 0x08cf, description: "(\u2261) IDENTICAL TO" },
 | |
|   XK_radical:                       { code: 0x08d6, description: "(\u221A) SQUARE ROOT" },
 | |
|   XK_includedin:                    { code: 0x08da, description: "(\u2282) SUBSET OF" },
 | |
|   XK_includes:                      { code: 0x08db, description: "(\u2283) SUPERSET OF" },
 | |
|   XK_intersection:                  { code: 0x08dc, description: "(\u2229) INTERSECTION" },
 | |
|   XK_union:                         { code: 0x08dd, description: "(\u222A) UNION" },
 | |
|   XK_logicaland:                    { code: 0x08de, description: "(\u2227) LOGICAL AND" },
 | |
|   XK_logicalor:                     { code: 0x08df, description: "(\u2228) LOGICAL OR" },
 | |
|   XK_partialderivative:             { code: 0x08ef, description: "(\u2202) PARTIAL DIFFERENTIAL" },
 | |
|   XK_function:                      { code: 0x08f6, description: "(\u0192) LATIN SMALL LETTER F WITH HOOK" },
 | |
|   XK_leftarrow:                     { code: 0x08fb, description: "(\u2190) LEFTWARDS ARROW" },
 | |
|   XK_uparrow:                       { code: 0x08fc, description: "(\u2191) UPWARDS ARROW" },
 | |
|   XK_rightarrow:                    { code: 0x08fd, description: "(\u2192) RIGHTWARDS ARROW" },
 | |
|   XK_downarrow:                     { code: 0x08fe, description: "(\u2193) DOWNWARDS ARROW" },
 | |
| 
 | |
| 
 | |
| /*
 | |
|  * Special
 | |
|  * (from the DEC VT100 Special Graphics Character Set)
 | |
|  * Byte 3 = 9
 | |
|  */
 | |
| 
 | |
| // Group XK_SPECIAL
 | |
|   XK_blank:                         { code: 0x09df, description: null },
 | |
|   XK_soliddiamond:                  { code: 0x09e0, description: "(\u25C6) BLACK DIAMOND" },
 | |
|   XK_checkerboard:                  { code: 0x09e1, description: "(\u2592) MEDIUM SHADE" },
 | |
|   XK_ht:                            { code: 0x09e2, description: "(\u2409) SYMBOL FOR HORIZONTAL TABULATION" },
 | |
|   XK_ff:                            { code: 0x09e3, description: "(\u240C) SYMBOL FOR FORM FEED" },
 | |
|   XK_cr:                            { code: 0x09e4, description: "(\u240D) SYMBOL FOR CARRIAGE RETURN" },
 | |
|   XK_lf:                            { code: 0x09e5, description: "(\u240A) SYMBOL FOR LINE FEED" },
 | |
|   XK_nl:                            { code: 0x09e8, description: "(\u2424) SYMBOL FOR NEWLINE" },
 | |
|   XK_vt:                            { code: 0x09e9, description: "(\u240B) SYMBOL FOR VERTICAL TABULATION" },
 | |
|   XK_lowrightcorner:                { code: 0x09ea, description: "(\u2518) BOX DRAWINGS LIGHT UP AND LEFT" },
 | |
|   XK_uprightcorner:                 { code: 0x09eb, description: "(\u2510) BOX DRAWINGS LIGHT DOWN AND LEFT" },
 | |
|   XK_upleftcorner:                  { code: 0x09ec, description: "(\u250C) BOX DRAWINGS LIGHT DOWN AND RIGHT" },
 | |
|   XK_lowleftcorner:                 { code: 0x09ed, description: "(\u2514) BOX DRAWINGS LIGHT UP AND RIGHT" },
 | |
|   XK_crossinglines:                 { code: 0x09ee, description: "(\u253C) BOX DRAWINGS LIGHT VERTICAL AND HORIZONTAL" },
 | |
|   XK_horizlinescan1:                { code: 0x09ef, description: "(\u23BA) HORIZONTAL SCAN LINE-1" },
 | |
|   XK_horizlinescan3:                { code: 0x09f0, description: "(\u23BB) HORIZONTAL SCAN LINE-3" },
 | |
|   XK_horizlinescan5:                { code: 0x09f1, description: "(\u2500) BOX DRAWINGS LIGHT HORIZONTAL" },
 | |
|   XK_horizlinescan7:                { code: 0x09f2, description: "(\u23BC) HORIZONTAL SCAN LINE-7" },
 | |
|   XK_horizlinescan9:                { code: 0x09f3, description: "(\u23BD) HORIZONTAL SCAN LINE-9" },
 | |
|   XK_leftt:                         { code: 0x09f4, description: "(\u251C) BOX DRAWINGS LIGHT VERTICAL AND RIGHT" },
 | |
|   XK_rightt:                        { code: 0x09f5, description: "(\u2524) BOX DRAWINGS LIGHT VERTICAL AND LEFT" },
 | |
|   XK_bott:                          { code: 0x09f6, description: "(\u2534) BOX DRAWINGS LIGHT UP AND HORIZONTAL" },
 | |
|   XK_topt:                          { code: 0x09f7, description: "(\u252C) BOX DRAWINGS LIGHT DOWN AND HORIZONTAL" },
 | |
|   XK_vertbar:                       { code: 0x09f8, description: "(\u2502) BOX DRAWINGS LIGHT VERTICAL" },
 | |
| 
 | |
| 
 | |
| /*
 | |
|  * Publishing
 | |
|  * (these are probably from a long forgotten DEC Publishing
 | |
|  * font that once shipped with DECwrite)
 | |
|  * Byte 3 = 0x0a
 | |
|  */
 | |
| 
 | |
| // Group XK_PUBLISHING
 | |
|   XK_emspace:                       { code: 0x0aa1, description: "(\u2003) EM SPACE" },
 | |
|   XK_enspace:                       { code: 0x0aa2, description: "(\u2002) EN SPACE" },
 | |
|   XK_em3space:                      { code: 0x0aa3, description: "(\u2004) THREE-PER-EM SPACE" },
 | |
|   XK_em4space:                      { code: 0x0aa4, description: "(\u2005) FOUR-PER-EM SPACE" },
 | |
|   XK_digitspace:                    { code: 0x0aa5, description: "(\u2007) FIGURE SPACE" },
 | |
|   XK_punctspace:                    { code: 0x0aa6, description: "(\u2008) PUNCTUATION SPACE" },
 | |
|   XK_thinspace:                     { code: 0x0aa7, description: "(\u2009) THIN SPACE" },
 | |
|   XK_hairspace:                     { code: 0x0aa8, description: "(\u200A) HAIR SPACE" },
 | |
|   XK_emdash:                        { code: 0x0aa9, description: "(\u2014) EM DASH" },
 | |
|   XK_endash:                        { code: 0x0aaa, description: "(\u2013) EN DASH" },
 | |
|   XK_signifblank:                   { code: 0x0aac, description: "((\u2423) OPEN BOX)" },
 | |
|   XK_ellipsis:                      { code: 0x0aae, description: "(\u2026) HORIZONTAL ELLIPSIS" },
 | |
|   XK_doubbaselinedot:               { code: 0x0aaf, description: "(\u2025) TWO DOT LEADER" },
 | |
|   XK_onethird:                      { code: 0x0ab0, description: "(\u2153) VULGAR FRACTION ONE THIRD" },
 | |
|   XK_twothirds:                     { code: 0x0ab1, description: "(\u2154) VULGAR FRACTION TWO THIRDS" },
 | |
|   XK_onefifth:                      { code: 0x0ab2, description: "(\u2155) VULGAR FRACTION ONE FIFTH" },
 | |
|   XK_twofifths:                     { code: 0x0ab3, description: "(\u2156) VULGAR FRACTION TWO FIFTHS" },
 | |
|   XK_threefifths:                   { code: 0x0ab4, description: "(\u2157) VULGAR FRACTION THREE FIFTHS" },
 | |
|   XK_fourfifths:                    { code: 0x0ab5, description: "(\u2158) VULGAR FRACTION FOUR FIFTHS" },
 | |
|   XK_onesixth:                      { code: 0x0ab6, description: "(\u2159) VULGAR FRACTION ONE SIXTH" },
 | |
|   XK_fivesixths:                    { code: 0x0ab7, description: "(\u215A) VULGAR FRACTION FIVE SIXTHS" },
 | |
|   XK_careof:                        { code: 0x0ab8, description: "(\u2105) CARE OF" },
 | |
|   XK_figdash:                       { code: 0x0abb, description: "(\u2012) FIGURE DASH" },
 | |
|   XK_leftanglebracket:              { code: 0x0abc, description: "((\u27E8) MATHEMATICAL LEFT ANGLE BRACKET)" },
 | |
|   XK_decimalpoint:                  { code: 0x0abd, description: "((\u002E) FULL STOP)" },
 | |
|   XK_rightanglebracket:             { code: 0x0abe, description: "((\u27E9) MATHEMATICAL RIGHT ANGLE BRACKET)" },
 | |
|   XK_marker:                        { code: 0x0abf, description: null },
 | |
|   XK_oneeighth:                     { code: 0x0ac3, description: "(\u215B) VULGAR FRACTION ONE EIGHTH" },
 | |
|   XK_threeeighths:                  { code: 0x0ac4, description: "(\u215C) VULGAR FRACTION THREE EIGHTHS" },
 | |
|   XK_fiveeighths:                   { code: 0x0ac5, description: "(\u215D) VULGAR FRACTION FIVE EIGHTHS" },
 | |
|   XK_seveneighths:                  { code: 0x0ac6, description: "(\u215E) VULGAR FRACTION SEVEN EIGHTHS" },
 | |
|   XK_trademark:                     { code: 0x0ac9, description: "(\u2122) TRADE MARK SIGN" },
 | |
|   XK_signaturemark:                 { code: 0x0aca, description: "((\u2613) SALTIRE)" },
 | |
|   XK_trademarkincircle:             { code: 0x0acb, description: null },
 | |
|   XK_leftopentriangle:              { code: 0x0acc, description: "((\u25C1) WHITE LEFT-POINTING TRIANGLE)" },
 | |
|   XK_rightopentriangle:             { code: 0x0acd, description: "((\u25B7) WHITE RIGHT-POINTING TRIANGLE)" },
 | |
|   XK_emopencircle:                  { code: 0x0ace, description: "((\u25CB) WHITE CIRCLE)" },
 | |
|   XK_emopenrectangle:               { code: 0x0acf, description: "((\u25AF) WHITE VERTICAL RECTANGLE)" },
 | |
|   XK_leftsinglequotemark:           { code: 0x0ad0, description: "(\u2018) LEFT SINGLE QUOTATION MARK" },
 | |
|   XK_rightsinglequotemark:          { code: 0x0ad1, description: "(\u2019) RIGHT SINGLE QUOTATION MARK" },
 | |
|   XK_leftdoublequotemark:           { code: 0x0ad2, description: "(\u201C) LEFT DOUBLE QUOTATION MARK" },
 | |
|   XK_rightdoublequotemark:          { code: 0x0ad3, description: "(\u201D) RIGHT DOUBLE QUOTATION MARK" },
 | |
|   XK_prescription:                  { code: 0x0ad4, description: "(\u211E) PRESCRIPTION TAKE" },
 | |
|   XK_permille:                      { code: 0x0ad5, description: "(\u2030) PER MILLE SIGN" },
 | |
|   XK_minutes:                       { code: 0x0ad6, description: "(\u2032) PRIME" },
 | |
|   XK_seconds:                       { code: 0x0ad7, description: "(\u2033) DOUBLE PRIME" },
 | |
|   XK_latincross:                    { code: 0x0ad9, description: "(\u271D) LATIN CROSS" },
 | |
|   XK_hexagram:                      { code: 0x0ada, description: null },
 | |
|   XK_filledrectbullet:              { code: 0x0adb, description: "((\u25AC) BLACK RECTANGLE)" },
 | |
|   XK_filledlefttribullet:           { code: 0x0adc, description: "((\u25C0) BLACK LEFT-POINTING TRIANGLE)" },
 | |
|   XK_filledrighttribullet:          { code: 0x0add, description: "((\u25B6) BLACK RIGHT-POINTING TRIANGLE)" },
 | |
|   XK_emfilledcircle:                { code: 0x0ade, description: "((\u25CF) BLACK CIRCLE)" },
 | |
|   XK_emfilledrect:                  { code: 0x0adf, description: "((\u25AE) BLACK VERTICAL RECTANGLE)" },
 | |
|   XK_enopencircbullet:              { code: 0x0ae0, description: "((\u25E6) WHITE BULLET)" },
 | |
|   XK_enopensquarebullet:            { code: 0x0ae1, description: "((\u25AB) WHITE SMALL SQUARE)" },
 | |
|   XK_openrectbullet:                { code: 0x0ae2, description: "((\u25AD) WHITE RECTANGLE)" },
 | |
|   XK_opentribulletup:               { code: 0x0ae3, description: "((\u25B3) WHITE UP-POINTING TRIANGLE)" },
 | |
|   XK_opentribulletdown:             { code: 0x0ae4, description: "((\u25BD) WHITE DOWN-POINTING TRIANGLE)" },
 | |
|   XK_openstar:                      { code: 0x0ae5, description: "((\u2606) WHITE STAR)" },
 | |
|   XK_enfilledcircbullet:            { code: 0x0ae6, description: "((\u2022) BULLET)" },
 | |
|   XK_enfilledsqbullet:              { code: 0x0ae7, description: "((\u25AA) BLACK SMALL SQUARE)" },
 | |
|   XK_filledtribulletup:             { code: 0x0ae8, description: "((\u25B2) BLACK UP-POINTING TRIANGLE)" },
 | |
|   XK_filledtribulletdown:           { code: 0x0ae9, description: "((\u25BC) BLACK DOWN-POINTING TRIANGLE)" },
 | |
|   XK_leftpointer:                   { code: 0x0aea, description: "((\u261C) WHITE LEFT POINTING INDEX)" },
 | |
|   XK_rightpointer:                  { code: 0x0aeb, description: "((\u261E) WHITE RIGHT POINTING INDEX)" },
 | |
|   XK_club:                          { code: 0x0aec, description: "(\u2663) BLACK CLUB SUIT" },
 | |
|   XK_diamond:                       { code: 0x0aed, description: "(\u2666) BLACK DIAMOND SUIT" },
 | |
|   XK_heart:                         { code: 0x0aee, description: "(\u2665) BLACK HEART SUIT" },
 | |
|   XK_maltesecross:                  { code: 0x0af0, description: "(\u2720) MALTESE CROSS" },
 | |
|   XK_dagger:                        { code: 0x0af1, description: "(\u2020) DAGGER" },
 | |
|   XK_doubledagger:                  { code: 0x0af2, description: "(\u2021) DOUBLE DAGGER" },
 | |
|   XK_checkmark:                     { code: 0x0af3, description: "(\u2713) CHECK MARK" },
 | |
|   XK_ballotcross:                   { code: 0x0af4, description: "(\u2717) BALLOT X" },
 | |
|   XK_musicalsharp:                  { code: 0x0af5, description: "(\u266F) MUSIC SHARP SIGN" },
 | |
|   XK_musicalflat:                   { code: 0x0af6, description: "(\u266D) MUSIC FLAT SIGN" },
 | |
|   XK_malesymbol:                    { code: 0x0af7, description: "(\u2642) MALE SIGN" },
 | |
|   XK_femalesymbol:                  { code: 0x0af8, description: "(\u2640) FEMALE SIGN" },
 | |
|   XK_telephone:                     { code: 0x0af9, description: "(\u260E) BLACK TELEPHONE" },
 | |
|   XK_telephonerecorder:             { code: 0x0afa, description: "(\u2315) TELEPHONE RECORDER" },
 | |
|   XK_phonographcopyright:           { code: 0x0afb, description: "(\u2117) SOUND RECORDING COPYRIGHT" },
 | |
|   XK_caret:                         { code: 0x0afc, description: "(\u2038) CARET" },
 | |
|   XK_singlelowquotemark:            { code: 0x0afd, description: "(\u201A) SINGLE LOW-9 QUOTATION MARK" },
 | |
|   XK_doublelowquotemark:            { code: 0x0afe, description: "(\u201E) DOUBLE LOW-9 QUOTATION MARK" },
 | |
|   XK_cursor:                        { code: 0x0aff, description: null },
 | |
| 
 | |
| 
 | |
| /*
 | |
|  * APL
 | |
|  * Byte 3 = 0x0b
 | |
|  */
 | |
| 
 | |
| // Group XK_APL
 | |
|   XK_leftcaret:                     { code: 0x0ba3, description: "((\u003C) LESS-THAN SIGN)" },
 | |
|   XK_rightcaret:                    { code: 0x0ba6, description: "((\u003E) GREATER-THAN SIGN)" },
 | |
|   XK_downcaret:                     { code: 0x0ba8, description: "((\u2228) LOGICAL OR)" },
 | |
|   XK_upcaret:                       { code: 0x0ba9, description: "((\u2227) LOGICAL AND)" },
 | |
|   XK_overbar:                       { code: 0x0bc0, description: "((\u00AF) MACRON)" },
 | |
|   XK_downtack:                      { code: 0x0bc2, description: "(\u22A4) DOWN TACK" },
 | |
|   XK_upshoe:                        { code: 0x0bc3, description: "((\u2229) INTERSECTION)" },
 | |
|   XK_downstile:                     { code: 0x0bc4, description: "(\u230A) LEFT FLOOR" },
 | |
|   XK_underbar:                      { code: 0x0bc6, description: "((\u005F) LOW LINE)" },
 | |
|   XK_jot:                           { code: 0x0bca, description: "(\u2218) RING OPERATOR" },
 | |
|   XK_quad:                          { code: 0x0bcc, description: "(\u2395) APL FUNCTIONAL SYMBOL QUAD" },
 | |
|   XK_uptack:                        { code: 0x0bce, description: "(\u22A5) UP TACK" },
 | |
|   XK_circle:                        { code: 0x0bcf, description: "(\u25CB) WHITE CIRCLE" },
 | |
|   XK_upstile:                       { code: 0x0bd3, description: "(\u2308) LEFT CEILING" },
 | |
|   XK_downshoe:                      { code: 0x0bd6, description: "((\u222A) UNION)" },
 | |
|   XK_rightshoe:                     { code: 0x0bd8, description: "((\u2283) SUPERSET OF)" },
 | |
|   XK_leftshoe:                      { code: 0x0bda, description: "((\u2282) SUBSET OF)" },
 | |
|   XK_lefttack:                      { code: 0x0bdc, description: "(\u22A3) LEFT TACK" },
 | |
|   XK_righttack:                     { code: 0x0bfc, description: "(\u22A2) RIGHT TACK" },
 | |
| 
 | |
| 
 | |
| /*
 | |
|  * Hebrew
 | |
|  * Byte 3 = 0x0c
 | |
|  */
 | |
| 
 | |
| // Group XK_HEBREW
 | |
|   XK_hebrew_doublelowline:          { code: 0x0cdf, description: "(\u2017) DOUBLE LOW LINE" },
 | |
|   XK_hebrew_aleph:                  { code: 0x0ce0, description: "(\u05D0) HEBREW LETTER ALEF" },
 | |
|   XK_hebrew_bet:                    { code: 0x0ce1, description: "(\u05D1) HEBREW LETTER BET" },
 | |
|   XK_hebrew_beth:                   { code: 0x0ce1, description: "deprecated" },
 | |
|   XK_hebrew_gimel:                  { code: 0x0ce2, description: "(\u05D2) HEBREW LETTER GIMEL" },
 | |
|   XK_hebrew_gimmel:                 { code: 0x0ce2, description: "deprecated" },
 | |
|   XK_hebrew_dalet:                  { code: 0x0ce3, description: "(\u05D3) HEBREW LETTER DALET" },
 | |
|   XK_hebrew_daleth:                 { code: 0x0ce3, description: "deprecated" },
 | |
|   XK_hebrew_he:                     { code: 0x0ce4, description: "(\u05D4) HEBREW LETTER HE" },
 | |
|   XK_hebrew_waw:                    { code: 0x0ce5, description: "(\u05D5) HEBREW LETTER VAV" },
 | |
|   XK_hebrew_zain:                   { code: 0x0ce6, description: "(\u05D6) HEBREW LETTER ZAYIN" },
 | |
|   XK_hebrew_zayin:                  { code: 0x0ce6, description: "deprecated" },
 | |
|   XK_hebrew_chet:                   { code: 0x0ce7, description: "(\u05D7) HEBREW LETTER HET" },
 | |
|   XK_hebrew_het:                    { code: 0x0ce7, description: "deprecated" },
 | |
|   XK_hebrew_tet:                    { code: 0x0ce8, description: "(\u05D8) HEBREW LETTER TET" },
 | |
|   XK_hebrew_teth:                   { code: 0x0ce8, description: "deprecated" },
 | |
|   XK_hebrew_yod:                    { code: 0x0ce9, description: "(\u05D9) HEBREW LETTER YOD" },
 | |
|   XK_hebrew_finalkaph:              { code: 0x0cea, description: "(\u05DA) HEBREW LETTER FINAL KAF" },
 | |
|   XK_hebrew_kaph:                   { code: 0x0ceb, description: "(\u05DB) HEBREW LETTER KAF" },
 | |
|   XK_hebrew_lamed:                  { code: 0x0cec, description: "(\u05DC) HEBREW LETTER LAMED" },
 | |
|   XK_hebrew_finalmem:               { code: 0x0ced, description: "(\u05DD) HEBREW LETTER FINAL MEM" },
 | |
|   XK_hebrew_mem:                    { code: 0x0cee, description: "(\u05DE) HEBREW LETTER MEM" },
 | |
|   XK_hebrew_finalnun:               { code: 0x0cef, description: "(\u05DF) HEBREW LETTER FINAL NUN" },
 | |
|   XK_hebrew_nun:                    { code: 0x0cf0, description: "(\u05E0) HEBREW LETTER NUN" },
 | |
|   XK_hebrew_samech:                 { code: 0x0cf1, description: "(\u05E1) HEBREW LETTER SAMEKH" },
 | |
|   XK_hebrew_samekh:                 { code: 0x0cf1, description: "deprecated" },
 | |
|   XK_hebrew_ayin:                   { code: 0x0cf2, description: "(\u05E2) HEBREW LETTER AYIN" },
 | |
|   XK_hebrew_finalpe:                { code: 0x0cf3, description: "(\u05E3) HEBREW LETTER FINAL PE" },
 | |
|   XK_hebrew_pe:                     { code: 0x0cf4, description: "(\u05E4) HEBREW LETTER PE" },
 | |
|   XK_hebrew_finalzade:              { code: 0x0cf5, description: "(\u05E5) HEBREW LETTER FINAL TSADI" },
 | |
|   XK_hebrew_finalzadi:              { code: 0x0cf5, description: "deprecated" },
 | |
|   XK_hebrew_zade:                   { code: 0x0cf6, description: "(\u05E6) HEBREW LETTER TSADI" },
 | |
|   XK_hebrew_zadi:                   { code: 0x0cf6, description: "deprecated" },
 | |
|   XK_hebrew_qoph:                   { code: 0x0cf7, description: "(\u05E7) HEBREW LETTER QOF" },
 | |
|   XK_hebrew_kuf:                    { code: 0x0cf7, description: "deprecated" },
 | |
|   XK_hebrew_resh:                   { code: 0x0cf8, description: "(\u05E8) HEBREW LETTER RESH" },
 | |
|   XK_hebrew_shin:                   { code: 0x0cf9, description: "(\u05E9) HEBREW LETTER SHIN" },
 | |
|   XK_hebrew_taw:                    { code: 0x0cfa, description: "(\u05EA) HEBREW LETTER TAV" },
 | |
|   XK_hebrew_taf:                    { code: 0x0cfa, description: "deprecated" },
 | |
|   XK_Hebrew_switch:                 { code: 0xff7e, description: "Alias for mode_switch" },
 | |
| 
 | |
| 
 | |
| /*
 | |
|  * Thai
 | |
|  * Byte 3 = 0x0d
 | |
|  */
 | |
| 
 | |
| // Group XK_THAI
 | |
|   XK_Thai_kokai:                    { code: 0x0da1, description: "(\u0E01) THAI CHARACTER KO KAI" },
 | |
|   XK_Thai_khokhai:                  { code: 0x0da2, description: "(\u0E02) THAI CHARACTER KHO KHAI" },
 | |
|   XK_Thai_khokhuat:                 { code: 0x0da3, description: "(\u0E03) THAI CHARACTER KHO KHUAT" },
 | |
|   XK_Thai_khokhwai:                 { code: 0x0da4, description: "(\u0E04) THAI CHARACTER KHO KHWAI" },
 | |
|   XK_Thai_khokhon:                  { code: 0x0da5, description: "(\u0E05) THAI CHARACTER KHO KHON" },
 | |
|   XK_Thai_khorakhang:               { code: 0x0da6, description: "(\u0E06) THAI CHARACTER KHO RAKHANG" },
 | |
|   XK_Thai_ngongu:                   { code: 0x0da7, description: "(\u0E07) THAI CHARACTER NGO NGU" },
 | |
|   XK_Thai_chochan:                  { code: 0x0da8, description: "(\u0E08) THAI CHARACTER CHO CHAN" },
 | |
|   XK_Thai_choching:                 { code: 0x0da9, description: "(\u0E09) THAI CHARACTER CHO CHING" },
 | |
|   XK_Thai_chochang:                 { code: 0x0daa, description: "(\u0E0A) THAI CHARACTER CHO CHANG" },
 | |
|   XK_Thai_soso:                     { code: 0x0dab, description: "(\u0E0B) THAI CHARACTER SO SO" },
 | |
|   XK_Thai_chochoe:                  { code: 0x0dac, description: "(\u0E0C) THAI CHARACTER CHO CHOE" },
 | |
|   XK_Thai_yoying:                   { code: 0x0dad, description: "(\u0E0D) THAI CHARACTER YO YING" },
 | |
|   XK_Thai_dochada:                  { code: 0x0dae, description: "(\u0E0E) THAI CHARACTER DO CHADA" },
 | |
|   XK_Thai_topatak:                  { code: 0x0daf, description: "(\u0E0F) THAI CHARACTER TO PATAK" },
 | |
|   XK_Thai_thothan:                  { code: 0x0db0, description: "(\u0E10) THAI CHARACTER THO THAN" },
 | |
|   XK_Thai_thonangmontho:            { code: 0x0db1, description: "(\u0E11) THAI CHARACTER THO NANGMONTHO" },
 | |
|   XK_Thai_thophuthao:               { code: 0x0db2, description: "(\u0E12) THAI CHARACTER THO PHUTHAO" },
 | |
|   XK_Thai_nonen:                    { code: 0x0db3, description: "(\u0E13) THAI CHARACTER NO NEN" },
 | |
|   XK_Thai_dodek:                    { code: 0x0db4, description: "(\u0E14) THAI CHARACTER DO DEK" },
 | |
|   XK_Thai_totao:                    { code: 0x0db5, description: "(\u0E15) THAI CHARACTER TO TAO" },
 | |
|   XK_Thai_thothung:                 { code: 0x0db6, description: "(\u0E16) THAI CHARACTER THO THUNG" },
 | |
|   XK_Thai_thothahan:                { code: 0x0db7, description: "(\u0E17) THAI CHARACTER THO THAHAN" },
 | |
|   XK_Thai_thothong:                 { code: 0x0db8, description: "(\u0E18) THAI CHARACTER THO THONG" },
 | |
|   XK_Thai_nonu:                     { code: 0x0db9, description: "(\u0E19) THAI CHARACTER NO NU" },
 | |
|   XK_Thai_bobaimai:                 { code: 0x0dba, description: "(\u0E1A) THAI CHARACTER BO BAIMAI" },
 | |
|   XK_Thai_popla:                    { code: 0x0dbb, description: "(\u0E1B) THAI CHARACTER PO PLA" },
 | |
|   XK_Thai_phophung:                 { code: 0x0dbc, description: "(\u0E1C) THAI CHARACTER PHO PHUNG" },
 | |
|   XK_Thai_fofa:                     { code: 0x0dbd, description: "(\u0E1D) THAI CHARACTER FO FA" },
 | |
|   XK_Thai_phophan:                  { code: 0x0dbe, description: "(\u0E1E) THAI CHARACTER PHO PHAN" },
 | |
|   XK_Thai_fofan:                    { code: 0x0dbf, description: "(\u0E1F) THAI CHARACTER FO FAN" },
 | |
|   XK_Thai_phosamphao:               { code: 0x0dc0, description: "(\u0E20) THAI CHARACTER PHO SAMPHAO" },
 | |
|   XK_Thai_moma:                     { code: 0x0dc1, description: "(\u0E21) THAI CHARACTER MO MA" },
 | |
|   XK_Thai_yoyak:                    { code: 0x0dc2, description: "(\u0E22) THAI CHARACTER YO YAK" },
 | |
|   XK_Thai_rorua:                    { code: 0x0dc3, description: "(\u0E23) THAI CHARACTER RO RUA" },
 | |
|   XK_Thai_ru:                       { code: 0x0dc4, description: "(\u0E24) THAI CHARACTER RU" },
 | |
|   XK_Thai_loling:                   { code: 0x0dc5, description: "(\u0E25) THAI CHARACTER LO LING" },
 | |
|   XK_Thai_lu:                       { code: 0x0dc6, description: "(\u0E26) THAI CHARACTER LU" },
 | |
|   XK_Thai_wowaen:                   { code: 0x0dc7, description: "(\u0E27) THAI CHARACTER WO WAEN" },
 | |
|   XK_Thai_sosala:                   { code: 0x0dc8, description: "(\u0E28) THAI CHARACTER SO SALA" },
 | |
|   XK_Thai_sorusi:                   { code: 0x0dc9, description: "(\u0E29) THAI CHARACTER SO RUSI" },
 | |
|   XK_Thai_sosua:                    { code: 0x0dca, description: "(\u0E2A) THAI CHARACTER SO SUA" },
 | |
|   XK_Thai_hohip:                    { code: 0x0dcb, description: "(\u0E2B) THAI CHARACTER HO HIP" },
 | |
|   XK_Thai_lochula:                  { code: 0x0dcc, description: "(\u0E2C) THAI CHARACTER LO CHULA" },
 | |
|   XK_Thai_oang:                     { code: 0x0dcd, description: "(\u0E2D) THAI CHARACTER O ANG" },
 | |
|   XK_Thai_honokhuk:                 { code: 0x0dce, description: "(\u0E2E) THAI CHARACTER HO NOKHUK" },
 | |
|   XK_Thai_paiyannoi:                { code: 0x0dcf, description: "(\u0E2F) THAI CHARACTER PAIYANNOI" },
 | |
|   XK_Thai_saraa:                    { code: 0x0dd0, description: "(\u0E30) THAI CHARACTER SARA A" },
 | |
|   XK_Thai_maihanakat:               { code: 0x0dd1, description: "(\u0E31) THAI CHARACTER MAI HAN-AKAT" },
 | |
|   XK_Thai_saraaa:                   { code: 0x0dd2, description: "(\u0E32) THAI CHARACTER SARA AA" },
 | |
|   XK_Thai_saraam:                   { code: 0x0dd3, description: "(\u0E33) THAI CHARACTER SARA AM" },
 | |
|   XK_Thai_sarai:                    { code: 0x0dd4, description: "(\u0E34) THAI CHARACTER SARA I" },
 | |
|   XK_Thai_saraii:                   { code: 0x0dd5, description: "(\u0E35) THAI CHARACTER SARA II" },
 | |
|   XK_Thai_saraue:                   { code: 0x0dd6, description: "(\u0E36) THAI CHARACTER SARA UE" },
 | |
|   XK_Thai_sarauee:                  { code: 0x0dd7, description: "(\u0E37) THAI CHARACTER SARA UEE" },
 | |
|   XK_Thai_sarau:                    { code: 0x0dd8, description: "(\u0E38) THAI CHARACTER SARA U" },
 | |
|   XK_Thai_sarauu:                   { code: 0x0dd9, description: "(\u0E39) THAI CHARACTER SARA UU" },
 | |
|   XK_Thai_phinthu:                  { code: 0x0dda, description: "(\u0E3A) THAI CHARACTER PHINTHU" },
 | |
|   XK_Thai_maihanakat_maitho:        { code: 0x0dde, description: null },
 | |
|   XK_Thai_baht:                     { code: 0x0ddf, description: "(\u0E3F) THAI CURRENCY SYMBOL BAHT" },
 | |
|   XK_Thai_sarae:                    { code: 0x0de0, description: "(\u0E40) THAI CHARACTER SARA E" },
 | |
|   XK_Thai_saraae:                   { code: 0x0de1, description: "(\u0E41) THAI CHARACTER SARA AE" },
 | |
|   XK_Thai_sarao:                    { code: 0x0de2, description: "(\u0E42) THAI CHARACTER SARA O" },
 | |
|   XK_Thai_saraaimaimuan:            { code: 0x0de3, description: "(\u0E43) THAI CHARACTER SARA AI MAIMUAN" },
 | |
|   XK_Thai_saraaimaimalai:           { code: 0x0de4, description: "(\u0E44) THAI CHARACTER SARA AI MAIMALAI" },
 | |
|   XK_Thai_lakkhangyao:              { code: 0x0de5, description: "(\u0E45) THAI CHARACTER LAKKHANGYAO" },
 | |
|   XK_Thai_maiyamok:                 { code: 0x0de6, description: "(\u0E46) THAI CHARACTER MAIYAMOK" },
 | |
|   XK_Thai_maitaikhu:                { code: 0x0de7, description: "(\u0E47) THAI CHARACTER MAITAIKHU" },
 | |
|   XK_Thai_maiek:                    { code: 0x0de8, description: "(\u0E48) THAI CHARACTER MAI EK" },
 | |
|   XK_Thai_maitho:                   { code: 0x0de9, description: "(\u0E49) THAI CHARACTER MAI THO" },
 | |
|   XK_Thai_maitri:                   { code: 0x0dea, description: "(\u0E4A) THAI CHARACTER MAI TRI" },
 | |
|   XK_Thai_maichattawa:              { code: 0x0deb, description: "(\u0E4B) THAI CHARACTER MAI CHATTAWA" },
 | |
|   XK_Thai_thanthakhat:              { code: 0x0dec, description: "(\u0E4C) THAI CHARACTER THANTHAKHAT" },
 | |
|   XK_Thai_nikhahit:                 { code: 0x0ded, description: "(\u0E4D) THAI CHARACTER NIKHAHIT" },
 | |
|   XK_Thai_leksun:                   { code: 0x0df0, description: "(\u0E50) THAI DIGIT ZERO" },
 | |
|   XK_Thai_leknung:                  { code: 0x0df1, description: "(\u0E51) THAI DIGIT ONE" },
 | |
|   XK_Thai_leksong:                  { code: 0x0df2, description: "(\u0E52) THAI DIGIT TWO" },
 | |
|   XK_Thai_leksam:                   { code: 0x0df3, description: "(\u0E53) THAI DIGIT THREE" },
 | |
|   XK_Thai_leksi:                    { code: 0x0df4, description: "(\u0E54) THAI DIGIT FOUR" },
 | |
|   XK_Thai_lekha:                    { code: 0x0df5, description: "(\u0E55) THAI DIGIT FIVE" },
 | |
|   XK_Thai_lekhok:                   { code: 0x0df6, description: "(\u0E56) THAI DIGIT SIX" },
 | |
|   XK_Thai_lekchet:                  { code: 0x0df7, description: "(\u0E57) THAI DIGIT SEVEN" },
 | |
|   XK_Thai_lekpaet:                  { code: 0x0df8, description: "(\u0E58) THAI DIGIT EIGHT" },
 | |
|   XK_Thai_lekkao:                   { code: 0x0df9, description: "(\u0E59) THAI DIGIT NINE" },
 | |
| 
 | |
| 
 | |
| /*
 | |
|  * Korean
 | |
|  * Byte 3 = 0x0e
 | |
|  */
 | |
| 
 | |
| // Group XK_KOREAN
 | |
| 
 | |
|   XK_Hangul:                        { code: 0xff31, description: "Hangul start/stop(toggle)" },
 | |
|   XK_Hangul_Start:                  { code: 0xff32, description: "Hangul start" },
 | |
|   XK_Hangul_End:                    { code: 0xff33, description: "Hangul end, English start" },
 | |
|   XK_Hangul_Hanja:                  { code: 0xff34, description: "Start Hangul->Hanja Conversion" },
 | |
|   XK_Hangul_Jamo:                   { code: 0xff35, description: "Hangul Jamo mode" },
 | |
|   XK_Hangul_Romaja:                 { code: 0xff36, description: "Hangul Romaja mode" },
 | |
|   XK_Hangul_Codeinput:              { code: 0xff37, description: "Hangul code input mode" },
 | |
|   XK_Hangul_Jeonja:                 { code: 0xff38, description: "Jeonja mode" },
 | |
|   XK_Hangul_Banja:                  { code: 0xff39, description: "Banja mode" },
 | |
|   XK_Hangul_PreHanja:               { code: 0xff3a, description: "Pre Hanja conversion" },
 | |
|   XK_Hangul_PostHanja:              { code: 0xff3b, description: "Post Hanja conversion" },
 | |
|   XK_Hangul_SingleCandidate:        { code: 0xff3c, description: "Single candidate" },
 | |
|   XK_Hangul_MultipleCandidate:      { code: 0xff3d, description: "Multiple candidate" },
 | |
|   XK_Hangul_PreviousCandidate:      { code: 0xff3e, description: "Previous candidate" },
 | |
|   XK_Hangul_Special:                { code: 0xff3f, description: "Special symbols" },
 | |
|   XK_Hangul_switch:                 { code: 0xff7e, description: "Alias for mode_switch" },
 | |
| 
 | |
| /* Hangul Consonant Characters */
 | |
|   XK_Hangul_Kiyeog:                 { code: 0x0ea1, description: null },
 | |
|   XK_Hangul_SsangKiyeog:            { code: 0x0ea2, description: null },
 | |
|   XK_Hangul_KiyeogSios:             { code: 0x0ea3, description: null },
 | |
|   XK_Hangul_Nieun:                  { code: 0x0ea4, description: null },
 | |
|   XK_Hangul_NieunJieuj:             { code: 0x0ea5, description: null },
 | |
|   XK_Hangul_NieunHieuh:             { code: 0x0ea6, description: null },
 | |
|   XK_Hangul_Dikeud:                 { code: 0x0ea7, description: null },
 | |
|   XK_Hangul_SsangDikeud:            { code: 0x0ea8, description: null },
 | |
|   XK_Hangul_Rieul:                  { code: 0x0ea9, description: null },
 | |
|   XK_Hangul_RieulKiyeog:            { code: 0x0eaa, description: null },
 | |
|   XK_Hangul_RieulMieum:             { code: 0x0eab, description: null },
 | |
|   XK_Hangul_RieulPieub:             { code: 0x0eac, description: null },
 | |
|   XK_Hangul_RieulSios:              { code: 0x0ead, description: null },
 | |
|   XK_Hangul_RieulTieut:             { code: 0x0eae, description: null },
 | |
|   XK_Hangul_RieulPhieuf:            { code: 0x0eaf, description: null },
 | |
|   XK_Hangul_RieulHieuh:             { code: 0x0eb0, description: null },
 | |
|   XK_Hangul_Mieum:                  { code: 0x0eb1, description: null },
 | |
|   XK_Hangul_Pieub:                  { code: 0x0eb2, description: null },
 | |
|   XK_Hangul_SsangPieub:             { code: 0x0eb3, description: null },
 | |
|   XK_Hangul_PieubSios:              { code: 0x0eb4, description: null },
 | |
|   XK_Hangul_Sios:                   { code: 0x0eb5, description: null },
 | |
|   XK_Hangul_SsangSios:              { code: 0x0eb6, description: null },
 | |
|   XK_Hangul_Ieung:                  { code: 0x0eb7, description: null },
 | |
|   XK_Hangul_Jieuj:                  { code: 0x0eb8, description: null },
 | |
|   XK_Hangul_SsangJieuj:             { code: 0x0eb9, description: null },
 | |
|   XK_Hangul_Cieuc:                  { code: 0x0eba, description: null },
 | |
|   XK_Hangul_Khieuq:                 { code: 0x0ebb, description: null },
 | |
|   XK_Hangul_Tieut:                  { code: 0x0ebc, description: null },
 | |
|   XK_Hangul_Phieuf:                 { code: 0x0ebd, description: null },
 | |
|   XK_Hangul_Hieuh:                  { code: 0x0ebe, description: null },
 | |
| 
 | |
| /* Hangul Vowel Characters */
 | |
|   XK_Hangul_A:                      { code: 0x0ebf, description: null },
 | |
|   XK_Hangul_AE:                     { code: 0x0ec0, description: null },
 | |
|   XK_Hangul_YA:                     { code: 0x0ec1, description: null },
 | |
|   XK_Hangul_YAE:                    { code: 0x0ec2, description: null },
 | |
|   XK_Hangul_EO:                     { code: 0x0ec3, description: null },
 | |
|   XK_Hangul_E:                      { code: 0x0ec4, description: null },
 | |
|   XK_Hangul_YEO:                    { code: 0x0ec5, description: null },
 | |
|   XK_Hangul_YE:                     { code: 0x0ec6, description: null },
 | |
|   XK_Hangul_O:                      { code: 0x0ec7, description: null },
 | |
|   XK_Hangul_WA:                     { code: 0x0ec8, description: null },
 | |
|   XK_Hangul_WAE:                    { code: 0x0ec9, description: null },
 | |
|   XK_Hangul_OE:                     { code: 0x0eca, description: null },
 | |
|   XK_Hangul_YO:                     { code: 0x0ecb, description: null },
 | |
|   XK_Hangul_U:                      { code: 0x0ecc, description: null },
 | |
|   XK_Hangul_WEO:                    { code: 0x0ecd, description: null },
 | |
|   XK_Hangul_WE:                     { code: 0x0ece, description: null },
 | |
|   XK_Hangul_WI:                     { code: 0x0ecf, description: null },
 | |
|   XK_Hangul_YU:                     { code: 0x0ed0, description: null },
 | |
|   XK_Hangul_EU:                     { code: 0x0ed1, description: null },
 | |
|   XK_Hangul_YI:                     { code: 0x0ed2, description: null },
 | |
|   XK_Hangul_I:                      { code: 0x0ed3, description: null },
 | |
| 
 | |
| /* Hangul syllable-final (JongSeong) Characters */
 | |
|   XK_Hangul_J_Kiyeog:               { code: 0x0ed4, description: null },
 | |
|   XK_Hangul_J_SsangKiyeog:          { code: 0x0ed5, description: null },
 | |
|   XK_Hangul_J_KiyeogSios:           { code: 0x0ed6, description: null },
 | |
|   XK_Hangul_J_Nieun:                { code: 0x0ed7, description: null },
 | |
|   XK_Hangul_J_NieunJieuj:           { code: 0x0ed8, description: null },
 | |
|   XK_Hangul_J_NieunHieuh:           { code: 0x0ed9, description: null },
 | |
|   XK_Hangul_J_Dikeud:               { code: 0x0eda, description: null },
 | |
|   XK_Hangul_J_Rieul:                { code: 0x0edb, description: null },
 | |
|   XK_Hangul_J_RieulKiyeog:          { code: 0x0edc, description: null },
 | |
|   XK_Hangul_J_RieulMieum:           { code: 0x0edd, description: null },
 | |
|   XK_Hangul_J_RieulPieub:           { code: 0x0ede, description: null },
 | |
|   XK_Hangul_J_RieulSios:            { code: 0x0edf, description: null },
 | |
|   XK_Hangul_J_RieulTieut:           { code: 0x0ee0, description: null },
 | |
|   XK_Hangul_J_RieulPhieuf:          { code: 0x0ee1, description: null },
 | |
|   XK_Hangul_J_RieulHieuh:           { code: 0x0ee2, description: null },
 | |
|   XK_Hangul_J_Mieum:                { code: 0x0ee3, description: null },
 | |
|   XK_Hangul_J_Pieub:                { code: 0x0ee4, description: null },
 | |
|   XK_Hangul_J_PieubSios:            { code: 0x0ee5, description: null },
 | |
|   XK_Hangul_J_Sios:                 { code: 0x0ee6, description: null },
 | |
|   XK_Hangul_J_SsangSios:            { code: 0x0ee7, description: null },
 | |
|   XK_Hangul_J_Ieung:                { code: 0x0ee8, description: null },
 | |
|   XK_Hangul_J_Jieuj:                { code: 0x0ee9, description: null },
 | |
|   XK_Hangul_J_Cieuc:                { code: 0x0eea, description: null },
 | |
|   XK_Hangul_J_Khieuq:               { code: 0x0eeb, description: null },
 | |
|   XK_Hangul_J_Tieut:                { code: 0x0eec, description: null },
 | |
|   XK_Hangul_J_Phieuf:               { code: 0x0eed, description: null },
 | |
|   XK_Hangul_J_Hieuh:                { code: 0x0eee, description: null },
 | |
| 
 | |
| /* Ancient Hangul Consonant Characters */
 | |
|   XK_Hangul_RieulYeorinHieuh:       { code: 0x0eef, description: null },
 | |
|   XK_Hangul_SunkyeongeumMieum:      { code: 0x0ef0, description: null },
 | |
|   XK_Hangul_SunkyeongeumPieub:      { code: 0x0ef1, description: null },
 | |
|   XK_Hangul_PanSios:                { code: 0x0ef2, description: null },
 | |
|   XK_Hangul_KkogjiDalrinIeung:      { code: 0x0ef3, description: null },
 | |
|   XK_Hangul_SunkyeongeumPhieuf:     { code: 0x0ef4, description: null },
 | |
|   XK_Hangul_YeorinHieuh:            { code: 0x0ef5, description: null },
 | |
| 
 | |
| /* Ancient Hangul Vowel Characters */
 | |
|   XK_Hangul_AraeA:                  { code: 0x0ef6, description: null },
 | |
|   XK_Hangul_AraeAE:                 { code: 0x0ef7, description: null },
 | |
| 
 | |
| /* Ancient Hangul syllable-final (JongSeong) Characters */
 | |
|   XK_Hangul_J_PanSios:              { code: 0x0ef8, description: null },
 | |
|   XK_Hangul_J_KkogjiDalrinIeung:    { code: 0x0ef9, description: null },
 | |
|   XK_Hangul_J_YeorinHieuh:          { code: 0x0efa, description: null },
 | |
| 
 | |
| /* Korean currency symbol */
 | |
|   XK_Korean_Won:                    { code: 0x0eff, description: "((\u20A9) WON SIGN)" },
 | |
| 
 | |
| 
 | |
| 
 | |
| /*
 | |
|  * Armenian
 | |
|  */
 | |
| 
 | |
| // Group XK_ARMENIAN
 | |
|   XK_Armenian_ligature_ew:       { code: 0x1000587, description: "(\u0587) ARMENIAN SMALL LIGATURE ECH YIWN" },
 | |
|   XK_Armenian_full_stop:         { code: 0x1000589, description: "(\u0589) ARMENIAN FULL STOP" },
 | |
|   XK_Armenian_verjaket:          { code: 0x1000589, description: "(\u0589) ARMENIAN FULL STOP" },
 | |
|   XK_Armenian_separation_mark:   { code: 0x100055d, description: "(\u055D) ARMENIAN COMMA" },
 | |
|   XK_Armenian_but:               { code: 0x100055d, description: "(\u055D) ARMENIAN COMMA" },
 | |
|   XK_Armenian_hyphen:            { code: 0x100058a, description: "(\u058A) ARMENIAN HYPHEN" },
 | |
|   XK_Armenian_yentamna:          { code: 0x100058a, description: "(\u058A) ARMENIAN HYPHEN" },
 | |
|   XK_Armenian_exclam:            { code: 0x100055c, description: "(\u055C) ARMENIAN EXCLAMATION MARK" },
 | |
|   XK_Armenian_amanak:            { code: 0x100055c, description: "(\u055C) ARMENIAN EXCLAMATION MARK" },
 | |
|   XK_Armenian_accent:            { code: 0x100055b, description: "(\u055B) ARMENIAN EMPHASIS MARK" },
 | |
|   XK_Armenian_shesht:            { code: 0x100055b, description: "(\u055B) ARMENIAN EMPHASIS MARK" },
 | |
|   XK_Armenian_question:          { code: 0x100055e, description: "(\u055E) ARMENIAN QUESTION MARK" },
 | |
|   XK_Armenian_paruyk:            { code: 0x100055e, description: "(\u055E) ARMENIAN QUESTION MARK" },
 | |
|   XK_Armenian_AYB:               { code: 0x1000531, description: "(\u0531) ARMENIAN CAPITAL LETTER AYB" },
 | |
|   XK_Armenian_ayb:               { code: 0x1000561, description: "(\u0561) ARMENIAN SMALL LETTER AYB" },
 | |
|   XK_Armenian_BEN:               { code: 0x1000532, description: "(\u0532) ARMENIAN CAPITAL LETTER BEN" },
 | |
|   XK_Armenian_ben:               { code: 0x1000562, description: "(\u0562) ARMENIAN SMALL LETTER BEN" },
 | |
|   XK_Armenian_GIM:               { code: 0x1000533, description: "(\u0533) ARMENIAN CAPITAL LETTER GIM" },
 | |
|   XK_Armenian_gim:               { code: 0x1000563, description: "(\u0563) ARMENIAN SMALL LETTER GIM" },
 | |
|   XK_Armenian_DA:                { code: 0x1000534, description: "(\u0534) ARMENIAN CAPITAL LETTER DA" },
 | |
|   XK_Armenian_da:                { code: 0x1000564, description: "(\u0564) ARMENIAN SMALL LETTER DA" },
 | |
|   XK_Armenian_YECH:              { code: 0x1000535, description: "(\u0535) ARMENIAN CAPITAL LETTER ECH" },
 | |
|   XK_Armenian_yech:              { code: 0x1000565, description: "(\u0565) ARMENIAN SMALL LETTER ECH" },
 | |
|   XK_Armenian_ZA:                { code: 0x1000536, description: "(\u0536) ARMENIAN CAPITAL LETTER ZA" },
 | |
|   XK_Armenian_za:                { code: 0x1000566, description: "(\u0566) ARMENIAN SMALL LETTER ZA" },
 | |
|   XK_Armenian_E:                 { code: 0x1000537, description: "(\u0537) ARMENIAN CAPITAL LETTER EH" },
 | |
|   XK_Armenian_e:                 { code: 0x1000567, description: "(\u0567) ARMENIAN SMALL LETTER EH" },
 | |
|   XK_Armenian_AT:                { code: 0x1000538, description: "(\u0538) ARMENIAN CAPITAL LETTER ET" },
 | |
|   XK_Armenian_at:                { code: 0x1000568, description: "(\u0568) ARMENIAN SMALL LETTER ET" },
 | |
|   XK_Armenian_TO:                { code: 0x1000539, description: "(\u0539) ARMENIAN CAPITAL LETTER TO" },
 | |
|   XK_Armenian_to:                { code: 0x1000569, description: "(\u0569) ARMENIAN SMALL LETTER TO" },
 | |
|   XK_Armenian_ZHE:               { code: 0x100053a, description: "(\u053A) ARMENIAN CAPITAL LETTER ZHE" },
 | |
|   XK_Armenian_zhe:               { code: 0x100056a, description: "(\u056A) ARMENIAN SMALL LETTER ZHE" },
 | |
|   XK_Armenian_INI:               { code: 0x100053b, description: "(\u053B) ARMENIAN CAPITAL LETTER INI" },
 | |
|   XK_Armenian_ini:               { code: 0x100056b, description: "(\u056B) ARMENIAN SMALL LETTER INI" },
 | |
|   XK_Armenian_LYUN:              { code: 0x100053c, description: "(\u053C) ARMENIAN CAPITAL LETTER LIWN" },
 | |
|   XK_Armenian_lyun:              { code: 0x100056c, description: "(\u056C) ARMENIAN SMALL LETTER LIWN" },
 | |
|   XK_Armenian_KHE:               { code: 0x100053d, description: "(\u053D) ARMENIAN CAPITAL LETTER XEH" },
 | |
|   XK_Armenian_khe:               { code: 0x100056d, description: "(\u056D) ARMENIAN SMALL LETTER XEH" },
 | |
|   XK_Armenian_TSA:               { code: 0x100053e, description: "(\u053E) ARMENIAN CAPITAL LETTER CA" },
 | |
|   XK_Armenian_tsa:               { code: 0x100056e, description: "(\u056E) ARMENIAN SMALL LETTER CA" },
 | |
|   XK_Armenian_KEN:               { code: 0x100053f, description: "(\u053F) ARMENIAN CAPITAL LETTER KEN" },
 | |
|   XK_Armenian_ken:               { code: 0x100056f, description: "(\u056F) ARMENIAN SMALL LETTER KEN" },
 | |
|   XK_Armenian_HO:                { code: 0x1000540, description: "(\u0540) ARMENIAN CAPITAL LETTER HO" },
 | |
|   XK_Armenian_ho:                { code: 0x1000570, description: "(\u0570) ARMENIAN SMALL LETTER HO" },
 | |
|   XK_Armenian_DZA:               { code: 0x1000541, description: "(\u0541) ARMENIAN CAPITAL LETTER JA" },
 | |
|   XK_Armenian_dza:               { code: 0x1000571, description: "(\u0571) ARMENIAN SMALL LETTER JA" },
 | |
|   XK_Armenian_GHAT:              { code: 0x1000542, description: "(\u0542) ARMENIAN CAPITAL LETTER GHAD" },
 | |
|   XK_Armenian_ghat:              { code: 0x1000572, description: "(\u0572) ARMENIAN SMALL LETTER GHAD" },
 | |
|   XK_Armenian_TCHE:              { code: 0x1000543, description: "(\u0543) ARMENIAN CAPITAL LETTER CHEH" },
 | |
|   XK_Armenian_tche:              { code: 0x1000573, description: "(\u0573) ARMENIAN SMALL LETTER CHEH" },
 | |
|   XK_Armenian_MEN:               { code: 0x1000544, description: "(\u0544) ARMENIAN CAPITAL LETTER MEN" },
 | |
|   XK_Armenian_men:               { code: 0x1000574, description: "(\u0574) ARMENIAN SMALL LETTER MEN" },
 | |
|   XK_Armenian_HI:                { code: 0x1000545, description: "(\u0545) ARMENIAN CAPITAL LETTER YI" },
 | |
|   XK_Armenian_hi:                { code: 0x1000575, description: "(\u0575) ARMENIAN SMALL LETTER YI" },
 | |
|   XK_Armenian_NU:                { code: 0x1000546, description: "(\u0546) ARMENIAN CAPITAL LETTER NOW" },
 | |
|   XK_Armenian_nu:                { code: 0x1000576, description: "(\u0576) ARMENIAN SMALL LETTER NOW" },
 | |
|   XK_Armenian_SHA:               { code: 0x1000547, description: "(\u0547) ARMENIAN CAPITAL LETTER SHA" },
 | |
|   XK_Armenian_sha:               { code: 0x1000577, description: "(\u0577) ARMENIAN SMALL LETTER SHA" },
 | |
|   XK_Armenian_VO:                { code: 0x1000548, description: "(\u0548) ARMENIAN CAPITAL LETTER VO" },
 | |
|   XK_Armenian_vo:                { code: 0x1000578, description: "(\u0578) ARMENIAN SMALL LETTER VO" },
 | |
|   XK_Armenian_CHA:               { code: 0x1000549, description: "(\u0549) ARMENIAN CAPITAL LETTER CHA" },
 | |
|   XK_Armenian_cha:               { code: 0x1000579, description: "(\u0579) ARMENIAN SMALL LETTER CHA" },
 | |
|   XK_Armenian_PE:                { code: 0x100054a, description: "(\u054A) ARMENIAN CAPITAL LETTER PEH" },
 | |
|   XK_Armenian_pe:                { code: 0x100057a, description: "(\u057A) ARMENIAN SMALL LETTER PEH" },
 | |
|   XK_Armenian_JE:                { code: 0x100054b, description: "(\u054B) ARMENIAN CAPITAL LETTER JHEH" },
 | |
|   XK_Armenian_je:                { code: 0x100057b, description: "(\u057B) ARMENIAN SMALL LETTER JHEH" },
 | |
|   XK_Armenian_RA:                { code: 0x100054c, description: "(\u054C) ARMENIAN CAPITAL LETTER RA" },
 | |
|   XK_Armenian_ra:                { code: 0x100057c, description: "(\u057C) ARMENIAN SMALL LETTER RA" },
 | |
|   XK_Armenian_SE:                { code: 0x100054d, description: "(\u054D) ARMENIAN CAPITAL LETTER SEH" },
 | |
|   XK_Armenian_se:                { code: 0x100057d, description: "(\u057D) ARMENIAN SMALL LETTER SEH" },
 | |
|   XK_Armenian_VEV:               { code: 0x100054e, description: "(\u054E) ARMENIAN CAPITAL LETTER VEW" },
 | |
|   XK_Armenian_vev:               { code: 0x100057e, description: "(\u057E) ARMENIAN SMALL LETTER VEW" },
 | |
|   XK_Armenian_TYUN:              { code: 0x100054f, description: "(\u054F) ARMENIAN CAPITAL LETTER TIWN" },
 | |
|   XK_Armenian_tyun:              { code: 0x100057f, description: "(\u057F) ARMENIAN SMALL LETTER TIWN" },
 | |
|   XK_Armenian_RE:                { code: 0x1000550, description: "(\u0550) ARMENIAN CAPITAL LETTER REH" },
 | |
|   XK_Armenian_re:                { code: 0x1000580, description: "(\u0580) ARMENIAN SMALL LETTER REH" },
 | |
|   XK_Armenian_TSO:               { code: 0x1000551, description: "(\u0551) ARMENIAN CAPITAL LETTER CO" },
 | |
|   XK_Armenian_tso:               { code: 0x1000581, description: "(\u0581) ARMENIAN SMALL LETTER CO" },
 | |
|   XK_Armenian_VYUN:              { code: 0x1000552, description: "(\u0552) ARMENIAN CAPITAL LETTER YIWN" },
 | |
|   XK_Armenian_vyun:              { code: 0x1000582, description: "(\u0582) ARMENIAN SMALL LETTER YIWN" },
 | |
|   XK_Armenian_PYUR:              { code: 0x1000553, description: "(\u0553) ARMENIAN CAPITAL LETTER PIWR" },
 | |
|   XK_Armenian_pyur:              { code: 0x1000583, description: "(\u0583) ARMENIAN SMALL LETTER PIWR" },
 | |
|   XK_Armenian_KE:                { code: 0x1000554, description: "(\u0554) ARMENIAN CAPITAL LETTER KEH" },
 | |
|   XK_Armenian_ke:                { code: 0x1000584, description: "(\u0584) ARMENIAN SMALL LETTER KEH" },
 | |
|   XK_Armenian_O:                 { code: 0x1000555, description: "(\u0555) ARMENIAN CAPITAL LETTER OH" },
 | |
|   XK_Armenian_o:                 { code: 0x1000585, description: "(\u0585) ARMENIAN SMALL LETTER OH" },
 | |
|   XK_Armenian_FE:                { code: 0x1000556, description: "(\u0556) ARMENIAN CAPITAL LETTER FEH" },
 | |
|   XK_Armenian_fe:                { code: 0x1000586, description: "(\u0586) ARMENIAN SMALL LETTER FEH" },
 | |
|   XK_Armenian_apostrophe:        { code: 0x100055a, description: "(\u055A) ARMENIAN APOSTROPHE" },
 | |
| 
 | |
| 
 | |
| /*
 | |
|  * Georgian
 | |
|  */
 | |
| 
 | |
| // Group XK_GEORGIAN
 | |
|   XK_Georgian_an:                { code: 0x10010d0, description: "(\u10D0) GEORGIAN LETTER AN" },
 | |
|   XK_Georgian_ban:               { code: 0x10010d1, description: "(\u10D1) GEORGIAN LETTER BAN" },
 | |
|   XK_Georgian_gan:               { code: 0x10010d2, description: "(\u10D2) GEORGIAN LETTER GAN" },
 | |
|   XK_Georgian_don:               { code: 0x10010d3, description: "(\u10D3) GEORGIAN LETTER DON" },
 | |
|   XK_Georgian_en:                { code: 0x10010d4, description: "(\u10D4) GEORGIAN LETTER EN" },
 | |
|   XK_Georgian_vin:               { code: 0x10010d5, description: "(\u10D5) GEORGIAN LETTER VIN" },
 | |
|   XK_Georgian_zen:               { code: 0x10010d6, description: "(\u10D6) GEORGIAN LETTER ZEN" },
 | |
|   XK_Georgian_tan:               { code: 0x10010d7, description: "(\u10D7) GEORGIAN LETTER TAN" },
 | |
|   XK_Georgian_in:                { code: 0x10010d8, description: "(\u10D8) GEORGIAN LETTER IN" },
 | |
|   XK_Georgian_kan:               { code: 0x10010d9, description: "(\u10D9) GEORGIAN LETTER KAN" },
 | |
|   XK_Georgian_las:               { code: 0x10010da, description: "(\u10DA) GEORGIAN LETTER LAS" },
 | |
|   XK_Georgian_man:               { code: 0x10010db, description: "(\u10DB) GEORGIAN LETTER MAN" },
 | |
|   XK_Georgian_nar:               { code: 0x10010dc, description: "(\u10DC) GEORGIAN LETTER NAR" },
 | |
|   XK_Georgian_on:                { code: 0x10010dd, description: "(\u10DD) GEORGIAN LETTER ON" },
 | |
|   XK_Georgian_par:               { code: 0x10010de, description: "(\u10DE) GEORGIAN LETTER PAR" },
 | |
|   XK_Georgian_zhar:              { code: 0x10010df, description: "(\u10DF) GEORGIAN LETTER ZHAR" },
 | |
|   XK_Georgian_rae:               { code: 0x10010e0, description: "(\u10E0) GEORGIAN LETTER RAE" },
 | |
|   XK_Georgian_san:               { code: 0x10010e1, description: "(\u10E1) GEORGIAN LETTER SAN" },
 | |
|   XK_Georgian_tar:               { code: 0x10010e2, description: "(\u10E2) GEORGIAN LETTER TAR" },
 | |
|   XK_Georgian_un:                { code: 0x10010e3, description: "(\u10E3) GEORGIAN LETTER UN" },
 | |
|   XK_Georgian_phar:              { code: 0x10010e4, description: "(\u10E4) GEORGIAN LETTER PHAR" },
 | |
|   XK_Georgian_khar:              { code: 0x10010e5, description: "(\u10E5) GEORGIAN LETTER KHAR" },
 | |
|   XK_Georgian_ghan:              { code: 0x10010e6, description: "(\u10E6) GEORGIAN LETTER GHAN" },
 | |
|   XK_Georgian_qar:               { code: 0x10010e7, description: "(\u10E7) GEORGIAN LETTER QAR" },
 | |
|   XK_Georgian_shin:              { code: 0x10010e8, description: "(\u10E8) GEORGIAN LETTER SHIN" },
 | |
|   XK_Georgian_chin:              { code: 0x10010e9, description: "(\u10E9) GEORGIAN LETTER CHIN" },
 | |
|   XK_Georgian_can:               { code: 0x10010ea, description: "(\u10EA) GEORGIAN LETTER CAN" },
 | |
|   XK_Georgian_jil:               { code: 0x10010eb, description: "(\u10EB) GEORGIAN LETTER JIL" },
 | |
|   XK_Georgian_cil:               { code: 0x10010ec, description: "(\u10EC) GEORGIAN LETTER CIL" },
 | |
|   XK_Georgian_char:              { code: 0x10010ed, description: "(\u10ED) GEORGIAN LETTER CHAR" },
 | |
|   XK_Georgian_xan:               { code: 0x10010ee, description: "(\u10EE) GEORGIAN LETTER XAN" },
 | |
|   XK_Georgian_jhan:              { code: 0x10010ef, description: "(\u10EF) GEORGIAN LETTER JHAN" },
 | |
|   XK_Georgian_hae:               { code: 0x10010f0, description: "(\u10F0) GEORGIAN LETTER HAE" },
 | |
|   XK_Georgian_he:                { code: 0x10010f1, description: "(\u10F1) GEORGIAN LETTER HE" },
 | |
|   XK_Georgian_hie:               { code: 0x10010f2, description: "(\u10F2) GEORGIAN LETTER HIE" },
 | |
|   XK_Georgian_we:                { code: 0x10010f3, description: "(\u10F3) GEORGIAN LETTER WE" },
 | |
|   XK_Georgian_har:               { code: 0x10010f4, description: "(\u10F4) GEORGIAN LETTER HAR" },
 | |
|   XK_Georgian_hoe:               { code: 0x10010f5, description: "(\u10F5) GEORGIAN LETTER HOE" },
 | |
|   XK_Georgian_fi:                { code: 0x10010f6, description: "(\u10F6) GEORGIAN LETTER FI" },
 | |
| 
 | |
| 
 | |
| /*
 | |
|  * Azeri (and other Turkic or Caucasian languages)
 | |
|  */
 | |
| 
 | |
| // Group XK_CAUCASUS
 | |
| /* latin */
 | |
|   XK_Xabovedot:                  { code: 0x1001e8a, description: "(\u1E8A) LATIN CAPITAL LETTER X WITH DOT ABOVE" },
 | |
|   XK_Ibreve:                     { code: 0x100012c, description: "(\u012C) LATIN CAPITAL LETTER I WITH BREVE" },
 | |
|   XK_Zstroke:                    { code: 0x10001b5, description: "(\u01B5) LATIN CAPITAL LETTER Z WITH STROKE" },
 | |
|   XK_Gcaron:                     { code: 0x10001e6, description: "(\u01E6) LATIN CAPITAL LETTER G WITH CARON" },
 | |
|   XK_Ocaron:                     { code: 0x10001d1, description: "(\u01D2) LATIN CAPITAL LETTER O WITH CARON" },
 | |
|   XK_Obarred:                    { code: 0x100019f, description: "(\u019F) LATIN CAPITAL LETTER O WITH MIDDLE TILDE" },
 | |
|   XK_xabovedot:                  { code: 0x1001e8b, description: "(\u1E8B) LATIN SMALL LETTER X WITH DOT ABOVE" },
 | |
|   XK_ibreve:                     { code: 0x100012d, description: "(\u012D) LATIN SMALL LETTER I WITH BREVE" },
 | |
|   XK_zstroke:                    { code: 0x10001b6, description: "(\u01B6) LATIN SMALL LETTER Z WITH STROKE" },
 | |
|   XK_gcaron:                     { code: 0x10001e7, description: "(\u01E7) LATIN SMALL LETTER G WITH CARON" },
 | |
|   XK_ocaron:                     { code: 0x10001d2, description: "(\u01D2) LATIN SMALL LETTER O WITH CARON" },
 | |
|   XK_obarred:                    { code: 0x1000275, description: "(\u0275) LATIN SMALL LETTER BARRED O" },
 | |
|   XK_SCHWA:                      { code: 0x100018f, description: "(\u018F) LATIN CAPITAL LETTER SCHWA" },
 | |
|   XK_schwa:                      { code: 0x1000259, description: "(\u0259) LATIN SMALL LETTER SCHWA" },
 | |
|   XK_EZH:                        { code: 0x10001b7, description: "(\u01B7) LATIN CAPITAL LETTER EZH" },
 | |
|   XK_ezh:                        { code: 0x1000292, description: "(\u0292) LATIN SMALL LETTER EZH" },
 | |
| /* those are not really Caucasus */
 | |
| /* For Inupiak */
 | |
|   XK_Lbelowdot:                  { code: 0x1001e36, description: "(\u1E36) LATIN CAPITAL LETTER L WITH DOT BELOW" },
 | |
|   XK_lbelowdot:                  { code: 0x1001e37, description: "(\u1E37) LATIN SMALL LETTER L WITH DOT BELOW" },
 | |
| 
 | |
| 
 | |
| /*
 | |
|  * Vietnamese
 | |
|  */
 | |
|  
 | |
| // Group XK_VIETNAMESE
 | |
|   XK_Abelowdot:                  { code: 0x1001ea0, description: "(\u1EA0) LATIN CAPITAL LETTER A WITH DOT BELOW" },
 | |
|   XK_abelowdot:                  { code: 0x1001ea1, description: "(\u1EA1) LATIN SMALL LETTER A WITH DOT BELOW" },
 | |
|   XK_Ahook:                      { code: 0x1001ea2, description: "(\u1EA2) LATIN CAPITAL LETTER A WITH HOOK ABOVE" },
 | |
|   XK_ahook:                      { code: 0x1001ea3, description: "(\u1EA3) LATIN SMALL LETTER A WITH HOOK ABOVE" },
 | |
|   XK_Acircumflexacute:           { code: 0x1001ea4, description: "(\u1EA4) LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND ACUTE" },
 | |
|   XK_acircumflexacute:           { code: 0x1001ea5, description: "(\u1EA5) LATIN SMALL LETTER A WITH CIRCUMFLEX AND ACUTE" },
 | |
|   XK_Acircumflexgrave:           { code: 0x1001ea6, description: "(\u1EA6) LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND GRAVE" },
 | |
|   XK_acircumflexgrave:           { code: 0x1001ea7, description: "(\u1EA7) LATIN SMALL LETTER A WITH CIRCUMFLEX AND GRAVE" },
 | |
|   XK_Acircumflexhook:            { code: 0x1001ea8, description: "(\u1EA8) LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND HOOK ABOVE" },
 | |
|   XK_acircumflexhook:            { code: 0x1001ea9, description: "(\u1EA9) LATIN SMALL LETTER A WITH CIRCUMFLEX AND HOOK ABOVE" },
 | |
|   XK_Acircumflextilde:           { code: 0x1001eaa, description: "(\u1EAA) LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND TILDE" },
 | |
|   XK_acircumflextilde:           { code: 0x1001eab, description: "(\u1EAB) LATIN SMALL LETTER A WITH CIRCUMFLEX AND TILDE" },
 | |
|   XK_Acircumflexbelowdot:        { code: 0x1001eac, description: "(\u1EAC) LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND DOT BELOW" },
 | |
|   XK_acircumflexbelowdot:        { code: 0x1001ead, description: "(\u1EAD) LATIN SMALL LETTER A WITH CIRCUMFLEX AND DOT BELOW" },
 | |
|   XK_Abreveacute:                { code: 0x1001eae, description: "(\u1EAE) LATIN CAPITAL LETTER A WITH BREVE AND ACUTE" },
 | |
|   XK_abreveacute:                { code: 0x1001eaf, description: "(\u1EAF) LATIN SMALL LETTER A WITH BREVE AND ACUTE" },
 | |
|   XK_Abrevegrave:                { code: 0x1001eb0, description: "(\u1EB0) LATIN CAPITAL LETTER A WITH BREVE AND GRAVE" },
 | |
|   XK_abrevegrave:                { code: 0x1001eb1, description: "(\u1EB1) LATIN SMALL LETTER A WITH BREVE AND GRAVE" },
 | |
|   XK_Abrevehook:                 { code: 0x1001eb2, description: "(\u1EB2) LATIN CAPITAL LETTER A WITH BREVE AND HOOK ABOVE" },
 | |
|   XK_abrevehook:                 { code: 0x1001eb3, description: "(\u1EB3) LATIN SMALL LETTER A WITH BREVE AND HOOK ABOVE" },
 | |
|   XK_Abrevetilde:                { code: 0x1001eb4, description: "(\u1EB4) LATIN CAPITAL LETTER A WITH BREVE AND TILDE" },
 | |
|   XK_abrevetilde:                { code: 0x1001eb5, description: "(\u1EB5) LATIN SMALL LETTER A WITH BREVE AND TILDE" },
 | |
|   XK_Abrevebelowdot:             { code: 0x1001eb6, description: "(\u1EB6) LATIN CAPITAL LETTER A WITH BREVE AND DOT BELOW" },
 | |
|   XK_abrevebelowdot:             { code: 0x1001eb7, description: "(\u1EB7) LATIN SMALL LETTER A WITH BREVE AND DOT BELOW" },
 | |
|   XK_Ebelowdot:                  { code: 0x1001eb8, description: "(\u1EB8) LATIN CAPITAL LETTER E WITH DOT BELOW" },
 | |
|   XK_ebelowdot:                  { code: 0x1001eb9, description: "(\u1EB9) LATIN SMALL LETTER E WITH DOT BELOW" },
 | |
|   XK_Ehook:                      { code: 0x1001eba, description: "(\u1EBA) LATIN CAPITAL LETTER E WITH HOOK ABOVE" },
 | |
|   XK_ehook:                      { code: 0x1001ebb, description: "(\u1EBB) LATIN SMALL LETTER E WITH HOOK ABOVE" },
 | |
|   XK_Etilde:                     { code: 0x1001ebc, description: "(\u1EBC) LATIN CAPITAL LETTER E WITH TILDE" },
 | |
|   XK_etilde:                     { code: 0x1001ebd, description: "(\u1EBD) LATIN SMALL LETTER E WITH TILDE" },
 | |
|   XK_Ecircumflexacute:           { code: 0x1001ebe, description: "(\u1EBE) LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND ACUTE" },
 | |
|   XK_ecircumflexacute:           { code: 0x1001ebf, description: "(\u1EBF) LATIN SMALL LETTER E WITH CIRCUMFLEX AND ACUTE" },
 | |
|   XK_Ecircumflexgrave:           { code: 0x1001ec0, description: "(\u1EC0) LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND GRAVE" },
 | |
|   XK_ecircumflexgrave:           { code: 0x1001ec1, description: "(\u1EC1) LATIN SMALL LETTER E WITH CIRCUMFLEX AND GRAVE" },
 | |
|   XK_Ecircumflexhook:            { code: 0x1001ec2, description: "(\u1EC2) LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND HOOK ABOVE" },
 | |
|   XK_ecircumflexhook:            { code: 0x1001ec3, description: "(\u1EC3) LATIN SMALL LETTER E WITH CIRCUMFLEX AND HOOK ABOVE" },
 | |
|   XK_Ecircumflextilde:           { code: 0x1001ec4, description: "(\u1EC4) LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND TILDE" },
 | |
|   XK_ecircumflextilde:           { code: 0x1001ec5, description: "(\u1EC5) LATIN SMALL LETTER E WITH CIRCUMFLEX AND TILDE" },
 | |
|   XK_Ecircumflexbelowdot:        { code: 0x1001ec6, description: "(\u1EC6) LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND DOT BELOW" },
 | |
|   XK_ecircumflexbelowdot:        { code: 0x1001ec7, description: "(\u1EC7) LATIN SMALL LETTER E WITH CIRCUMFLEX AND DOT BELOW" },
 | |
|   XK_Ihook:                      { code: 0x1001ec8, description: "(\u1EC8) LATIN CAPITAL LETTER I WITH HOOK ABOVE" },
 | |
|   XK_ihook:                      { code: 0x1001ec9, description: "(\u1EC9) LATIN SMALL LETTER I WITH HOOK ABOVE" },
 | |
|   XK_Ibelowdot:                  { code: 0x1001eca, description: "(\u1ECA) LATIN CAPITAL LETTER I WITH DOT BELOW" },
 | |
|   XK_ibelowdot:                  { code: 0x1001ecb, description: "(\u1ECB) LATIN SMALL LETTER I WITH DOT BELOW" },
 | |
|   XK_Obelowdot:                  { code: 0x1001ecc, description: "(\u1ECC) LATIN CAPITAL LETTER O WITH DOT BELOW" },
 | |
|   XK_obelowdot:                  { code: 0x1001ecd, description: "(\u1ECD) LATIN SMALL LETTER O WITH DOT BELOW" },
 | |
|   XK_Ohook:                      { code: 0x1001ece, description: "(\u1ECE) LATIN CAPITAL LETTER O WITH HOOK ABOVE" },
 | |
|   XK_ohook:                      { code: 0x1001ecf, description: "(\u1ECF) LATIN SMALL LETTER O WITH HOOK ABOVE" },
 | |
|   XK_Ocircumflexacute:           { code: 0x1001ed0, description: "(\u1ED0) LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND ACUTE" },
 | |
|   XK_ocircumflexacute:           { code: 0x1001ed1, description: "(\u1ED1) LATIN SMALL LETTER O WITH CIRCUMFLEX AND ACUTE" },
 | |
|   XK_Ocircumflexgrave:           { code: 0x1001ed2, description: "(\u1ED2) LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND GRAVE" },
 | |
|   XK_ocircumflexgrave:           { code: 0x1001ed3, description: "(\u1ED3) LATIN SMALL LETTER O WITH CIRCUMFLEX AND GRAVE" },
 | |
|   XK_Ocircumflexhook:            { code: 0x1001ed4, description: "(\u1ED4) LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND HOOK ABOVE" },
 | |
|   XK_ocircumflexhook:            { code: 0x1001ed5, description: "(\u1ED5) LATIN SMALL LETTER O WITH CIRCUMFLEX AND HOOK ABOVE" },
 | |
|   XK_Ocircumflextilde:           { code: 0x1001ed6, description: "(\u1ED6) LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND TILDE" },
 | |
|   XK_ocircumflextilde:           { code: 0x1001ed7, description: "(\u1ED7) LATIN SMALL LETTER O WITH CIRCUMFLEX AND TILDE" },
 | |
|   XK_Ocircumflexbelowdot:        { code: 0x1001ed8, description: "(\u1ED8) LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND DOT BELOW" },
 | |
|   XK_ocircumflexbelowdot:        { code: 0x1001ed9, description: "(\u1ED9) LATIN SMALL LETTER O WITH CIRCUMFLEX AND DOT BELOW" },
 | |
|   XK_Ohornacute:                 { code: 0x1001eda, description: "(\u1EDA) LATIN CAPITAL LETTER O WITH HORN AND ACUTE" },
 | |
|   XK_ohornacute:                 { code: 0x1001edb, description: "(\u1EDB) LATIN SMALL LETTER O WITH HORN AND ACUTE" },
 | |
|   XK_Ohorngrave:                 { code: 0x1001edc, description: "(\u1EDC) LATIN CAPITAL LETTER O WITH HORN AND GRAVE" },
 | |
|   XK_ohorngrave:                 { code: 0x1001edd, description: "(\u1EDD) LATIN SMALL LETTER O WITH HORN AND GRAVE" },
 | |
|   XK_Ohornhook:                  { code: 0x1001ede, description: "(\u1EDE) LATIN CAPITAL LETTER O WITH HORN AND HOOK ABOVE" },
 | |
|   XK_ohornhook:                  { code: 0x1001edf, description: "(\u1EDF) LATIN SMALL LETTER O WITH HORN AND HOOK ABOVE" },
 | |
|   XK_Ohorntilde:                 { code: 0x1001ee0, description: "(\u1EE0) LATIN CAPITAL LETTER O WITH HORN AND TILDE" },
 | |
|   XK_ohorntilde:                 { code: 0x1001ee1, description: "(\u1EE1) LATIN SMALL LETTER O WITH HORN AND TILDE" },
 | |
|   XK_Ohornbelowdot:              { code: 0x1001ee2, description: "(\u1EE2) LATIN CAPITAL LETTER O WITH HORN AND DOT BELOW" },
 | |
|   XK_ohornbelowdot:              { code: 0x1001ee3, description: "(\u1EE3) LATIN SMALL LETTER O WITH HORN AND DOT BELOW" },
 | |
|   XK_Ubelowdot:                  { code: 0x1001ee4, description: "(\u1EE4) LATIN CAPITAL LETTER U WITH DOT BELOW" },
 | |
|   XK_ubelowdot:                  { code: 0x1001ee5, description: "(\u1EE5) LATIN SMALL LETTER U WITH DOT BELOW" },
 | |
|   XK_Uhook:                      { code: 0x1001ee6, description: "(\u1EE6) LATIN CAPITAL LETTER U WITH HOOK ABOVE" },
 | |
|   XK_uhook:                      { code: 0x1001ee7, description: "(\u1EE7) LATIN SMALL LETTER U WITH HOOK ABOVE" },
 | |
|   XK_Uhornacute:                 { code: 0x1001ee8, description: "(\u1EE8) LATIN CAPITAL LETTER U WITH HORN AND ACUTE" },
 | |
|   XK_uhornacute:                 { code: 0x1001ee9, description: "(\u1EE9) LATIN SMALL LETTER U WITH HORN AND ACUTE" },
 | |
|   XK_Uhorngrave:                 { code: 0x1001eea, description: "(\u1EEA) LATIN CAPITAL LETTER U WITH HORN AND GRAVE" },
 | |
|   XK_uhorngrave:                 { code: 0x1001eeb, description: "(\u1EEB) LATIN SMALL LETTER U WITH HORN AND GRAVE" },
 | |
|   XK_Uhornhook:                  { code: 0x1001eec, description: "(\u1EEC) LATIN CAPITAL LETTER U WITH HORN AND HOOK ABOVE" },
 | |
|   XK_uhornhook:                  { code: 0x1001eed, description: "(\u1EED) LATIN SMALL LETTER U WITH HORN AND HOOK ABOVE" },
 | |
|   XK_Uhorntilde:                 { code: 0x1001eee, description: "(\u1EEE) LATIN CAPITAL LETTER U WITH HORN AND TILDE" },
 | |
|   XK_uhorntilde:                 { code: 0x1001eef, description: "(\u1EEF) LATIN SMALL LETTER U WITH HORN AND TILDE" },
 | |
|   XK_Uhornbelowdot:              { code: 0x1001ef0, description: "(\u1EF0) LATIN CAPITAL LETTER U WITH HORN AND DOT BELOW" },
 | |
|   XK_uhornbelowdot:              { code: 0x1001ef1, description: "(\u1EF1) LATIN SMALL LETTER U WITH HORN AND DOT BELOW" },
 | |
|   XK_Ybelowdot:                  { code: 0x1001ef4, description: "(\u1EF4) LATIN CAPITAL LETTER Y WITH DOT BELOW" },
 | |
|   XK_ybelowdot:                  { code: 0x1001ef5, description: "(\u1EF5) LATIN SMALL LETTER Y WITH DOT BELOW" },
 | |
|   XK_Yhook:                      { code: 0x1001ef6, description: "(\u1EF6) LATIN CAPITAL LETTER Y WITH HOOK ABOVE" },
 | |
|   XK_yhook:                      { code: 0x1001ef7, description: "(\u1EF7) LATIN SMALL LETTER Y WITH HOOK ABOVE" },
 | |
|   XK_Ytilde:                     { code: 0x1001ef8, description: "(\u1EF8) LATIN CAPITAL LETTER Y WITH TILDE" },
 | |
|   XK_ytilde:                     { code: 0x1001ef9, description: "(\u1EF9) LATIN SMALL LETTER Y WITH TILDE" },
 | |
|   XK_Ohorn:                      { code: 0x10001a0, description: "(\u01A0) LATIN CAPITAL LETTER O WITH HORN" },
 | |
|   XK_ohorn:                      { code: 0x10001a1, description: "(\u01A1) LATIN SMALL LETTER O WITH HORN" },
 | |
|   XK_Uhorn:                      { code: 0x10001af, description: "(\u01AF) LATIN CAPITAL LETTER U WITH HORN" },
 | |
|   XK_uhorn:                      { code: 0x10001b0, description: "(\u01B0) LATIN SMALL LETTER U WITH HORN" },
 | |
| 
 | |
| 
 | |
| 
 | |
| // Group XK_CURRENCY
 | |
|   XK_EcuSign:                    { code: 0x10020a0, description: "(\u20A0) EURO-CURRENCY SIGN" },
 | |
|   XK_ColonSign:                  { code: 0x10020a1, description: "(\u20A1) COLON SIGN" },
 | |
|   XK_CruzeiroSign:               { code: 0x10020a2, description: "(\u20A2) CRUZEIRO SIGN" },
 | |
|   XK_FFrancSign:                 { code: 0x10020a3, description: "(\u20A3) FRENCH FRANC SIGN" },
 | |
|   XK_LiraSign:                   { code: 0x10020a4, description: "(\u20A4) LIRA SIGN" },
 | |
|   XK_MillSign:                   { code: 0x10020a5, description: "(\u20A5) MILL SIGN" },
 | |
|   XK_NairaSign:                  { code: 0x10020a6, description: "(\u20A6) NAIRA SIGN" },
 | |
|   XK_PesetaSign:                 { code: 0x10020a7, description: "(\u20A7) PESETA SIGN" },
 | |
|   XK_RupeeSign:                  { code: 0x10020a8, description: "(\u20A8) RUPEE SIGN" },
 | |
|   XK_WonSign:                    { code: 0x10020a9, description: "(\u20A9) WON SIGN" },
 | |
|   XK_NewSheqelSign:              { code: 0x10020aa, description: "(\u20AA) NEW SHEQEL SIGN" },
 | |
|   XK_DongSign:                   { code: 0x10020ab, description: "(\u20AB) DONG SIGN" },
 | |
|   XK_EuroSign:                      { code: 0x20ac, description: "(\u20AC) EURO SIGN" },
 | |
| 
 | |
| 
 | |
| // Group XK_MATHEMATICAL
 | |
| /* one, two and three are defined above. */
 | |
|   XK_zerosuperior:               { code: 0x1002070, description: "(\u2070) SUPERSCRIPT ZERO" },
 | |
|   XK_foursuperior:               { code: 0x1002074, description: "(\u2074) SUPERSCRIPT FOUR" },
 | |
|   XK_fivesuperior:               { code: 0x1002075, description: "(\u2075) SUPERSCRIPT FIVE" },
 | |
|   XK_sixsuperior:                { code: 0x1002076, description: "(\u2076) SUPERSCRIPT SIX" },
 | |
|   XK_sevensuperior:              { code: 0x1002077, description: "(\u2077) SUPERSCRIPT SEVEN" },
 | |
|   XK_eightsuperior:              { code: 0x1002078, description: "(\u2078) SUPERSCRIPT EIGHT" },
 | |
|   XK_ninesuperior:               { code: 0x1002079, description: "(\u2079) SUPERSCRIPT NINE" },
 | |
|   XK_zerosubscript:              { code: 0x1002080, description: "(\u2080) SUBSCRIPT ZERO" },
 | |
|   XK_onesubscript:               { code: 0x1002081, description: "(\u2081) SUBSCRIPT ONE" },
 | |
|   XK_twosubscript:               { code: 0x1002082, description: "(\u2082) SUBSCRIPT TWO" },
 | |
|   XK_threesubscript:             { code: 0x1002083, description: "(\u2083) SUBSCRIPT THREE" },
 | |
|   XK_foursubscript:              { code: 0x1002084, description: "(\u2084) SUBSCRIPT FOUR" },
 | |
|   XK_fivesubscript:              { code: 0x1002085, description: "(\u2085) SUBSCRIPT FIVE" },
 | |
|   XK_sixsubscript:               { code: 0x1002086, description: "(\u2086) SUBSCRIPT SIX" },
 | |
|   XK_sevensubscript:             { code: 0x1002087, description: "(\u2087) SUBSCRIPT SEVEN" },
 | |
|   XK_eightsubscript:             { code: 0x1002088, description: "(\u2088) SUBSCRIPT EIGHT" },
 | |
|   XK_ninesubscript:              { code: 0x1002089, description: "(\u2089) SUBSCRIPT NINE" },
 | |
|   XK_partdifferential:           { code: 0x1002202, description: "(\u2202) PARTIAL DIFFERENTIAL" },
 | |
|   XK_emptyset:                   { code: 0x1002205, description: "(\u2205) NULL SET" },
 | |
|   XK_elementof:                  { code: 0x1002208, description: "(\u2208) ELEMENT OF" },
 | |
|   XK_notelementof:               { code: 0x1002209, description: "(\u2209) NOT AN ELEMENT OF" },
 | |
|   XK_containsas:                 { code: 0x100220B, description: "(\u220B) CONTAINS AS MEMBER" },
 | |
|   XK_squareroot:                 { code: 0x100221A, description: "(\u221A) SQUARE ROOT" },
 | |
|   XK_cuberoot:                   { code: 0x100221B, description: "(\u221B) CUBE ROOT" },
 | |
|   XK_fourthroot:                 { code: 0x100221C, description: "(\u221C) FOURTH ROOT" },
 | |
|   XK_dintegral:                  { code: 0x100222C, description: "(\u222C) DOUBLE INTEGRAL" },
 | |
|   XK_tintegral:                  { code: 0x100222D, description: "(\u222D) TRIPLE INTEGRAL" },
 | |
|   XK_because:                    { code: 0x1002235, description: "(\u2235) BECAUSE" },
 | |
|   XK_approxeq:                   { code: 0x1002248, description: "(\u2245) ALMOST EQUAL TO" },
 | |
|   XK_notapproxeq:                { code: 0x1002247, description: "(\u2247) NOT ALMOST EQUAL TO" },
 | |
|   XK_notidentical:               { code: 0x1002262, description: "(\u2262) NOT IDENTICAL TO" },
 | |
|   XK_stricteq:                   { code: 0x1002263, description: "(\u2263) STRICTLY EQUIVALENT TO" },          
 | |
| 
 | |
| 
 | |
| // Group XK_BRAILLE
 | |
|   XK_braille_dot_1:                 { code: 0xfff1, description: null },
 | |
|   XK_braille_dot_2:                 { code: 0xfff2, description: null },
 | |
|   XK_braille_dot_3:                 { code: 0xfff3, description: null },
 | |
|   XK_braille_dot_4:                 { code: 0xfff4, description: null },
 | |
|   XK_braille_dot_5:                 { code: 0xfff5, description: null },
 | |
|   XK_braille_dot_6:                 { code: 0xfff6, description: null },
 | |
|   XK_braille_dot_7:                 { code: 0xfff7, description: null },
 | |
|   XK_braille_dot_8:                 { code: 0xfff8, description: null },
 | |
|   XK_braille_dot_9:                 { code: 0xfff9, description: null },
 | |
|   XK_braille_dot_10:                { code: 0xfffa, description: null },
 | |
|   XK_braille_blank:              { code: 0x1002800, description: "(\u2800) BRAILLE PATTERN BLANK" },
 | |
|   XK_braille_dots_1:             { code: 0x1002801, description: "(\u2801) BRAILLE PATTERN DOTS-1" },
 | |
|   XK_braille_dots_2:             { code: 0x1002802, description: "(\u2802) BRAILLE PATTERN DOTS-2" },
 | |
|   XK_braille_dots_12:            { code: 0x1002803, description: "(\u2803) BRAILLE PATTERN DOTS-12" },
 | |
|   XK_braille_dots_3:             { code: 0x1002804, description: "(\u2804) BRAILLE PATTERN DOTS-3" },
 | |
|   XK_braille_dots_13:            { code: 0x1002805, description: "(\u2805) BRAILLE PATTERN DOTS-13" },
 | |
|   XK_braille_dots_23:            { code: 0x1002806, description: "(\u2806) BRAILLE PATTERN DOTS-23" },
 | |
|   XK_braille_dots_123:           { code: 0x1002807, description: "(\u2807) BRAILLE PATTERN DOTS-123" },
 | |
|   XK_braille_dots_4:             { code: 0x1002808, description: "(\u2808) BRAILLE PATTERN DOTS-4" },
 | |
|   XK_braille_dots_14:            { code: 0x1002809, description: "(\u2809) BRAILLE PATTERN DOTS-14" },
 | |
|   XK_braille_dots_24:            { code: 0x100280a, description: "(\u280a) BRAILLE PATTERN DOTS-24" },
 | |
|   XK_braille_dots_124:           { code: 0x100280b, description: "(\u280b) BRAILLE PATTERN DOTS-124" },
 | |
|   XK_braille_dots_34:            { code: 0x100280c, description: "(\u280c) BRAILLE PATTERN DOTS-34" },
 | |
|   XK_braille_dots_134:           { code: 0x100280d, description: "(\u280d) BRAILLE PATTERN DOTS-134" },
 | |
|   XK_braille_dots_234:           { code: 0x100280e, description: "(\u280e) BRAILLE PATTERN DOTS-234" },
 | |
|   XK_braille_dots_1234:          { code: 0x100280f, description: "(\u280f) BRAILLE PATTERN DOTS-1234" },
 | |
|   XK_braille_dots_5:             { code: 0x1002810, description: "(\u2810) BRAILLE PATTERN DOTS-5" },
 | |
|   XK_braille_dots_15:            { code: 0x1002811, description: "(\u2811) BRAILLE PATTERN DOTS-15" },
 | |
|   XK_braille_dots_25:            { code: 0x1002812, description: "(\u2812) BRAILLE PATTERN DOTS-25" },
 | |
|   XK_braille_dots_125:           { code: 0x1002813, description: "(\u2813) BRAILLE PATTERN DOTS-125" },
 | |
|   XK_braille_dots_35:            { code: 0x1002814, description: "(\u2814) BRAILLE PATTERN DOTS-35" },
 | |
|   XK_braille_dots_135:           { code: 0x1002815, description: "(\u2815) BRAILLE PATTERN DOTS-135" },
 | |
|   XK_braille_dots_235:           { code: 0x1002816, description: "(\u2816) BRAILLE PATTERN DOTS-235" },
 | |
|   XK_braille_dots_1235:          { code: 0x1002817, description: "(\u2817) BRAILLE PATTERN DOTS-1235" },
 | |
|   XK_braille_dots_45:            { code: 0x1002818, description: "(\u2818) BRAILLE PATTERN DOTS-45" },
 | |
|   XK_braille_dots_145:           { code: 0x1002819, description: "(\u2819) BRAILLE PATTERN DOTS-145" },
 | |
|   XK_braille_dots_245:           { code: 0x100281a, description: "(\u281a) BRAILLE PATTERN DOTS-245" },
 | |
|   XK_braille_dots_1245:          { code: 0x100281b, description: "(\u281b) BRAILLE PATTERN DOTS-1245" },
 | |
|   XK_braille_dots_345:           { code: 0x100281c, description: "(\u281c) BRAILLE PATTERN DOTS-345" },
 | |
|   XK_braille_dots_1345:          { code: 0x100281d, description: "(\u281d) BRAILLE PATTERN DOTS-1345" },
 | |
|   XK_braille_dots_2345:          { code: 0x100281e, description: "(\u281e) BRAILLE PATTERN DOTS-2345" },
 | |
|   XK_braille_dots_12345:         { code: 0x100281f, description: "(\u281f) BRAILLE PATTERN DOTS-12345" },
 | |
|   XK_braille_dots_6:             { code: 0x1002820, description: "(\u2820) BRAILLE PATTERN DOTS-6" },
 | |
|   XK_braille_dots_16:            { code: 0x1002821, description: "(\u2821) BRAILLE PATTERN DOTS-16" },
 | |
|   XK_braille_dots_26:            { code: 0x1002822, description: "(\u2822) BRAILLE PATTERN DOTS-26" },
 | |
|   XK_braille_dots_126:           { code: 0x1002823, description: "(\u2823) BRAILLE PATTERN DOTS-126" },
 | |
|   XK_braille_dots_36:            { code: 0x1002824, description: "(\u2824) BRAILLE PATTERN DOTS-36" },
 | |
|   XK_braille_dots_136:           { code: 0x1002825, description: "(\u2825) BRAILLE PATTERN DOTS-136" },
 | |
|   XK_braille_dots_236:           { code: 0x1002826, description: "(\u2826) BRAILLE PATTERN DOTS-236" },
 | |
|   XK_braille_dots_1236:          { code: 0x1002827, description: "(\u2827) BRAILLE PATTERN DOTS-1236" },
 | |
|   XK_braille_dots_46:            { code: 0x1002828, description: "(\u2828) BRAILLE PATTERN DOTS-46" },
 | |
|   XK_braille_dots_146:           { code: 0x1002829, description: "(\u2829) BRAILLE PATTERN DOTS-146" },
 | |
|   XK_braille_dots_246:           { code: 0x100282a, description: "(\u282a) BRAILLE PATTERN DOTS-246" },
 | |
|   XK_braille_dots_1246:          { code: 0x100282b, description: "(\u282b) BRAILLE PATTERN DOTS-1246" },
 | |
|   XK_braille_dots_346:           { code: 0x100282c, description: "(\u282c) BRAILLE PATTERN DOTS-346" },
 | |
|   XK_braille_dots_1346:          { code: 0x100282d, description: "(\u282d) BRAILLE PATTERN DOTS-1346" },
 | |
|   XK_braille_dots_2346:          { code: 0x100282e, description: "(\u282e) BRAILLE PATTERN DOTS-2346" },
 | |
|   XK_braille_dots_12346:         { code: 0x100282f, description: "(\u282f) BRAILLE PATTERN DOTS-12346" },
 | |
|   XK_braille_dots_56:            { code: 0x1002830, description: "(\u2830) BRAILLE PATTERN DOTS-56" },
 | |
|   XK_braille_dots_156:           { code: 0x1002831, description: "(\u2831) BRAILLE PATTERN DOTS-156" },
 | |
|   XK_braille_dots_256:           { code: 0x1002832, description: "(\u2832) BRAILLE PATTERN DOTS-256" },
 | |
|   XK_braille_dots_1256:          { code: 0x1002833, description: "(\u2833) BRAILLE PATTERN DOTS-1256" },
 | |
|   XK_braille_dots_356:           { code: 0x1002834, description: "(\u2834) BRAILLE PATTERN DOTS-356" },
 | |
|   XK_braille_dots_1356:          { code: 0x1002835, description: "(\u2835) BRAILLE PATTERN DOTS-1356" },
 | |
|   XK_braille_dots_2356:          { code: 0x1002836, description: "(\u2836) BRAILLE PATTERN DOTS-2356" },
 | |
|   XK_braille_dots_12356:         { code: 0x1002837, description: "(\u2837) BRAILLE PATTERN DOTS-12356" },
 | |
|   XK_braille_dots_456:           { code: 0x1002838, description: "(\u2838) BRAILLE PATTERN DOTS-456" },
 | |
|   XK_braille_dots_1456:          { code: 0x1002839, description: "(\u2839) BRAILLE PATTERN DOTS-1456" },
 | |
|   XK_braille_dots_2456:          { code: 0x100283a, description: "(\u283a) BRAILLE PATTERN DOTS-2456" },
 | |
|   XK_braille_dots_12456:         { code: 0x100283b, description: "(\u283b) BRAILLE PATTERN DOTS-12456" },
 | |
|   XK_braille_dots_3456:          { code: 0x100283c, description: "(\u283c) BRAILLE PATTERN DOTS-3456" },
 | |
|   XK_braille_dots_13456:         { code: 0x100283d, description: "(\u283d) BRAILLE PATTERN DOTS-13456" },
 | |
|   XK_braille_dots_23456:         { code: 0x100283e, description: "(\u283e) BRAILLE PATTERN DOTS-23456" },
 | |
|   XK_braille_dots_123456:        { code: 0x100283f, description: "(\u283f) BRAILLE PATTERN DOTS-123456" },
 | |
|   XK_braille_dots_7:             { code: 0x1002840, description: "(\u2840) BRAILLE PATTERN DOTS-7" },
 | |
|   XK_braille_dots_17:            { code: 0x1002841, description: "(\u2841) BRAILLE PATTERN DOTS-17" },
 | |
|   XK_braille_dots_27:            { code: 0x1002842, description: "(\u2842) BRAILLE PATTERN DOTS-27" },
 | |
|   XK_braille_dots_127:           { code: 0x1002843, description: "(\u2843) BRAILLE PATTERN DOTS-127" },
 | |
|   XK_braille_dots_37:            { code: 0x1002844, description: "(\u2844) BRAILLE PATTERN DOTS-37" },
 | |
|   XK_braille_dots_137:           { code: 0x1002845, description: "(\u2845) BRAILLE PATTERN DOTS-137" },
 | |
|   XK_braille_dots_237:           { code: 0x1002846, description: "(\u2846) BRAILLE PATTERN DOTS-237" },
 | |
|   XK_braille_dots_1237:          { code: 0x1002847, description: "(\u2847) BRAILLE PATTERN DOTS-1237" },
 | |
|   XK_braille_dots_47:            { code: 0x1002848, description: "(\u2848) BRAILLE PATTERN DOTS-47" },
 | |
|   XK_braille_dots_147:           { code: 0x1002849, description: "(\u2849) BRAILLE PATTERN DOTS-147" },
 | |
|   XK_braille_dots_247:           { code: 0x100284a, description: "(\u284a) BRAILLE PATTERN DOTS-247" },
 | |
|   XK_braille_dots_1247:          { code: 0x100284b, description: "(\u284b) BRAILLE PATTERN DOTS-1247" },
 | |
|   XK_braille_dots_347:           { code: 0x100284c, description: "(\u284c) BRAILLE PATTERN DOTS-347" },
 | |
|   XK_braille_dots_1347:          { code: 0x100284d, description: "(\u284d) BRAILLE PATTERN DOTS-1347" },
 | |
|   XK_braille_dots_2347:          { code: 0x100284e, description: "(\u284e) BRAILLE PATTERN DOTS-2347" },
 | |
|   XK_braille_dots_12347:         { code: 0x100284f, description: "(\u284f) BRAILLE PATTERN DOTS-12347" },
 | |
|   XK_braille_dots_57:            { code: 0x1002850, description: "(\u2850) BRAILLE PATTERN DOTS-57" },
 | |
|   XK_braille_dots_157:           { code: 0x1002851, description: "(\u2851) BRAILLE PATTERN DOTS-157" },
 | |
|   XK_braille_dots_257:           { code: 0x1002852, description: "(\u2852) BRAILLE PATTERN DOTS-257" },
 | |
|   XK_braille_dots_1257:          { code: 0x1002853, description: "(\u2853) BRAILLE PATTERN DOTS-1257" },
 | |
|   XK_braille_dots_357:           { code: 0x1002854, description: "(\u2854) BRAILLE PATTERN DOTS-357" },
 | |
|   XK_braille_dots_1357:          { code: 0x1002855, description: "(\u2855) BRAILLE PATTERN DOTS-1357" },
 | |
|   XK_braille_dots_2357:          { code: 0x1002856, description: "(\u2856) BRAILLE PATTERN DOTS-2357" },
 | |
|   XK_braille_dots_12357:         { code: 0x1002857, description: "(\u2857) BRAILLE PATTERN DOTS-12357" },
 | |
|   XK_braille_dots_457:           { code: 0x1002858, description: "(\u2858) BRAILLE PATTERN DOTS-457" },
 | |
|   XK_braille_dots_1457:          { code: 0x1002859, description: "(\u2859) BRAILLE PATTERN DOTS-1457" },
 | |
|   XK_braille_dots_2457:          { code: 0x100285a, description: "(\u285a) BRAILLE PATTERN DOTS-2457" },
 | |
|   XK_braille_dots_12457:         { code: 0x100285b, description: "(\u285b) BRAILLE PATTERN DOTS-12457" },
 | |
|   XK_braille_dots_3457:          { code: 0x100285c, description: "(\u285c) BRAILLE PATTERN DOTS-3457" },
 | |
|   XK_braille_dots_13457:         { code: 0x100285d, description: "(\u285d) BRAILLE PATTERN DOTS-13457" },
 | |
|   XK_braille_dots_23457:         { code: 0x100285e, description: "(\u285e) BRAILLE PATTERN DOTS-23457" },
 | |
|   XK_braille_dots_123457:        { code: 0x100285f, description: "(\u285f) BRAILLE PATTERN DOTS-123457" },
 | |
|   XK_braille_dots_67:            { code: 0x1002860, description: "(\u2860) BRAILLE PATTERN DOTS-67" },
 | |
|   XK_braille_dots_167:           { code: 0x1002861, description: "(\u2861) BRAILLE PATTERN DOTS-167" },
 | |
|   XK_braille_dots_267:           { code: 0x1002862, description: "(\u2862) BRAILLE PATTERN DOTS-267" },
 | |
|   XK_braille_dots_1267:          { code: 0x1002863, description: "(\u2863) BRAILLE PATTERN DOTS-1267" },
 | |
|   XK_braille_dots_367:           { code: 0x1002864, description: "(\u2864) BRAILLE PATTERN DOTS-367" },
 | |
|   XK_braille_dots_1367:          { code: 0x1002865, description: "(\u2865) BRAILLE PATTERN DOTS-1367" },
 | |
|   XK_braille_dots_2367:          { code: 0x1002866, description: "(\u2866) BRAILLE PATTERN DOTS-2367" },
 | |
|   XK_braille_dots_12367:         { code: 0x1002867, description: "(\u2867) BRAILLE PATTERN DOTS-12367" },
 | |
|   XK_braille_dots_467:           { code: 0x1002868, description: "(\u2868) BRAILLE PATTERN DOTS-467" },
 | |
|   XK_braille_dots_1467:          { code: 0x1002869, description: "(\u2869) BRAILLE PATTERN DOTS-1467" },
 | |
|   XK_braille_dots_2467:          { code: 0x100286a, description: "(\u286a) BRAILLE PATTERN DOTS-2467" },
 | |
|   XK_braille_dots_12467:         { code: 0x100286b, description: "(\u286b) BRAILLE PATTERN DOTS-12467" },
 | |
|   XK_braille_dots_3467:          { code: 0x100286c, description: "(\u286c) BRAILLE PATTERN DOTS-3467" },
 | |
|   XK_braille_dots_13467:         { code: 0x100286d, description: "(\u286d) BRAILLE PATTERN DOTS-13467" },
 | |
|   XK_braille_dots_23467:         { code: 0x100286e, description: "(\u286e) BRAILLE PATTERN DOTS-23467" },
 | |
|   XK_braille_dots_123467:        { code: 0x100286f, description: "(\u286f) BRAILLE PATTERN DOTS-123467" },
 | |
|   XK_braille_dots_567:           { code: 0x1002870, description: "(\u2870) BRAILLE PATTERN DOTS-567" },
 | |
|   XK_braille_dots_1567:          { code: 0x1002871, description: "(\u2871) BRAILLE PATTERN DOTS-1567" },
 | |
|   XK_braille_dots_2567:          { code: 0x1002872, description: "(\u2872) BRAILLE PATTERN DOTS-2567" },
 | |
|   XK_braille_dots_12567:         { code: 0x1002873, description: "(\u2873) BRAILLE PATTERN DOTS-12567" },
 | |
|   XK_braille_dots_3567:          { code: 0x1002874, description: "(\u2874) BRAILLE PATTERN DOTS-3567" },
 | |
|   XK_braille_dots_13567:         { code: 0x1002875, description: "(\u2875) BRAILLE PATTERN DOTS-13567" },
 | |
|   XK_braille_dots_23567:         { code: 0x1002876, description: "(\u2876) BRAILLE PATTERN DOTS-23567" },
 | |
|   XK_braille_dots_123567:        { code: 0x1002877, description: "(\u2877) BRAILLE PATTERN DOTS-123567" },
 | |
|   XK_braille_dots_4567:          { code: 0x1002878, description: "(\u2878) BRAILLE PATTERN DOTS-4567" },
 | |
|   XK_braille_dots_14567:         { code: 0x1002879, description: "(\u2879) BRAILLE PATTERN DOTS-14567" },
 | |
|   XK_braille_dots_24567:         { code: 0x100287a, description: "(\u287a) BRAILLE PATTERN DOTS-24567" },
 | |
|   XK_braille_dots_124567:        { code: 0x100287b, description: "(\u287b) BRAILLE PATTERN DOTS-124567" },
 | |
|   XK_braille_dots_34567:         { code: 0x100287c, description: "(\u287c) BRAILLE PATTERN DOTS-34567" },
 | |
|   XK_braille_dots_134567:        { code: 0x100287d, description: "(\u287d) BRAILLE PATTERN DOTS-134567" },
 | |
|   XK_braille_dots_234567:        { code: 0x100287e, description: "(\u287e) BRAILLE PATTERN DOTS-234567" },
 | |
|   XK_braille_dots_1234567:       { code: 0x100287f, description: "(\u287f) BRAILLE PATTERN DOTS-1234567" },
 | |
|   XK_braille_dots_8:             { code: 0x1002880, description: "(\u2880) BRAILLE PATTERN DOTS-8" },
 | |
|   XK_braille_dots_18:            { code: 0x1002881, description: "(\u2881) BRAILLE PATTERN DOTS-18" },
 | |
|   XK_braille_dots_28:            { code: 0x1002882, description: "(\u2882) BRAILLE PATTERN DOTS-28" },
 | |
|   XK_braille_dots_128:           { code: 0x1002883, description: "(\u2883) BRAILLE PATTERN DOTS-128" },
 | |
|   XK_braille_dots_38:            { code: 0x1002884, description: "(\u2884) BRAILLE PATTERN DOTS-38" },
 | |
|   XK_braille_dots_138:           { code: 0x1002885, description: "(\u2885) BRAILLE PATTERN DOTS-138" },
 | |
|   XK_braille_dots_238:           { code: 0x1002886, description: "(\u2886) BRAILLE PATTERN DOTS-238" },
 | |
|   XK_braille_dots_1238:          { code: 0x1002887, description: "(\u2887) BRAILLE PATTERN DOTS-1238" },
 | |
|   XK_braille_dots_48:            { code: 0x1002888, description: "(\u2888) BRAILLE PATTERN DOTS-48" },
 | |
|   XK_braille_dots_148:           { code: 0x1002889, description: "(\u2889) BRAILLE PATTERN DOTS-148" },
 | |
|   XK_braille_dots_248:           { code: 0x100288a, description: "(\u288a) BRAILLE PATTERN DOTS-248" },
 | |
|   XK_braille_dots_1248:          { code: 0x100288b, description: "(\u288b) BRAILLE PATTERN DOTS-1248" },
 | |
|   XK_braille_dots_348:           { code: 0x100288c, description: "(\u288c) BRAILLE PATTERN DOTS-348" },
 | |
|   XK_braille_dots_1348:          { code: 0x100288d, description: "(\u288d) BRAILLE PATTERN DOTS-1348" },
 | |
|   XK_braille_dots_2348:          { code: 0x100288e, description: "(\u288e) BRAILLE PATTERN DOTS-2348" },
 | |
|   XK_braille_dots_12348:         { code: 0x100288f, description: "(\u288f) BRAILLE PATTERN DOTS-12348" },
 | |
|   XK_braille_dots_58:            { code: 0x1002890, description: "(\u2890) BRAILLE PATTERN DOTS-58" },
 | |
|   XK_braille_dots_158:           { code: 0x1002891, description: "(\u2891) BRAILLE PATTERN DOTS-158" },
 | |
|   XK_braille_dots_258:           { code: 0x1002892, description: "(\u2892) BRAILLE PATTERN DOTS-258" },
 | |
|   XK_braille_dots_1258:          { code: 0x1002893, description: "(\u2893) BRAILLE PATTERN DOTS-1258" },
 | |
|   XK_braille_dots_358:           { code: 0x1002894, description: "(\u2894) BRAILLE PATTERN DOTS-358" },
 | |
|   XK_braille_dots_1358:          { code: 0x1002895, description: "(\u2895) BRAILLE PATTERN DOTS-1358" },
 | |
|   XK_braille_dots_2358:          { code: 0x1002896, description: "(\u2896) BRAILLE PATTERN DOTS-2358" },
 | |
|   XK_braille_dots_12358:         { code: 0x1002897, description: "(\u2897) BRAILLE PATTERN DOTS-12358" },
 | |
|   XK_braille_dots_458:           { code: 0x1002898, description: "(\u2898) BRAILLE PATTERN DOTS-458" },
 | |
|   XK_braille_dots_1458:          { code: 0x1002899, description: "(\u2899) BRAILLE PATTERN DOTS-1458" },
 | |
|   XK_braille_dots_2458:          { code: 0x100289a, description: "(\u289a) BRAILLE PATTERN DOTS-2458" },
 | |
|   XK_braille_dots_12458:         { code: 0x100289b, description: "(\u289b) BRAILLE PATTERN DOTS-12458" },
 | |
|   XK_braille_dots_3458:          { code: 0x100289c, description: "(\u289c) BRAILLE PATTERN DOTS-3458" },
 | |
|   XK_braille_dots_13458:         { code: 0x100289d, description: "(\u289d) BRAILLE PATTERN DOTS-13458" },
 | |
|   XK_braille_dots_23458:         { code: 0x100289e, description: "(\u289e) BRAILLE PATTERN DOTS-23458" },
 | |
|   XK_braille_dots_123458:        { code: 0x100289f, description: "(\u289f) BRAILLE PATTERN DOTS-123458" },
 | |
|   XK_braille_dots_68:            { code: 0x10028a0, description: "(\u28a0) BRAILLE PATTERN DOTS-68" },
 | |
|   XK_braille_dots_168:           { code: 0x10028a1, description: "(\u28a1) BRAILLE PATTERN DOTS-168" },
 | |
|   XK_braille_dots_268:           { code: 0x10028a2, description: "(\u28a2) BRAILLE PATTERN DOTS-268" },
 | |
|   XK_braille_dots_1268:          { code: 0x10028a3, description: "(\u28a3) BRAILLE PATTERN DOTS-1268" },
 | |
|   XK_braille_dots_368:           { code: 0x10028a4, description: "(\u28a4) BRAILLE PATTERN DOTS-368" },
 | |
|   XK_braille_dots_1368:          { code: 0x10028a5, description: "(\u28a5) BRAILLE PATTERN DOTS-1368" },
 | |
|   XK_braille_dots_2368:          { code: 0x10028a6, description: "(\u28a6) BRAILLE PATTERN DOTS-2368" },
 | |
|   XK_braille_dots_12368:         { code: 0x10028a7, description: "(\u28a7) BRAILLE PATTERN DOTS-12368" },
 | |
|   XK_braille_dots_468:           { code: 0x10028a8, description: "(\u28a8) BRAILLE PATTERN DOTS-468" },
 | |
|   XK_braille_dots_1468:          { code: 0x10028a9, description: "(\u28a9) BRAILLE PATTERN DOTS-1468" },
 | |
|   XK_braille_dots_2468:          { code: 0x10028aa, description: "(\u28aa) BRAILLE PATTERN DOTS-2468" },
 | |
|   XK_braille_dots_12468:         { code: 0x10028ab, description: "(\u28ab) BRAILLE PATTERN DOTS-12468" },
 | |
|   XK_braille_dots_3468:          { code: 0x10028ac, description: "(\u28ac) BRAILLE PATTERN DOTS-3468" },
 | |
|   XK_braille_dots_13468:         { code: 0x10028ad, description: "(\u28ad) BRAILLE PATTERN DOTS-13468" },
 | |
|   XK_braille_dots_23468:         { code: 0x10028ae, description: "(\u28ae) BRAILLE PATTERN DOTS-23468" },
 | |
|   XK_braille_dots_123468:        { code: 0x10028af, description: "(\u28af) BRAILLE PATTERN DOTS-123468" },
 | |
|   XK_braille_dots_568:           { code: 0x10028b0, description: "(\u28b0) BRAILLE PATTERN DOTS-568" },
 | |
|   XK_braille_dots_1568:          { code: 0x10028b1, description: "(\u28b1) BRAILLE PATTERN DOTS-1568" },
 | |
|   XK_braille_dots_2568:          { code: 0x10028b2, description: "(\u28b2) BRAILLE PATTERN DOTS-2568" },
 | |
|   XK_braille_dots_12568:         { code: 0x10028b3, description: "(\u28b3) BRAILLE PATTERN DOTS-12568" },
 | |
|   XK_braille_dots_3568:          { code: 0x10028b4, description: "(\u28b4) BRAILLE PATTERN DOTS-3568" },
 | |
|   XK_braille_dots_13568:         { code: 0x10028b5, description: "(\u28b5) BRAILLE PATTERN DOTS-13568" },
 | |
|   XK_braille_dots_23568:         { code: 0x10028b6, description: "(\u28b6) BRAILLE PATTERN DOTS-23568" },
 | |
|   XK_braille_dots_123568:        { code: 0x10028b7, description: "(\u28b7) BRAILLE PATTERN DOTS-123568" },
 | |
|   XK_braille_dots_4568:          { code: 0x10028b8, description: "(\u28b8) BRAILLE PATTERN DOTS-4568" },
 | |
|   XK_braille_dots_14568:         { code: 0x10028b9, description: "(\u28b9) BRAILLE PATTERN DOTS-14568" },
 | |
|   XK_braille_dots_24568:         { code: 0x10028ba, description: "(\u28ba) BRAILLE PATTERN DOTS-24568" },
 | |
|   XK_braille_dots_124568:        { code: 0x10028bb, description: "(\u28bb) BRAILLE PATTERN DOTS-124568" },
 | |
|   XK_braille_dots_34568:         { code: 0x10028bc, description: "(\u28bc) BRAILLE PATTERN DOTS-34568" },
 | |
|   XK_braille_dots_134568:        { code: 0x10028bd, description: "(\u28bd) BRAILLE PATTERN DOTS-134568" },
 | |
|   XK_braille_dots_234568:        { code: 0x10028be, description: "(\u28be) BRAILLE PATTERN DOTS-234568" },
 | |
|   XK_braille_dots_1234568:       { code: 0x10028bf, description: "(\u28bf) BRAILLE PATTERN DOTS-1234568" },
 | |
|   XK_braille_dots_78:            { code: 0x10028c0, description: "(\u28c0) BRAILLE PATTERN DOTS-78" },
 | |
|   XK_braille_dots_178:           { code: 0x10028c1, description: "(\u28c1) BRAILLE PATTERN DOTS-178" },
 | |
|   XK_braille_dots_278:           { code: 0x10028c2, description: "(\u28c2) BRAILLE PATTERN DOTS-278" },
 | |
|   XK_braille_dots_1278:          { code: 0x10028c3, description: "(\u28c3) BRAILLE PATTERN DOTS-1278" },
 | |
|   XK_braille_dots_378:           { code: 0x10028c4, description: "(\u28c4) BRAILLE PATTERN DOTS-378" },
 | |
|   XK_braille_dots_1378:          { code: 0x10028c5, description: "(\u28c5) BRAILLE PATTERN DOTS-1378" },
 | |
|   XK_braille_dots_2378:          { code: 0x10028c6, description: "(\u28c6) BRAILLE PATTERN DOTS-2378" },
 | |
|   XK_braille_dots_12378:         { code: 0x10028c7, description: "(\u28c7) BRAILLE PATTERN DOTS-12378" },
 | |
|   XK_braille_dots_478:           { code: 0x10028c8, description: "(\u28c8) BRAILLE PATTERN DOTS-478" },
 | |
|   XK_braille_dots_1478:          { code: 0x10028c9, description: "(\u28c9) BRAILLE PATTERN DOTS-1478" },
 | |
|   XK_braille_dots_2478:          { code: 0x10028ca, description: "(\u28ca) BRAILLE PATTERN DOTS-2478" },
 | |
|   XK_braille_dots_12478:         { code: 0x10028cb, description: "(\u28cb) BRAILLE PATTERN DOTS-12478" },
 | |
|   XK_braille_dots_3478:          { code: 0x10028cc, description: "(\u28cc) BRAILLE PATTERN DOTS-3478" },
 | |
|   XK_braille_dots_13478:         { code: 0x10028cd, description: "(\u28cd) BRAILLE PATTERN DOTS-13478" },
 | |
|   XK_braille_dots_23478:         { code: 0x10028ce, description: "(\u28ce) BRAILLE PATTERN DOTS-23478" },
 | |
|   XK_braille_dots_123478:        { code: 0x10028cf, description: "(\u28cf) BRAILLE PATTERN DOTS-123478" },
 | |
|   XK_braille_dots_578:           { code: 0x10028d0, description: "(\u28d0) BRAILLE PATTERN DOTS-578" },
 | |
|   XK_braille_dots_1578:          { code: 0x10028d1, description: "(\u28d1) BRAILLE PATTERN DOTS-1578" },
 | |
|   XK_braille_dots_2578:          { code: 0x10028d2, description: "(\u28d2) BRAILLE PATTERN DOTS-2578" },
 | |
|   XK_braille_dots_12578:         { code: 0x10028d3, description: "(\u28d3) BRAILLE PATTERN DOTS-12578" },
 | |
|   XK_braille_dots_3578:          { code: 0x10028d4, description: "(\u28d4) BRAILLE PATTERN DOTS-3578" },
 | |
|   XK_braille_dots_13578:         { code: 0x10028d5, description: "(\u28d5) BRAILLE PATTERN DOTS-13578" },
 | |
|   XK_braille_dots_23578:         { code: 0x10028d6, description: "(\u28d6) BRAILLE PATTERN DOTS-23578" },
 | |
|   XK_braille_dots_123578:        { code: 0x10028d7, description: "(\u28d7) BRAILLE PATTERN DOTS-123578" },
 | |
|   XK_braille_dots_4578:          { code: 0x10028d8, description: "(\u28d8) BRAILLE PATTERN DOTS-4578" },
 | |
|   XK_braille_dots_14578:         { code: 0x10028d9, description: "(\u28d9) BRAILLE PATTERN DOTS-14578" },
 | |
|   XK_braille_dots_24578:         { code: 0x10028da, description: "(\u28da) BRAILLE PATTERN DOTS-24578" },
 | |
|   XK_braille_dots_124578:        { code: 0x10028db, description: "(\u28db) BRAILLE PATTERN DOTS-124578" },
 | |
|   XK_braille_dots_34578:         { code: 0x10028dc, description: "(\u28dc) BRAILLE PATTERN DOTS-34578" },
 | |
|   XK_braille_dots_134578:        { code: 0x10028dd, description: "(\u28dd) BRAILLE PATTERN DOTS-134578" },
 | |
|   XK_braille_dots_234578:        { code: 0x10028de, description: "(\u28de) BRAILLE PATTERN DOTS-234578" },
 | |
|   XK_braille_dots_1234578:       { code: 0x10028df, description: "(\u28df) BRAILLE PATTERN DOTS-1234578" },
 | |
|   XK_braille_dots_678:           { code: 0x10028e0, description: "(\u28e0) BRAILLE PATTERN DOTS-678" },
 | |
|   XK_braille_dots_1678:          { code: 0x10028e1, description: "(\u28e1) BRAILLE PATTERN DOTS-1678" },
 | |
|   XK_braille_dots_2678:          { code: 0x10028e2, description: "(\u28e2) BRAILLE PATTERN DOTS-2678" },
 | |
|   XK_braille_dots_12678:         { code: 0x10028e3, description: "(\u28e3) BRAILLE PATTERN DOTS-12678" },
 | |
|   XK_braille_dots_3678:          { code: 0x10028e4, description: "(\u28e4) BRAILLE PATTERN DOTS-3678" },
 | |
|   XK_braille_dots_13678:         { code: 0x10028e5, description: "(\u28e5) BRAILLE PATTERN DOTS-13678" },
 | |
|   XK_braille_dots_23678:         { code: 0x10028e6, description: "(\u28e6) BRAILLE PATTERN DOTS-23678" },
 | |
|   XK_braille_dots_123678:        { code: 0x10028e7, description: "(\u28e7) BRAILLE PATTERN DOTS-123678" },
 | |
|   XK_braille_dots_4678:          { code: 0x10028e8, description: "(\u28e8) BRAILLE PATTERN DOTS-4678" },
 | |
|   XK_braille_dots_14678:         { code: 0x10028e9, description: "(\u28e9) BRAILLE PATTERN DOTS-14678" },
 | |
|   XK_braille_dots_24678:         { code: 0x10028ea, description: "(\u28ea) BRAILLE PATTERN DOTS-24678" },
 | |
|   XK_braille_dots_124678:        { code: 0x10028eb, description: "(\u28eb) BRAILLE PATTERN DOTS-124678" },
 | |
|   XK_braille_dots_34678:         { code: 0x10028ec, description: "(\u28ec) BRAILLE PATTERN DOTS-34678" },
 | |
|   XK_braille_dots_134678:        { code: 0x10028ed, description: "(\u28ed) BRAILLE PATTERN DOTS-134678" },
 | |
|   XK_braille_dots_234678:        { code: 0x10028ee, description: "(\u28ee) BRAILLE PATTERN DOTS-234678" },
 | |
|   XK_braille_dots_1234678:       { code: 0x10028ef, description: "(\u28ef) BRAILLE PATTERN DOTS-1234678" },
 | |
|   XK_braille_dots_5678:          { code: 0x10028f0, description: "(\u28f0) BRAILLE PATTERN DOTS-5678" },
 | |
|   XK_braille_dots_15678:         { code: 0x10028f1, description: "(\u28f1) BRAILLE PATTERN DOTS-15678" },
 | |
|   XK_braille_dots_25678:         { code: 0x10028f2, description: "(\u28f2) BRAILLE PATTERN DOTS-25678" },
 | |
|   XK_braille_dots_125678:        { code: 0x10028f3, description: "(\u28f3) BRAILLE PATTERN DOTS-125678" },
 | |
|   XK_braille_dots_35678:         { code: 0x10028f4, description: "(\u28f4) BRAILLE PATTERN DOTS-35678" },
 | |
|   XK_braille_dots_135678:        { code: 0x10028f5, description: "(\u28f5) BRAILLE PATTERN DOTS-135678" },
 | |
|   XK_braille_dots_235678:        { code: 0x10028f6, description: "(\u28f6) BRAILLE PATTERN DOTS-235678" },
 | |
|   XK_braille_dots_1235678:       { code: 0x10028f7, description: "(\u28f7) BRAILLE PATTERN DOTS-1235678" },
 | |
|   XK_braille_dots_45678:         { code: 0x10028f8, description: "(\u28f8) BRAILLE PATTERN DOTS-45678" },
 | |
|   XK_braille_dots_145678:        { code: 0x10028f9, description: "(\u28f9) BRAILLE PATTERN DOTS-145678" },
 | |
|   XK_braille_dots_245678:        { code: 0x10028fa, description: "(\u28fa) BRAILLE PATTERN DOTS-245678" },
 | |
|   XK_braille_dots_1245678:       { code: 0x10028fb, description: "(\u28fb) BRAILLE PATTERN DOTS-1245678" },
 | |
|   XK_braille_dots_345678:        { code: 0x10028fc, description: "(\u28fc) BRAILLE PATTERN DOTS-345678" },
 | |
|   XK_braille_dots_1345678:       { code: 0x10028fd, description: "(\u28fd) BRAILLE PATTERN DOTS-1345678" },
 | |
|   XK_braille_dots_2345678:       { code: 0x10028fe, description: "(\u28fe) BRAILLE PATTERN DOTS-2345678" },
 | |
|   XK_braille_dots_12345678:      { code: 0x10028ff, description: "(\u28ff) BRAILLE PATTERN DOTS-12345678" },
 | |
| 
 | |
| 
 | |
| /*
 | |
|  * Sinhala (http://unicode.org/charts/PDF/U0D80.pdf)
 | |
|  * http://www.nongnu.org/sinhala/doc/transliteration/sinhala-transliteration_6.html
 | |
|  */
 | |
| 
 | |
| // Group XK_SINHALA
 | |
|   XK_Sinh_ng:            { code: 0x1000d82, description: "(\u0D82) SINHALA ANUSVARAYA" },
 | |
|   XK_Sinh_h2:            { code: 0x1000d83, description: "(\u0D83) SINHALA VISARGAYA" },
 | |
|   XK_Sinh_a:             { code: 0x1000d85, description: "(\u0D85) SINHALA AYANNA" },
 | |
|   XK_Sinh_aa:            { code: 0x1000d86, description: "(\u0D86) SINHALA AAYANNA" },
 | |
|   XK_Sinh_ae:            { code: 0x1000d87, description: "(\u0D87) SINHALA AEYANNA" },
 | |
|   XK_Sinh_aee:           { code: 0x1000d88, description: "(\u0D88) SINHALA AEEYANNA" },
 | |
|   XK_Sinh_i:             { code: 0x1000d89, description: "(\u0D89) SINHALA IYANNA" },
 | |
|   XK_Sinh_ii:            { code: 0x1000d8a, description: "(\u0D8A) SINHALA IIYANNA" },
 | |
|   XK_Sinh_u:             { code: 0x1000d8b, description: "(\u0D8B) SINHALA UYANNA" },
 | |
|   XK_Sinh_uu:            { code: 0x1000d8c, description: "(\u0D8C) SINHALA UUYANNA" },
 | |
|   XK_Sinh_ri:            { code: 0x1000d8d, description: "(\u0D8D) SINHALA IRUYANNA" },
 | |
|   XK_Sinh_rii:           { code: 0x1000d8e, description: "(\u0D8E) SINHALA IRUUYANNA" },
 | |
|   XK_Sinh_lu:            { code: 0x1000d8f, description: "(\u0D8F) SINHALA ILUYANNA" },
 | |
|   XK_Sinh_luu:           { code: 0x1000d90, description: "(\u0D90) SINHALA ILUUYANNA" },
 | |
|   XK_Sinh_e:             { code: 0x1000d91, description: "(\u0D91) SINHALA EYANNA" },
 | |
|   XK_Sinh_ee:            { code: 0x1000d92, description: "(\u0D92) SINHALA EEYANNA" },
 | |
|   XK_Sinh_ai:            { code: 0x1000d93, description: "(\u0D93) SINHALA AIYANNA" },
 | |
|   XK_Sinh_o:             { code: 0x1000d94, description: "(\u0D94) SINHALA OYANNA" },
 | |
|   XK_Sinh_oo:            { code: 0x1000d95, description: "(\u0D95) SINHALA OOYANNA" },
 | |
|   XK_Sinh_au:            { code: 0x1000d96, description: "(\u0D96) SINHALA AUYANNA" },
 | |
|   XK_Sinh_ka:            { code: 0x1000d9a, description: "(\u0D9A) SINHALA KAYANNA" },
 | |
|   XK_Sinh_kha:           { code: 0x1000d9b, description: "(\u0D9B) SINHALA MAHA. KAYANNA" },
 | |
|   XK_Sinh_ga:            { code: 0x1000d9c, description: "(\u0D9C) SINHALA GAYANNA" },
 | |
|   XK_Sinh_gha:           { code: 0x1000d9d, description: "(\u0D9D) SINHALA MAHA. GAYANNA" },
 | |
|   XK_Sinh_ng2:           { code: 0x1000d9e, description: "(\u0D9E) SINHALA KANTAJA NAASIKYAYA" },
 | |
|   XK_Sinh_nga:           { code: 0x1000d9f, description: "(\u0D9F) SINHALA SANYAKA GAYANNA" },
 | |
|   XK_Sinh_ca:            { code: 0x1000da0, description: "(\u0DA0) SINHALA CAYANNA" },
 | |
|   XK_Sinh_cha:           { code: 0x1000da1, description: "(\u0DA1) SINHALA MAHA. CAYANNA" },
 | |
|   XK_Sinh_ja:            { code: 0x1000da2, description: "(\u0DA2) SINHALA JAYANNA" },
 | |
|   XK_Sinh_jha:           { code: 0x1000da3, description: "(\u0DA3) SINHALA MAHA. JAYANNA" },
 | |
|   XK_Sinh_nya:           { code: 0x1000da4, description: "(\u0DA4) SINHALA TAALUJA NAASIKYAYA" },
 | |
|   XK_Sinh_jnya:          { code: 0x1000da5, description: "(\u0DA5) SINHALA TAALUJA SANYOOGA NAASIKYAYA" },
 | |
|   XK_Sinh_nja:           { code: 0x1000da6, description: "(\u0DA6) SINHALA SANYAKA JAYANNA" },
 | |
|   XK_Sinh_tta:           { code: 0x1000da7, description: "(\u0DA7) SINHALA TTAYANNA" },
 | |
|   XK_Sinh_ttha:          { code: 0x1000da8, description: "(\u0DA8) SINHALA MAHA. TTAYANNA" },
 | |
|   XK_Sinh_dda:           { code: 0x1000da9, description: "(\u0DA9) SINHALA DDAYANNA" },
 | |
|   XK_Sinh_ddha:          { code: 0x1000daa, description: "(\u0DAA) SINHALA MAHA. DDAYANNA" },
 | |
|   XK_Sinh_nna:           { code: 0x1000dab, description: "(\u0DAB) SINHALA MUURDHAJA NAYANNA" },
 | |
|   XK_Sinh_ndda:          { code: 0x1000dac, description: "(\u0DAC) SINHALA SANYAKA DDAYANNA" },
 | |
|   XK_Sinh_tha:           { code: 0x1000dad, description: "(\u0DAD) SINHALA TAYANNA" },
 | |
|   XK_Sinh_thha:          { code: 0x1000dae, description: "(\u0DAE) SINHALA MAHA. TAYANNA" },
 | |
|   XK_Sinh_dha:           { code: 0x1000daf, description: "(\u0DAF) SINHALA DAYANNA" },
 | |
|   XK_Sinh_dhha:          { code: 0x1000db0, description: "(\u0DB0) SINHALA MAHA. DAYANNA" },
 | |
|   XK_Sinh_na:            { code: 0x1000db1, description: "(\u0DB1) SINHALA DANTAJA NAYANNA" },
 | |
|   XK_Sinh_ndha:          { code: 0x1000db3, description: "(\u0DB3) SINHALA SANYAKA DAYANNA" },
 | |
|   XK_Sinh_pa:            { code: 0x1000db4, description: "(\u0DB4) SINHALA PAYANNA" },
 | |
|   XK_Sinh_pha:           { code: 0x1000db5, description: "(\u0DB5) SINHALA MAHA. PAYANNA" },
 | |
|   XK_Sinh_ba:            { code: 0x1000db6, description: "(\u0DB6) SINHALA BAYANNA" },
 | |
|   XK_Sinh_bha:           { code: 0x1000db7, description: "(\u0DB7) SINHALA MAHA. BAYANNA" },
 | |
|   XK_Sinh_ma:            { code: 0x1000db8, description: "(\u0DB8) SINHALA MAYANNA" },
 | |
|   XK_Sinh_mba:           { code: 0x1000db9, description: "(\u0DB9) SINHALA AMBA BAYANNA" },
 | |
|   XK_Sinh_ya:            { code: 0x1000dba, description: "(\u0DBA) SINHALA YAYANNA" },
 | |
|   XK_Sinh_ra:            { code: 0x1000dbb, description: "(\u0DBB) SINHALA RAYANNA" },
 | |
|   XK_Sinh_la:            { code: 0x1000dbd, description: "(\u0DBD) SINHALA DANTAJA LAYANNA" },
 | |
|   XK_Sinh_va:            { code: 0x1000dc0, description: "(\u0DC0) SINHALA VAYANNA" },
 | |
|   XK_Sinh_sha:           { code: 0x1000dc1, description: "(\u0DC1) SINHALA TAALUJA SAYANNA" },
 | |
|   XK_Sinh_ssha:          { code: 0x1000dc2, description: "(\u0DC2) SINHALA MUURDHAJA SAYANNA" },
 | |
|   XK_Sinh_sa:            { code: 0x1000dc3, description: "(\u0DC3) SINHALA DANTAJA SAYANNA" },
 | |
|   XK_Sinh_ha:            { code: 0x1000dc4, description: "(\u0DC4) SINHALA HAYANNA" },
 | |
|   XK_Sinh_lla:           { code: 0x1000dc5, description: "(\u0DC5) SINHALA MUURDHAJA LAYANNA" },
 | |
|   XK_Sinh_fa:            { code: 0x1000dc6, description: "(\u0DC6) SINHALA FAYANNA" },
 | |
|   XK_Sinh_al:            { code: 0x1000dca, description: "(\u0DCA) SINHALA AL-LAKUNA" },
 | |
|   XK_Sinh_aa2:           { code: 0x1000dcf, description: "(\u0DCF) SINHALA AELA-PILLA" },
 | |
|   XK_Sinh_ae2:           { code: 0x1000dd0, description: "(\u0DD0) SINHALA AEDA-PILLA" },
 | |
|   XK_Sinh_aee2:          { code: 0x1000dd1, description: "(\u0DD1) SINHALA DIGA AEDA-PILLA" },
 | |
|   XK_Sinh_i2:            { code: 0x1000dd2, description: "(\u0DD2) SINHALA IS-PILLA" },
 | |
|   XK_Sinh_ii2:           { code: 0x1000dd3, description: "(\u0DD3) SINHALA DIGA IS-PILLA" },
 | |
|   XK_Sinh_u2:            { code: 0x1000dd4, description: "(\u0DD4) SINHALA PAA-PILLA" },
 | |
|   XK_Sinh_uu2:           { code: 0x1000dd6, description: "(\u0DD6) SINHALA DIGA PAA-PILLA" },
 | |
|   XK_Sinh_ru2:           { code: 0x1000dd8, description: "(\u0DD8) SINHALA GAETTA-PILLA" },
 | |
|   XK_Sinh_e2:            { code: 0x1000dd9, description: "(\u0DD9) SINHALA KOMBUVA" },
 | |
|   XK_Sinh_ee2:           { code: 0x1000dda, description: "(\u0DDA) SINHALA DIGA KOMBUVA" },
 | |
|   XK_Sinh_ai2:           { code: 0x1000ddb, description: "(\u0DDB) SINHALA KOMBU DEKA" },
 | |
|   XK_Sinh_o2:            { code: 0x1000ddc, description: "(\u0DDC) SINHALA KOMBUVA HAA AELA-PILLA" },
 | |
|   XK_Sinh_oo2:           { code: 0x1000ddd, description: "(\u0DDD) SINHALA KOMBUVA HAA DIGA AELA-PILLA" },
 | |
|   XK_Sinh_au2:           { code: 0x1000dde, description: "(\u0DDE) SINHALA KOMBUVA HAA GAYANUKITTA" },
 | |
|   XK_Sinh_lu2:           { code: 0x1000ddf, description: "(\u0DDF) SINHALA GAYANUKITTA" },
 | |
|   XK_Sinh_ruu2:          { code: 0x1000df2, description: "(\u0DF2) SINHALA DIGA GAETTA-PILLA" },
 | |
|   XK_Sinh_luu2:          { code: 0x1000df3, description: "(\u0DF3) SINHALA DIGA GAYANUKITTA" },
 | |
|   XK_Sinh_kunddaliya:    { code: 0x1000df4, description: "(\u0DF4) SINHALA KUNDDALIYA" },
 | |
| 
 | |
| 
 | |
|   NoSymbol: 0
 | |
| }; |