--X11/keysym.h local ffi = require'ffi' local X = require'xlib_h' ffi.cdef[[ enum { XK_VoidSymbol = 0xffffff, XK_BackSpace = 0xff08, XK_Tab = 0xff09, XK_Linefeed = 0xff0a, XK_Clear = 0xff0b, XK_Return = 0xff0d, XK_Pause = 0xff13, XK_Scroll_Lock = 0xff14, XK_Sys_Req = 0xff15, XK_Escape = 0xff1b, XK_Delete = 0xffff, XK_Multi_key = 0xff20, XK_Codeinput = 0xff37, XK_SingleCandidate = 0xff3c, XK_MultipleCandidate = 0xff3d, XK_PreviousCandidate = 0xff3e, XK_Kanji = 0xff21, XK_Muhenkan = 0xff22, XK_Henkan_Mode = 0xff23, XK_Henkan = 0xff23, XK_Romaji = 0xff24, XK_Hiragana = 0xff25, XK_Katakana = 0xff26, XK_Hiragana_Katakana = 0xff27, XK_Zenkaku = 0xff28, XK_Hankaku = 0xff29, XK_Zenkaku_Hankaku = 0xff2a, XK_Touroku = 0xff2b, XK_Massyo = 0xff2c, XK_Kana_Lock = 0xff2d, XK_Kana_Shift = 0xff2e, XK_Eisu_Shift = 0xff2f, XK_Eisu_toggle = 0xff30, XK_Kanji_Bangou = 0xff37, XK_Zen_Koho = 0xff3d, XK_Mae_Koho = 0xff3e, XK_Home = 0xff50, XK_Left = 0xff51, XK_Up = 0xff52, XK_Right = 0xff53, XK_Down = 0xff54, XK_Prior = 0xff55, XK_Page_Up = 0xff55, XK_Next = 0xff56, XK_Page_Down = 0xff56, XK_End = 0xff57, XK_Begin = 0xff58, XK_Select = 0xff60, XK_Print = 0xff61, XK_Execute = 0xff62, XK_Insert = 0xff63, XK_Undo = 0xff65, XK_Redo = 0xff66, XK_Menu = 0xff67, XK_Find = 0xff68, XK_Cancel = 0xff69, XK_Help = 0xff6a, XK_Break = 0xff6b, XK_Mode_switch = 0xff7e, XK_script_switch = 0xff7e, XK_Num_Lock = 0xff7f, XK_KP_Space = 0xff80, XK_KP_Tab = 0xff89, XK_KP_Enter = 0xff8d, XK_KP_F1 = 0xff91, XK_KP_F2 = 0xff92, XK_KP_F3 = 0xff93, XK_KP_F4 = 0xff94, XK_KP_Home = 0xff95, XK_KP_Left = 0xff96, XK_KP_Up = 0xff97, XK_KP_Right = 0xff98, XK_KP_Down = 0xff99, XK_KP_Prior = 0xff9a, XK_KP_Page_Up = 0xff9a, XK_KP_Next = 0xff9b, XK_KP_Page_Down = 0xff9b, XK_KP_End = 0xff9c, XK_KP_Begin = 0xff9d, XK_KP_Insert = 0xff9e, XK_KP_Delete = 0xff9f, XK_KP_Equal = 0xffbd, XK_KP_Multiply = 0xffaa, XK_KP_Add = 0xffab, XK_KP_Separator = 0xffac, XK_KP_Subtract = 0xffad, XK_KP_Decimal = 0xffae, XK_KP_Divide = 0xffaf, XK_KP_0 = 0xffb0, XK_KP_1 = 0xffb1, XK_KP_2 = 0xffb2, XK_KP_3 = 0xffb3, XK_KP_4 = 0xffb4, XK_KP_5 = 0xffb5, XK_KP_6 = 0xffb6, XK_KP_7 = 0xffb7, XK_KP_8 = 0xffb8, XK_KP_9 = 0xffb9, XK_F1 = 0xffbe, XK_F2 = 0xffbf, XK_F3 = 0xffc0, XK_F4 = 0xffc1, XK_F5 = 0xffc2, XK_F6 = 0xffc3, XK_F7 = 0xffc4, XK_F8 = 0xffc5, XK_F9 = 0xffc6, XK_F10 = 0xffc7, XK_F11 = 0xffc8, XK_L1 = 0xffc8, XK_F12 = 0xffc9, XK_L2 = 0xffc9, XK_F13 = 0xffca, XK_L3 = 0xffca, XK_F14 = 0xffcb, XK_L4 = 0xffcb, XK_F15 = 0xffcc, XK_L5 = 0xffcc, XK_F16 = 0xffcd, XK_L6 = 0xffcd, XK_F17 = 0xffce, XK_L7 = 0xffce, XK_F18 = 0xffcf, XK_L8 = 0xffcf, XK_F19 = 0xffd0, XK_L9 = 0xffd0, XK_F20 = 0xffd1, XK_L10 = 0xffd1, XK_F21 = 0xffd2, XK_R1 = 0xffd2, XK_F22 = 0xffd3, XK_R2 = 0xffd3, XK_F23 = 0xffd4, XK_R3 = 0xffd4, XK_F24 = 0xffd5, XK_R4 = 0xffd5, XK_F25 = 0xffd6, XK_R5 = 0xffd6, XK_F26 = 0xffd7, XK_R6 = 0xffd7, XK_F27 = 0xffd8, XK_R7 = 0xffd8, XK_F28 = 0xffd9, XK_R8 = 0xffd9, XK_F29 = 0xffda, XK_R9 = 0xffda, XK_F30 = 0xffdb, XK_R10 = 0xffdb, XK_F31 = 0xffdc, XK_R11 = 0xffdc, XK_F32 = 0xffdd, XK_R12 = 0xffdd, XK_F33 = 0xffde, XK_R13 = 0xffde, XK_F34 = 0xffdf, XK_R14 = 0xffdf, XK_F35 = 0xffe0, XK_R15 = 0xffe0, XK_Shift_L = 0xffe1, XK_Shift_R = 0xffe2, XK_Control_L = 0xffe3, XK_Control_R = 0xffe4, XK_Caps_Lock = 0xffe5, XK_Shift_Lock = 0xffe6, XK_Meta_L = 0xffe7, XK_Meta_R = 0xffe8, XK_Alt_L = 0xffe9, XK_Alt_R = 0xffea, XK_Super_L = 0xffeb, XK_Super_R = 0xffec, XK_Hyper_L = 0xffed, XK_Hyper_R = 0xffee, XK_ISO_Lock = 0xfe01, XK_ISO_Level2_Latch = 0xfe02, XK_ISO_Level3_Shift = 0xfe03, XK_ISO_Level3_Latch = 0xfe04, XK_ISO_Level3_Lock = 0xfe05, XK_ISO_Level5_Shift = 0xfe11, XK_ISO_Level5_Latch = 0xfe12, XK_ISO_Level5_Lock = 0xfe13, XK_ISO_Group_Shift = 0xff7e, XK_ISO_Group_Latch = 0xfe06, XK_ISO_Group_Lock = 0xfe07, XK_ISO_Next_Group = 0xfe08, XK_ISO_Next_Group_Lock = 0xfe09, XK_ISO_Prev_Group = 0xfe0a, XK_ISO_Prev_Group_Lock = 0xfe0b, XK_ISO_First_Group = 0xfe0c, XK_ISO_First_Group_Lock = 0xfe0d, XK_ISO_Last_Group = 0xfe0e, XK_ISO_Last_Group_Lock = 0xfe0f, XK_ISO_Left_Tab = 0xfe20, XK_ISO_Move_Line_Up = 0xfe21, XK_ISO_Move_Line_Down = 0xfe22, XK_ISO_Partial_Line_Up = 0xfe23, XK_ISO_Partial_Line_Down = 0xfe24, XK_ISO_Partial_Space_Left = 0xfe25, XK_ISO_Partial_Space_Right = 0xfe26, XK_ISO_Set_Margin_Left = 0xfe27, XK_ISO_Set_Margin_Right = 0xfe28, XK_ISO_Release_Margin_Left = 0xfe29, XK_ISO_Release_Margin_Right = 0xfe2a, XK_ISO_Release_Both_Margins = 0xfe2b, XK_ISO_Fast_Cursor_Left = 0xfe2c, XK_ISO_Fast_Cursor_Right = 0xfe2d, XK_ISO_Fast_Cursor_Up = 0xfe2e, XK_ISO_Fast_Cursor_Down = 0xfe2f, XK_ISO_Continuous_Underline = 0xfe30, XK_ISO_Discontinuous_Underline = 0xfe31, XK_ISO_Emphasize = 0xfe32, XK_ISO_Center_Object = 0xfe33, XK_ISO_Enter = 0xfe34, XK_dead_grave = 0xfe50, XK_dead_acute = 0xfe51, XK_dead_circumflex = 0xfe52, XK_dead_tilde = 0xfe53, XK_dead_perispomeni = 0xfe53, XK_dead_macron = 0xfe54, XK_dead_breve = 0xfe55, XK_dead_abovedot = 0xfe56, XK_dead_diaeresis = 0xfe57, XK_dead_abovering = 0xfe58, XK_dead_doubleacute = 0xfe59, XK_dead_caron = 0xfe5a, XK_dead_cedilla = 0xfe5b, XK_dead_ogonek = 0xfe5c, XK_dead_iota = 0xfe5d, XK_dead_voiced_sound = 0xfe5e, XK_dead_semivoiced_sound = 0xfe5f, XK_dead_belowdot = 0xfe60, XK_dead_hook = 0xfe61, XK_dead_horn = 0xfe62, XK_dead_stroke = 0xfe63, XK_dead_abovecomma = 0xfe64, XK_dead_psili = 0xfe64, XK_dead_abovereversedcomma = 0xfe65, XK_dead_dasia = 0xfe65, XK_dead_doublegrave = 0xfe66, XK_dead_belowring = 0xfe67, XK_dead_belowmacron = 0xfe68, XK_dead_belowcircumflex = 0xfe69, XK_dead_belowtilde = 0xfe6a, XK_dead_belowbreve = 0xfe6b, XK_dead_belowdiaeresis = 0xfe6c, XK_dead_invertedbreve = 0xfe6d, XK_dead_belowcomma = 0xfe6e, XK_dead_currency = 0xfe6f, XK_dead_a = 0xfe80, XK_dead_A = 0xfe81, XK_dead_e = 0xfe82, XK_dead_E = 0xfe83, XK_dead_i = 0xfe84, XK_dead_I = 0xfe85, XK_dead_o = 0xfe86, XK_dead_O = 0xfe87, XK_dead_u = 0xfe88, XK_dead_U = 0xfe89, XK_dead_small_schwa = 0xfe8a, XK_dead_capital_schwa = 0xfe8b, XK_First_Virtual_Screen = 0xfed0, XK_Prev_Virtual_Screen = 0xfed1, XK_Next_Virtual_Screen = 0xfed2, XK_Last_Virtual_Screen = 0xfed4, XK_Terminate_Server = 0xfed5, XK_AccessX_Enable = 0xfe70, XK_AccessX_Feedback_Enable = 0xfe71, XK_RepeatKeys_Enable = 0xfe72, XK_SlowKeys_Enable = 0xfe73, XK_BounceKeys_Enable = 0xfe74, XK_StickyKeys_Enable = 0xfe75, XK_MouseKeys_Enable = 0xfe76, XK_MouseKeys_Accel_Enable = 0xfe77, XK_Overlay1_Enable = 0xfe78, XK_Overlay2_Enable = 0xfe79, XK_AudibleBell_Enable = 0xfe7a, XK_Pointer_Left = 0xfee0, XK_Pointer_Right = 0xfee1, XK_Pointer_Up = 0xfee2, XK_Pointer_Down = 0xfee3, XK_Pointer_UpLeft = 0xfee4, XK_Pointer_UpRight = 0xfee5, XK_Pointer_DownLeft = 0xfee6, XK_Pointer_DownRight = 0xfee7, XK_Pointer_Button_Dflt = 0xfee8, XK_Pointer_Button1 = 0xfee9, XK_Pointer_Button2 = 0xfeea, XK_Pointer_Button3 = 0xfeeb, XK_Pointer_Button4 = 0xfeec, XK_Pointer_Button5 = 0xfeed, XK_Pointer_DblClick_Dflt = 0xfeee, XK_Pointer_DblClick1 = 0xfeef, XK_Pointer_DblClick2 = 0xfef0, XK_Pointer_DblClick3 = 0xfef1, XK_Pointer_DblClick4 = 0xfef2, XK_Pointer_DblClick5 = 0xfef3, XK_Pointer_Drag_Dflt = 0xfef4, XK_Pointer_Drag1 = 0xfef5, XK_Pointer_Drag2 = 0xfef6, XK_Pointer_Drag3 = 0xfef7, XK_Pointer_Drag4 = 0xfef8, XK_Pointer_Drag5 = 0xfefd, XK_Pointer_EnableKeys = 0xfef9, XK_Pointer_Accelerate = 0xfefa, XK_Pointer_DfltBtnNext = 0xfefb, XK_Pointer_DfltBtnPrev = 0xfefc, XK_space = 0x0020, XK_exclam = 0x0021, XK_quotedbl = 0x0022, XK_numbersign = 0x0023, XK_dollar = 0x0024, XK_percent = 0x0025, XK_ampersand = 0x0026, XK_apostrophe = 0x0027, XK_quoteright = 0x0027, XK_parenleft = 0x0028, XK_parenright = 0x0029, XK_asterisk = 0x002a, XK_plus = 0x002b, XK_comma = 0x002c, XK_minus = 0x002d, XK_period = 0x002e, XK_slash = 0x002f, XK_0 = 0x0030, XK_1 = 0x0031, XK_2 = 0x0032, XK_3 = 0x0033, XK_4 = 0x0034, XK_5 = 0x0035, XK_6 = 0x0036, XK_7 = 0x0037, XK_8 = 0x0038, XK_9 = 0x0039, XK_colon = 0x003a, XK_semicolon = 0x003b, XK_less = 0x003c, XK_equal = 0x003d, XK_greater = 0x003e, XK_question = 0x003f, XK_at = 0x0040, XK_A = 0x0041, XK_B = 0x0042, XK_C = 0x0043, XK_D = 0x0044, XK_E = 0x0045, XK_F = 0x0046, XK_G = 0x0047, XK_H = 0x0048, XK_I = 0x0049, XK_J = 0x004a, XK_K = 0x004b, XK_L = 0x004c, XK_M = 0x004d, XK_N = 0x004e, XK_O = 0x004f, XK_P = 0x0050, XK_Q = 0x0051, XK_R = 0x0052, XK_S = 0x0053, XK_T = 0x0054, XK_U = 0x0055, XK_V = 0x0056, XK_W = 0x0057, XK_X = 0x0058, XK_Y = 0x0059, XK_Z = 0x005a, XK_bracketleft = 0x005b, XK_backslash = 0x005c, XK_bracketright = 0x005d, XK_asciicircum = 0x005e, XK_underscore = 0x005f, XK_grave = 0x0060, XK_quoteleft = 0x0060, XK_a = 0x0061, XK_b = 0x0062, XK_c = 0x0063, XK_d = 0x0064, XK_e = 0x0065, XK_f = 0x0066, XK_g = 0x0067, XK_h = 0x0068, XK_i = 0x0069, XK_j = 0x006a, XK_k = 0x006b, XK_l = 0x006c, XK_m = 0x006d, XK_n = 0x006e, XK_o = 0x006f, XK_p = 0x0070, XK_q = 0x0071, XK_r = 0x0072, XK_s = 0x0073, XK_t = 0x0074, XK_u = 0x0075, XK_v = 0x0076, XK_w = 0x0077, XK_x = 0x0078, XK_y = 0x0079, XK_z = 0x007a, XK_braceleft = 0x007b, XK_bar = 0x007c, XK_braceright = 0x007d, XK_asciitilde = 0x007e, XK_nobreakspace = 0x00a0, XK_exclamdown = 0x00a1, XK_cent = 0x00a2, XK_sterling = 0x00a3, XK_currency = 0x00a4, XK_yen = 0x00a5, XK_brokenbar = 0x00a6, XK_section = 0x00a7, XK_diaeresis = 0x00a8, XK_copyright = 0x00a9, XK_ordfeminine = 0x00aa, XK_guillemotleft = 0x00ab, XK_notsign = 0x00ac, XK_hyphen = 0x00ad, XK_registered = 0x00ae, XK_macron = 0x00af, XK_degree = 0x00b0, XK_plusminus = 0x00b1, XK_twosuperior = 0x00b2, XK_threesuperior = 0x00b3, XK_acute = 0x00b4, XK_mu = 0x00b5, XK_paragraph = 0x00b6, XK_periodcentered = 0x00b7, XK_cedilla = 0x00b8, XK_onesuperior = 0x00b9, XK_masculine = 0x00ba, XK_guillemotright = 0x00bb, XK_onequarter = 0x00bc, XK_onehalf = 0x00bd, XK_threequarters = 0x00be, XK_questiondown = 0x00bf, XK_Agrave = 0x00c0, XK_Aacute = 0x00c1, XK_Acircumflex = 0x00c2, XK_Atilde = 0x00c3, XK_Adiaeresis = 0x00c4, XK_Aring = 0x00c5, XK_AE = 0x00c6, XK_Ccedilla = 0x00c7, XK_Egrave = 0x00c8, XK_Eacute = 0x00c9, XK_Ecircumflex = 0x00ca, XK_Ediaeresis = 0x00cb, XK_Igrave = 0x00cc, XK_Iacute = 0x00cd, XK_Icircumflex = 0x00ce, XK_Idiaeresis = 0x00cf, XK_ETH = 0x00d0, XK_Eth = 0x00d0, XK_Ntilde = 0x00d1, XK_Ograve = 0x00d2, XK_Oacute = 0x00d3, XK_Ocircumflex = 0x00d4, XK_Otilde = 0x00d5, XK_Odiaeresis = 0x00d6, XK_multiply = 0x00d7, XK_Oslash = 0x00d8, XK_Ooblique = 0x00d8, XK_Ugrave = 0x00d9, XK_Uacute = 0x00da, XK_Ucircumflex = 0x00db, XK_Udiaeresis = 0x00dc, XK_Yacute = 0x00dd, XK_THORN = 0x00de, XK_Thorn = 0x00de, XK_ssharp = 0x00df, XK_agrave = 0x00e0, XK_aacute = 0x00e1, XK_acircumflex = 0x00e2, XK_atilde = 0x00e3, XK_adiaeresis = 0x00e4, XK_aring = 0x00e5, XK_ae = 0x00e6, XK_ccedilla = 0x00e7, XK_egrave = 0x00e8, XK_eacute = 0x00e9, XK_ecircumflex = 0x00ea, XK_ediaeresis = 0x00eb, XK_igrave = 0x00ec, XK_iacute = 0x00ed, XK_icircumflex = 0x00ee, XK_idiaeresis = 0x00ef, XK_eth = 0x00f0, XK_ntilde = 0x00f1, XK_ograve = 0x00f2, XK_oacute = 0x00f3, XK_ocircumflex = 0x00f4, XK_otilde = 0x00f5, XK_odiaeresis = 0x00f6, XK_division = 0x00f7, XK_oslash = 0x00f8, XK_ooblique = 0x00f8, XK_ugrave = 0x00f9, XK_uacute = 0x00fa, XK_ucircumflex = 0x00fb, XK_udiaeresis = 0x00fc, XK_yacute = 0x00fd, XK_thorn = 0x00fe, XK_ydiaeresis = 0x00ff, XK_Aogonek = 0x01a1, XK_breve = 0x01a2, XK_Lstroke = 0x01a3, XK_Lcaron = 0x01a5, XK_Sacute = 0x01a6, XK_Scaron = 0x01a9, XK_Scedilla = 0x01aa, XK_Tcaron = 0x01ab, XK_Zacute = 0x01ac, XK_Zcaron = 0x01ae, XK_Zabovedot = 0x01af, XK_aogonek = 0x01b1, XK_ogonek = 0x01b2, XK_lstroke = 0x01b3, XK_lcaron = 0x01b5, XK_sacute = 0x01b6, XK_caron = 0x01b7, XK_scaron = 0x01b9, XK_scedilla = 0x01ba, XK_tcaron = 0x01bb, XK_zacute = 0x01bc, XK_doubleacute = 0x01bd, XK_zcaron = 0x01be, XK_zabovedot = 0x01bf, XK_Racute = 0x01c0, XK_Abreve = 0x01c3, XK_Lacute = 0x01c5, XK_Cacute = 0x01c6, XK_Ccaron = 0x01c8, XK_Eogonek = 0x01ca, XK_Ecaron = 0x01cc, XK_Dcaron = 0x01cf, XK_Dstroke = 0x01d0, XK_Nacute = 0x01d1, XK_Ncaron = 0x01d2, XK_Odoubleacute = 0x01d5, XK_Rcaron = 0x01d8, XK_Uring = 0x01d9, XK_Udoubleacute = 0x01db, XK_Tcedilla = 0x01de, XK_racute = 0x01e0, XK_abreve = 0x01e3, XK_lacute = 0x01e5, XK_cacute = 0x01e6, XK_ccaron = 0x01e8, XK_eogonek = 0x01ea, XK_ecaron = 0x01ec, XK_dcaron = 0x01ef, XK_dstroke = 0x01f0, XK_nacute = 0x01f1, XK_ncaron = 0x01f2, XK_odoubleacute = 0x01f5, XK_udoubleacute = 0x01fb, XK_rcaron = 0x01f8, XK_uring = 0x01f9, XK_tcedilla = 0x01fe, XK_abovedot = 0x01ff, XK_Hstroke = 0x02a1, XK_Hcircumflex = 0x02a6, XK_Iabovedot = 0x02a9, XK_Gbreve = 0x02ab, XK_Jcircumflex = 0x02ac, XK_hstroke = 0x02b1, XK_hcircumflex = 0x02b6, XK_idotless = 0x02b9, XK_gbreve = 0x02bb, XK_jcircumflex = 0x02bc, XK_Cabovedot = 0x02c5, XK_Ccircumflex = 0x02c6, XK_Gabovedot = 0x02d5, XK_Gcircumflex = 0x02d8, XK_Ubreve = 0x02dd, XK_Scircumflex = 0x02de, XK_cabovedot = 0x02e5, XK_ccircumflex = 0x02e6, XK_gabovedot = 0x02f5, XK_gcircumflex = 0x02f8, XK_ubreve = 0x02fd, XK_scircumflex = 0x02fe, XK_kra = 0x03a2, XK_kappa = 0x03a2, XK_Rcedilla = 0x03a3, XK_Itilde = 0x03a5, XK_Lcedilla = 0x03a6, XK_Emacron = 0x03aa, XK_Gcedilla = 0x03ab, XK_Tslash = 0x03ac, XK_rcedilla = 0x03b3, XK_itilde = 0x03b5, XK_lcedilla = 0x03b6, XK_emacron = 0x03ba, XK_gcedilla = 0x03bb, XK_tslash = 0x03bc, XK_ENG = 0x03bd, XK_eng = 0x03bf, XK_Amacron = 0x03c0, XK_Iogonek = 0x03c7, XK_Eabovedot = 0x03cc, XK_Imacron = 0x03cf, XK_Ncedilla = 0x03d1, XK_Omacron = 0x03d2, XK_Kcedilla = 0x03d3, XK_Uogonek = 0x03d9, XK_Utilde = 0x03dd, XK_Umacron = 0x03de, XK_amacron = 0x03e0, XK_iogonek = 0x03e7, XK_eabovedot = 0x03ec, XK_imacron = 0x03ef, XK_ncedilla = 0x03f1, XK_omacron = 0x03f2, XK_kcedilla = 0x03f3, XK_uogonek = 0x03f9, XK_utilde = 0x03fd, XK_umacron = 0x03fe, XK_Babovedot = 0x1001e02, XK_babovedot = 0x1001e03, XK_Dabovedot = 0x1001e0a, XK_Wgrave = 0x1001e80, XK_Wacute = 0x1001e82, XK_dabovedot = 0x1001e0b, XK_Ygrave = 0x1001ef2, XK_Fabovedot = 0x1001e1e, XK_fabovedot = 0x1001e1f, XK_Mabovedot = 0x1001e40, XK_mabovedot = 0x1001e41, XK_Pabovedot = 0x1001e56, XK_wgrave = 0x1001e81, XK_pabovedot = 0x1001e57, XK_wacute = 0x1001e83, XK_Sabovedot = 0x1001e60, XK_ygrave = 0x1001ef3, XK_Wdiaeresis = 0x1001e84, XK_wdiaeresis = 0x1001e85, XK_sabovedot = 0x1001e61, XK_Wcircumflex = 0x1000174, XK_Tabovedot = 0x1001e6a, XK_Ycircumflex = 0x1000176, XK_wcircumflex = 0x1000175, XK_tabovedot = 0x1001e6b, XK_ycircumflex = 0x1000177, XK_OE = 0x13bc, XK_oe = 0x13bd, XK_Ydiaeresis = 0x13be, XK_overline = 0x047e, XK_kana_fullstop = 0x04a1, XK_kana_openingbracket = 0x04a2, XK_kana_closingbracket = 0x04a3, XK_kana_comma = 0x04a4, XK_kana_conjunctive = 0x04a5, XK_kana_middledot = 0x04a5, XK_kana_WO = 0x04a6, XK_kana_a = 0x04a7, XK_kana_i = 0x04a8, XK_kana_u = 0x04a9, XK_kana_e = 0x04aa, XK_kana_o = 0x04ab, XK_kana_ya = 0x04ac, XK_kana_yu = 0x04ad, XK_kana_yo = 0x04ae, XK_kana_tsu = 0x04af, XK_kana_tu = 0x04af, XK_prolongedsound = 0x04b0, XK_kana_A = 0x04b1, XK_kana_I = 0x04b2, XK_kana_U = 0x04b3, XK_kana_E = 0x04b4, XK_kana_O = 0x04b5, XK_kana_KA = 0x04b6, XK_kana_KI = 0x04b7, XK_kana_KU = 0x04b8, XK_kana_KE = 0x04b9, XK_kana_KO = 0x04ba, XK_kana_SA = 0x04bb, XK_kana_SHI = 0x04bc, XK_kana_SU = 0x04bd, XK_kana_SE = 0x04be, XK_kana_SO = 0x04bf, XK_kana_TA = 0x04c0, XK_kana_CHI = 0x04c1, XK_kana_TI = 0x04c1, XK_kana_TSU = 0x04c2, XK_kana_TU = 0x04c2, XK_kana_TE = 0x04c3, XK_kana_TO = 0x04c4, XK_kana_NA = 0x04c5, XK_kana_NI = 0x04c6, XK_kana_NU = 0x04c7, XK_kana_NE = 0x04c8, XK_kana_NO = 0x04c9, XK_kana_HA = 0x04ca, XK_kana_HI = 0x04cb, XK_kana_FU = 0x04cc, XK_kana_HU = 0x04cc, XK_kana_HE = 0x04cd, XK_kana_HO = 0x04ce, XK_kana_MA = 0x04cf, XK_kana_MI = 0x04d0, XK_kana_MU = 0x04d1, XK_kana_ME = 0x04d2, XK_kana_MO = 0x04d3, XK_kana_YA = 0x04d4, XK_kana_YU = 0x04d5, XK_kana_YO = 0x04d6, XK_kana_RA = 0x04d7, XK_kana_RI = 0x04d8, XK_kana_RU = 0x04d9, XK_kana_RE = 0x04da, XK_kana_RO = 0x04db, XK_kana_WA = 0x04dc, XK_kana_N = 0x04dd, XK_voicedsound = 0x04de, XK_semivoicedsound = 0x04df, XK_kana_switch = 0xff7e, XK_Farsi_0 = 0x10006f0, XK_Farsi_1 = 0x10006f1, XK_Farsi_2 = 0x10006f2, XK_Farsi_3 = 0x10006f3, XK_Farsi_4 = 0x10006f4, XK_Farsi_5 = 0x10006f5, XK_Farsi_6 = 0x10006f6, XK_Farsi_7 = 0x10006f7, XK_Farsi_8 = 0x10006f8, XK_Farsi_9 = 0x10006f9, XK_Arabic_percent = 0x100066a, XK_Arabic_superscript_alef = 0x1000670, XK_Arabic_tteh = 0x1000679, XK_Arabic_peh = 0x100067e, XK_Arabic_tcheh = 0x1000686, XK_Arabic_ddal = 0x1000688, XK_Arabic_rreh = 0x1000691, XK_Arabic_comma = 0x05ac, XK_Arabic_fullstop = 0x10006d4, XK_Arabic_0 = 0x1000660, XK_Arabic_1 = 0x1000661, XK_Arabic_2 = 0x1000662, XK_Arabic_3 = 0x1000663, XK_Arabic_4 = 0x1000664, XK_Arabic_5 = 0x1000665, XK_Arabic_6 = 0x1000666, XK_Arabic_7 = 0x1000667, XK_Arabic_8 = 0x1000668, XK_Arabic_9 = 0x1000669, XK_Arabic_semicolon = 0x05bb, XK_Arabic_question_mark = 0x05bf, XK_Arabic_hamza = 0x05c1, XK_Arabic_maddaonalef = 0x05c2, XK_Arabic_hamzaonalef = 0x05c3, XK_Arabic_hamzaonwaw = 0x05c4, XK_Arabic_hamzaunderalef = 0x05c5, XK_Arabic_hamzaonyeh = 0x05c6, XK_Arabic_alef = 0x05c7, XK_Arabic_beh = 0x05c8, XK_Arabic_tehmarbuta = 0x05c9, XK_Arabic_teh = 0x05ca, XK_Arabic_theh = 0x05cb, XK_Arabic_jeem = 0x05cc, XK_Arabic_hah = 0x05cd, XK_Arabic_khah = 0x05ce, XK_Arabic_dal = 0x05cf, XK_Arabic_thal = 0x05d0, XK_Arabic_ra = 0x05d1, XK_Arabic_zain = 0x05d2, XK_Arabic_seen = 0x05d3, XK_Arabic_sheen = 0x05d4, XK_Arabic_sad = 0x05d5, XK_Arabic_dad = 0x05d6, XK_Arabic_tah = 0x05d7, XK_Arabic_zah = 0x05d8, XK_Arabic_ain = 0x05d9, XK_Arabic_ghain = 0x05da, XK_Arabic_tatweel = 0x05e0, XK_Arabic_feh = 0x05e1, XK_Arabic_qaf = 0x05e2, XK_Arabic_kaf = 0x05e3, XK_Arabic_lam = 0x05e4, XK_Arabic_meem = 0x05e5, XK_Arabic_noon = 0x05e6, XK_Arabic_ha = 0x05e7, XK_Arabic_heh = 0x05e7, XK_Arabic_waw = 0x05e8, XK_Arabic_alefmaksura = 0x05e9, XK_Arabic_yeh = 0x05ea, XK_Arabic_fathatan = 0x05eb, XK_Arabic_dammatan = 0x05ec, XK_Arabic_kasratan = 0x05ed, XK_Arabic_fatha = 0x05ee, XK_Arabic_damma = 0x05ef, XK_Arabic_kasra = 0x05f0, XK_Arabic_shadda = 0x05f1, XK_Arabic_sukun = 0x05f2, XK_Arabic_madda_above = 0x1000653, XK_Arabic_hamza_above = 0x1000654, XK_Arabic_hamza_below = 0x1000655, XK_Arabic_jeh = 0x1000698, XK_Arabic_veh = 0x10006a4, XK_Arabic_keheh = 0x10006a9, XK_Arabic_gaf = 0x10006af, XK_Arabic_noon_ghunna = 0x10006ba, XK_Arabic_heh_doachashmee = 0x10006be, XK_Farsi_yeh = 0x10006cc, XK_Arabic_farsi_yeh = 0x10006cc, XK_Arabic_yeh_baree = 0x10006d2, XK_Arabic_heh_goal = 0x10006c1, XK_Arabic_switch = 0xff7e, XK_Cyrillic_GHE_bar = 0x1000492, XK_Cyrillic_ghe_bar = 0x1000493, XK_Cyrillic_ZHE_descender = 0x1000496, XK_Cyrillic_zhe_descender = 0x1000497, XK_Cyrillic_KA_descender = 0x100049a, XK_Cyrillic_ka_descender = 0x100049b, XK_Cyrillic_KA_vertstroke = 0x100049c, XK_Cyrillic_ka_vertstroke = 0x100049d, XK_Cyrillic_EN_descender = 0x10004a2, XK_Cyrillic_en_descender = 0x10004a3, XK_Cyrillic_U_straight = 0x10004ae, XK_Cyrillic_u_straight = 0x10004af, XK_Cyrillic_U_straight_bar = 0x10004b0, XK_Cyrillic_u_straight_bar = 0x10004b1, XK_Cyrillic_HA_descender = 0x10004b2, XK_Cyrillic_ha_descender = 0x10004b3, XK_Cyrillic_CHE_descender = 0x10004b6, XK_Cyrillic_che_descender = 0x10004b7, XK_Cyrillic_CHE_vertstroke = 0x10004b8, XK_Cyrillic_che_vertstroke = 0x10004b9, XK_Cyrillic_SHHA = 0x10004ba, XK_Cyrillic_shha = 0x10004bb, XK_Cyrillic_SCHWA = 0x10004d8, XK_Cyrillic_schwa = 0x10004d9, XK_Cyrillic_I_macron = 0x10004e2, XK_Cyrillic_i_macron = 0x10004e3, XK_Cyrillic_O_bar = 0x10004e8, XK_Cyrillic_o_bar = 0x10004e9, XK_Cyrillic_U_macron = 0x10004ee, XK_Cyrillic_u_macron = 0x10004ef, XK_Serbian_dje = 0x06a1, XK_Macedonia_gje = 0x06a2, XK_Cyrillic_io = 0x06a3, XK_Ukrainian_ie = 0x06a4, XK_Ukranian_je = 0x06a4, XK_Macedonia_dse = 0x06a5, XK_Ukrainian_i = 0x06a6, XK_Ukranian_i = 0x06a6, XK_Ukrainian_yi = 0x06a7, XK_Ukranian_yi = 0x06a7, XK_Cyrillic_je = 0x06a8, XK_Serbian_je = 0x06a8, XK_Cyrillic_lje = 0x06a9, XK_Serbian_lje = 0x06a9, XK_Cyrillic_nje = 0x06aa, XK_Serbian_nje = 0x06aa, XK_Serbian_tshe = 0x06ab, XK_Macedonia_kje = 0x06ac, XK_Ukrainian_ghe_with_upturn = 0x06ad, XK_Byelorussian_shortu = 0x06ae, XK_Cyrillic_dzhe = 0x06af, XK_Serbian_dze = 0x06af, XK_numerosign = 0x06b0, XK_Serbian_DJE = 0x06b1, XK_Macedonia_GJE = 0x06b2, XK_Cyrillic_IO = 0x06b3, XK_Ukrainian_IE = 0x06b4, XK_Ukranian_JE = 0x06b4, XK_Macedonia_DSE = 0x06b5, XK_Ukrainian_I = 0x06b6, XK_Ukranian_I = 0x06b6, XK_Ukrainian_YI = 0x06b7, XK_Ukranian_YI = 0x06b7, XK_Cyrillic_JE = 0x06b8, XK_Serbian_JE = 0x06b8, XK_Cyrillic_LJE = 0x06b9, XK_Serbian_LJE = 0x06b9, XK_Cyrillic_NJE = 0x06ba, XK_Serbian_NJE = 0x06ba, XK_Serbian_TSHE = 0x06bb, XK_Macedonia_KJE = 0x06bc, XK_Ukrainian_GHE_WITH_UPTURN = 0x06bd, XK_Byelorussian_SHORTU = 0x06be, XK_Cyrillic_DZHE = 0x06bf, XK_Serbian_DZE = 0x06bf, XK_Cyrillic_yu = 0x06c0, XK_Cyrillic_a = 0x06c1, XK_Cyrillic_be = 0x06c2, XK_Cyrillic_tse = 0x06c3, XK_Cyrillic_de = 0x06c4, XK_Cyrillic_ie = 0x06c5, XK_Cyrillic_ef = 0x06c6, XK_Cyrillic_ghe = 0x06c7, XK_Cyrillic_ha = 0x06c8, XK_Cyrillic_i = 0x06c9, XK_Cyrillic_shorti = 0x06ca, XK_Cyrillic_ka = 0x06cb, XK_Cyrillic_el = 0x06cc, XK_Cyrillic_em = 0x06cd, XK_Cyrillic_en = 0x06ce, XK_Cyrillic_o = 0x06cf, XK_Cyrillic_pe = 0x06d0, XK_Cyrillic_ya = 0x06d1, XK_Cyrillic_er = 0x06d2, XK_Cyrillic_es = 0x06d3, XK_Cyrillic_te = 0x06d4, XK_Cyrillic_u = 0x06d5, XK_Cyrillic_zhe = 0x06d6, XK_Cyrillic_ve = 0x06d7, XK_Cyrillic_softsign = 0x06d8, XK_Cyrillic_yeru = 0x06d9, XK_Cyrillic_ze = 0x06da, XK_Cyrillic_sha = 0x06db, XK_Cyrillic_e = 0x06dc, XK_Cyrillic_shcha = 0x06dd, XK_Cyrillic_che = 0x06de, XK_Cyrillic_hardsign = 0x06df, XK_Cyrillic_YU = 0x06e0, XK_Cyrillic_A = 0x06e1, XK_Cyrillic_BE = 0x06e2, XK_Cyrillic_TSE = 0x06e3, XK_Cyrillic_DE = 0x06e4, XK_Cyrillic_IE = 0x06e5, XK_Cyrillic_EF = 0x06e6, XK_Cyrillic_GHE = 0x06e7, XK_Cyrillic_HA = 0x06e8, XK_Cyrillic_I = 0x06e9, XK_Cyrillic_SHORTI = 0x06ea, XK_Cyrillic_KA = 0x06eb, XK_Cyrillic_EL = 0x06ec, XK_Cyrillic_EM = 0x06ed, XK_Cyrillic_EN = 0x06ee, XK_Cyrillic_O = 0x06ef, XK_Cyrillic_PE = 0x06f0, XK_Cyrillic_YA = 0x06f1, XK_Cyrillic_ER = 0x06f2, XK_Cyrillic_ES = 0x06f3, XK_Cyrillic_TE = 0x06f4, XK_Cyrillic_U = 0x06f5, XK_Cyrillic_ZHE = 0x06f6, XK_Cyrillic_VE = 0x06f7, XK_Cyrillic_SOFTSIGN = 0x06f8, XK_Cyrillic_YERU = 0x06f9, XK_Cyrillic_ZE = 0x06fa, XK_Cyrillic_SHA = 0x06fb, XK_Cyrillic_E = 0x06fc, XK_Cyrillic_SHCHA = 0x06fd, XK_Cyrillic_CHE = 0x06fe, XK_Cyrillic_HARDSIGN = 0x06ff, XK_Greek_ALPHAaccent = 0x07a1, XK_Greek_EPSILONaccent = 0x07a2, XK_Greek_ETAaccent = 0x07a3, XK_Greek_IOTAaccent = 0x07a4, XK_Greek_IOTAdieresis = 0x07a5, XK_Greek_IOTAdiaeresis = 0x07a5, XK_Greek_OMICRONaccent = 0x07a7, XK_Greek_UPSILONaccent = 0x07a8, XK_Greek_UPSILONdieresis = 0x07a9, XK_Greek_OMEGAaccent = 0x07ab, XK_Greek_accentdieresis = 0x07ae, XK_Greek_horizbar = 0x07af, XK_Greek_alphaaccent = 0x07b1, XK_Greek_epsilonaccent = 0x07b2, XK_Greek_etaaccent = 0x07b3, XK_Greek_iotaaccent = 0x07b4, XK_Greek_iotadieresis = 0x07b5, XK_Greek_iotaaccentdieresis = 0x07b6, XK_Greek_omicronaccent = 0x07b7, XK_Greek_upsilonaccent = 0x07b8, XK_Greek_upsilondieresis = 0x07b9, XK_Greek_upsilonaccentdieresis = 0x07ba, XK_Greek_omegaaccent = 0x07bb, XK_Greek_ALPHA = 0x07c1, XK_Greek_BETA = 0x07c2, XK_Greek_GAMMA = 0x07c3, XK_Greek_DELTA = 0x07c4, XK_Greek_EPSILON = 0x07c5, XK_Greek_ZETA = 0x07c6, XK_Greek_ETA = 0x07c7, XK_Greek_THETA = 0x07c8, XK_Greek_IOTA = 0x07c9, XK_Greek_KAPPA = 0x07ca, XK_Greek_LAMDA = 0x07cb, XK_Greek_LAMBDA = 0x07cb, XK_Greek_MU = 0x07cc, XK_Greek_NU = 0x07cd, XK_Greek_XI = 0x07ce, XK_Greek_OMICRON = 0x07cf, XK_Greek_PI = 0x07d0, XK_Greek_RHO = 0x07d1, XK_Greek_SIGMA = 0x07d2, XK_Greek_TAU = 0x07d4, XK_Greek_UPSILON = 0x07d5, XK_Greek_PHI = 0x07d6, XK_Greek_CHI = 0x07d7, XK_Greek_PSI = 0x07d8, XK_Greek_OMEGA = 0x07d9, XK_Greek_alpha = 0x07e1, XK_Greek_beta = 0x07e2, XK_Greek_gamma = 0x07e3, XK_Greek_delta = 0x07e4, XK_Greek_epsilon = 0x07e5, XK_Greek_zeta = 0x07e6, XK_Greek_eta = 0x07e7, XK_Greek_theta = 0x07e8, XK_Greek_iota = 0x07e9, XK_Greek_kappa = 0x07ea, XK_Greek_lamda = 0x07eb, XK_Greek_lambda = 0x07eb, XK_Greek_mu = 0x07ec, XK_Greek_nu = 0x07ed, XK_Greek_xi = 0x07ee, XK_Greek_omicron = 0x07ef, XK_Greek_pi = 0x07f0, XK_Greek_rho = 0x07f1, XK_Greek_sigma = 0x07f2, XK_Greek_finalsmallsigma = 0x07f3, XK_Greek_tau = 0x07f4, XK_Greek_upsilon = 0x07f5, XK_Greek_phi = 0x07f6, XK_Greek_chi = 0x07f7, XK_Greek_psi = 0x07f8, XK_Greek_omega = 0x07f9, XK_Greek_switch = 0xff7e, XK_hebrew_doublelowline = 0x0cdf, XK_hebrew_aleph = 0x0ce0, XK_hebrew_bet = 0x0ce1, XK_hebrew_beth = 0x0ce1, XK_hebrew_gimel = 0x0ce2, XK_hebrew_gimmel = 0x0ce2, XK_hebrew_dalet = 0x0ce3, XK_hebrew_daleth = 0x0ce3, XK_hebrew_he = 0x0ce4, XK_hebrew_waw = 0x0ce5, XK_hebrew_zain = 0x0ce6, XK_hebrew_zayin = 0x0ce6, XK_hebrew_chet = 0x0ce7, XK_hebrew_het = 0x0ce7, XK_hebrew_tet = 0x0ce8, XK_hebrew_teth = 0x0ce8, XK_hebrew_yod = 0x0ce9, XK_hebrew_finalkaph = 0x0cea, XK_hebrew_kaph = 0x0ceb, XK_hebrew_lamed = 0x0cec, XK_hebrew_finalmem = 0x0ced, XK_hebrew_mem = 0x0cee, XK_hebrew_finalnun = 0x0cef, XK_hebrew_nun = 0x0cf0, XK_hebrew_samech = 0x0cf1, XK_hebrew_samekh = 0x0cf1, XK_hebrew_ayin = 0x0cf2, XK_hebrew_finalpe = 0x0cf3, XK_hebrew_pe = 0x0cf4, XK_hebrew_finalzade = 0x0cf5, XK_hebrew_finalzadi = 0x0cf5, XK_hebrew_zade = 0x0cf6, XK_hebrew_zadi = 0x0cf6, XK_hebrew_qoph = 0x0cf7, XK_hebrew_kuf = 0x0cf7, XK_hebrew_resh = 0x0cf8, XK_hebrew_shin = 0x0cf9, XK_hebrew_taw = 0x0cfa, XK_hebrew_taf = 0x0cfa, XK_Hebrew_switch = 0xff7e, XK_Thai_kokai = 0x0da1, XK_Thai_khokhai = 0x0da2, XK_Thai_khokhuat = 0x0da3, XK_Thai_khokhwai = 0x0da4, XK_Thai_khokhon = 0x0da5, XK_Thai_khorakhang = 0x0da6, XK_Thai_ngongu = 0x0da7, XK_Thai_chochan = 0x0da8, XK_Thai_choching = 0x0da9, XK_Thai_chochang = 0x0daa, XK_Thai_soso = 0x0dab, XK_Thai_chochoe = 0x0dac, XK_Thai_yoying = 0x0dad, XK_Thai_dochada = 0x0dae, XK_Thai_topatak = 0x0daf, XK_Thai_thothan = 0x0db0, XK_Thai_thonangmontho = 0x0db1, XK_Thai_thophuthao = 0x0db2, XK_Thai_nonen = 0x0db3, XK_Thai_dodek = 0x0db4, XK_Thai_totao = 0x0db5, XK_Thai_thothung = 0x0db6, XK_Thai_thothahan = 0x0db7, XK_Thai_thothong = 0x0db8, XK_Thai_nonu = 0x0db9, XK_Thai_bobaimai = 0x0dba, XK_Thai_popla = 0x0dbb, XK_Thai_phophung = 0x0dbc, XK_Thai_fofa = 0x0dbd, XK_Thai_phophan = 0x0dbe, XK_Thai_fofan = 0x0dbf, XK_Thai_phosamphao = 0x0dc0, XK_Thai_moma = 0x0dc1, XK_Thai_yoyak = 0x0dc2, XK_Thai_rorua = 0x0dc3, XK_Thai_ru = 0x0dc4, XK_Thai_loling = 0x0dc5, XK_Thai_lu = 0x0dc6, XK_Thai_wowaen = 0x0dc7, XK_Thai_sosala = 0x0dc8, XK_Thai_sorusi = 0x0dc9, XK_Thai_sosua = 0x0dca, XK_Thai_hohip = 0x0dcb, XK_Thai_lochula = 0x0dcc, XK_Thai_oang = 0x0dcd, XK_Thai_honokhuk = 0x0dce, XK_Thai_paiyannoi = 0x0dcf, XK_Thai_saraa = 0x0dd0, XK_Thai_maihanakat = 0x0dd1, XK_Thai_saraaa = 0x0dd2, XK_Thai_saraam = 0x0dd3, XK_Thai_sarai = 0x0dd4, XK_Thai_saraii = 0x0dd5, XK_Thai_saraue = 0x0dd6, XK_Thai_sarauee = 0x0dd7, XK_Thai_sarau = 0x0dd8, XK_Thai_sarauu = 0x0dd9, XK_Thai_phinthu = 0x0dda, XK_Thai_maihanakat_maitho = 0x0dde, XK_Thai_baht = 0x0ddf, XK_Thai_sarae = 0x0de0, XK_Thai_saraae = 0x0de1, XK_Thai_sarao = 0x0de2, XK_Thai_saraaimaimuan = 0x0de3, XK_Thai_saraaimaimalai = 0x0de4, XK_Thai_lakkhangyao = 0x0de5, XK_Thai_maiyamok = 0x0de6, XK_Thai_maitaikhu = 0x0de7, XK_Thai_maiek = 0x0de8, XK_Thai_maitho = 0x0de9, XK_Thai_maitri = 0x0dea, XK_Thai_maichattawa = 0x0deb, XK_Thai_thanthakhat = 0x0dec, XK_Thai_nikhahit = 0x0ded, XK_Thai_leksun = 0x0df0, XK_Thai_leknung = 0x0df1, XK_Thai_leksong = 0x0df2, XK_Thai_leksam = 0x0df3, XK_Thai_leksi = 0x0df4, XK_Thai_lekha = 0x0df5, XK_Thai_lekhok = 0x0df6, XK_Thai_lekchet = 0x0df7, XK_Thai_lekpaet = 0x0df8, XK_Thai_lekkao = 0x0df9, XK_Hangul = 0xff31, XK_Hangul_Start = 0xff32, XK_Hangul_End = 0xff33, XK_Hangul_Hanja = 0xff34, XK_Hangul_Jamo = 0xff35, XK_Hangul_Romaja = 0xff36, XK_Hangul_Codeinput = 0xff37, XK_Hangul_Jeonja = 0xff38, XK_Hangul_Banja = 0xff39, XK_Hangul_PreHanja = 0xff3a, XK_Hangul_PostHanja = 0xff3b, XK_Hangul_SingleCandidate = 0xff3c, XK_Hangul_MultipleCandidate = 0xff3d, XK_Hangul_PreviousCandidate = 0xff3e, XK_Hangul_Special = 0xff3f, XK_Hangul_switch = 0xff7e, XK_Hangul_Kiyeog = 0x0ea1, XK_Hangul_SsangKiyeog = 0x0ea2, XK_Hangul_KiyeogSios = 0x0ea3, XK_Hangul_Nieun = 0x0ea4, XK_Hangul_NieunJieuj = 0x0ea5, XK_Hangul_NieunHieuh = 0x0ea6, XK_Hangul_Dikeud = 0x0ea7, XK_Hangul_SsangDikeud = 0x0ea8, XK_Hangul_Rieul = 0x0ea9, XK_Hangul_RieulKiyeog = 0x0eaa, XK_Hangul_RieulMieum = 0x0eab, XK_Hangul_RieulPieub = 0x0eac, XK_Hangul_RieulSios = 0x0ead, XK_Hangul_RieulTieut = 0x0eae, XK_Hangul_RieulPhieuf = 0x0eaf, XK_Hangul_RieulHieuh = 0x0eb0, XK_Hangul_Mieum = 0x0eb1, XK_Hangul_Pieub = 0x0eb2, XK_Hangul_SsangPieub = 0x0eb3, XK_Hangul_PieubSios = 0x0eb4, XK_Hangul_Sios = 0x0eb5, XK_Hangul_SsangSios = 0x0eb6, XK_Hangul_Ieung = 0x0eb7, XK_Hangul_Jieuj = 0x0eb8, XK_Hangul_SsangJieuj = 0x0eb9, XK_Hangul_Cieuc = 0x0eba, XK_Hangul_Khieuq = 0x0ebb, XK_Hangul_Tieut = 0x0ebc, XK_Hangul_Phieuf = 0x0ebd, XK_Hangul_Hieuh = 0x0ebe, XK_Hangul_A = 0x0ebf, XK_Hangul_AE = 0x0ec0, XK_Hangul_YA = 0x0ec1, XK_Hangul_YAE = 0x0ec2, XK_Hangul_EO = 0x0ec3, XK_Hangul_E = 0x0ec4, XK_Hangul_YEO = 0x0ec5, XK_Hangul_YE = 0x0ec6, XK_Hangul_O = 0x0ec7, XK_Hangul_WA = 0x0ec8, XK_Hangul_WAE = 0x0ec9, XK_Hangul_OE = 0x0eca, XK_Hangul_YO = 0x0ecb, XK_Hangul_U = 0x0ecc, XK_Hangul_WEO = 0x0ecd, XK_Hangul_WE = 0x0ece, XK_Hangul_WI = 0x0ecf, XK_Hangul_YU = 0x0ed0, XK_Hangul_EU = 0x0ed1, XK_Hangul_YI = 0x0ed2, XK_Hangul_I = 0x0ed3, XK_Hangul_J_Kiyeog = 0x0ed4, XK_Hangul_J_SsangKiyeog = 0x0ed5, XK_Hangul_J_KiyeogSios = 0x0ed6, XK_Hangul_J_Nieun = 0x0ed7, XK_Hangul_J_NieunJieuj = 0x0ed8, XK_Hangul_J_NieunHieuh = 0x0ed9, XK_Hangul_J_Dikeud = 0x0eda, XK_Hangul_J_Rieul = 0x0edb, XK_Hangul_J_RieulKiyeog = 0x0edc, XK_Hangul_J_RieulMieum = 0x0edd, XK_Hangul_J_RieulPieub = 0x0ede, XK_Hangul_J_RieulSios = 0x0edf, XK_Hangul_J_RieulTieut = 0x0ee0, XK_Hangul_J_RieulPhieuf = 0x0ee1, XK_Hangul_J_RieulHieuh = 0x0ee2, XK_Hangul_J_Mieum = 0x0ee3, XK_Hangul_J_Pieub = 0x0ee4, XK_Hangul_J_PieubSios = 0x0ee5, XK_Hangul_J_Sios = 0x0ee6, XK_Hangul_J_SsangSios = 0x0ee7, XK_Hangul_J_Ieung = 0x0ee8, XK_Hangul_J_Jieuj = 0x0ee9, XK_Hangul_J_Cieuc = 0x0eea, XK_Hangul_J_Khieuq = 0x0eeb, XK_Hangul_J_Tieut = 0x0eec, XK_Hangul_J_Phieuf = 0x0eed, XK_Hangul_J_Hieuh = 0x0eee, XK_Hangul_RieulYeorinHieuh = 0x0eef, XK_Hangul_SunkyeongeumMieum = 0x0ef0, XK_Hangul_SunkyeongeumPieub = 0x0ef1, XK_Hangul_PanSios = 0x0ef2, XK_Hangul_KkogjiDalrinIeung = 0x0ef3, XK_Hangul_SunkyeongeumPhieuf = 0x0ef4, XK_Hangul_YeorinHieuh = 0x0ef5, XK_Hangul_AraeA = 0x0ef6, XK_Hangul_AraeAE = 0x0ef7, XK_Hangul_J_PanSios = 0x0ef8, XK_Hangul_J_KkogjiDalrinIeung = 0x0ef9, XK_Hangul_J_YeorinHieuh = 0x0efa, XK_Korean_Won = 0x0eff, XK_Armenian_ligature_ew = 0x1000587, XK_Armenian_full_stop = 0x1000589, XK_Armenian_verjaket = 0x1000589, XK_Armenian_separation_mark = 0x100055d, XK_Armenian_but = 0x100055d, XK_Armenian_hyphen = 0x100058a, XK_Armenian_yentamna = 0x100058a, XK_Armenian_exclam = 0x100055c, XK_Armenian_amanak = 0x100055c, XK_Armenian_accent = 0x100055b, XK_Armenian_shesht = 0x100055b, XK_Armenian_question = 0x100055e, XK_Armenian_paruyk = 0x100055e, XK_Armenian_AYB = 0x1000531, XK_Armenian_ayb = 0x1000561, XK_Armenian_BEN = 0x1000532, XK_Armenian_ben = 0x1000562, XK_Armenian_GIM = 0x1000533, XK_Armenian_gim = 0x1000563, XK_Armenian_DA = 0x1000534, XK_Armenian_da = 0x1000564, XK_Armenian_YECH = 0x1000535, XK_Armenian_yech = 0x1000565, XK_Armenian_ZA = 0x1000536, XK_Armenian_za = 0x1000566, XK_Armenian_E = 0x1000537, XK_Armenian_e = 0x1000567, XK_Armenian_AT = 0x1000538, XK_Armenian_at = 0x1000568, XK_Armenian_TO = 0x1000539, XK_Armenian_to = 0x1000569, XK_Armenian_ZHE = 0x100053a, XK_Armenian_zhe = 0x100056a, XK_Armenian_INI = 0x100053b, XK_Armenian_ini = 0x100056b, XK_Armenian_LYUN = 0x100053c, XK_Armenian_lyun = 0x100056c, XK_Armenian_KHE = 0x100053d, XK_Armenian_khe = 0x100056d, XK_Armenian_TSA = 0x100053e, XK_Armenian_tsa = 0x100056e, XK_Armenian_KEN = 0x100053f, XK_Armenian_ken = 0x100056f, XK_Armenian_HO = 0x1000540, XK_Armenian_ho = 0x1000570, XK_Armenian_DZA = 0x1000541, XK_Armenian_dza = 0x1000571, XK_Armenian_GHAT = 0x1000542, XK_Armenian_ghat = 0x1000572, XK_Armenian_TCHE = 0x1000543, XK_Armenian_tche = 0x1000573, XK_Armenian_MEN = 0x1000544, XK_Armenian_men = 0x1000574, XK_Armenian_HI = 0x1000545, XK_Armenian_hi = 0x1000575, XK_Armenian_NU = 0x1000546, XK_Armenian_nu = 0x1000576, XK_Armenian_SHA = 0x1000547, XK_Armenian_sha = 0x1000577, XK_Armenian_VO = 0x1000548, XK_Armenian_vo = 0x1000578, XK_Armenian_CHA = 0x1000549, XK_Armenian_cha = 0x1000579, XK_Armenian_PE = 0x100054a, XK_Armenian_pe = 0x100057a, XK_Armenian_JE = 0x100054b, XK_Armenian_je = 0x100057b, XK_Armenian_RA = 0x100054c, XK_Armenian_ra = 0x100057c, XK_Armenian_SE = 0x100054d, XK_Armenian_se = 0x100057d, XK_Armenian_VEV = 0x100054e, XK_Armenian_vev = 0x100057e, XK_Armenian_TYUN = 0x100054f, XK_Armenian_tyun = 0x100057f, XK_Armenian_RE = 0x1000550, XK_Armenian_re = 0x1000580, XK_Armenian_TSO = 0x1000551, XK_Armenian_tso = 0x1000581, XK_Armenian_VYUN = 0x1000552, XK_Armenian_vyun = 0x1000582, XK_Armenian_PYUR = 0x1000553, XK_Armenian_pyur = 0x1000583, XK_Armenian_KE = 0x1000554, XK_Armenian_ke = 0x1000584, XK_Armenian_O = 0x1000555, XK_Armenian_o = 0x1000585, XK_Armenian_FE = 0x1000556, XK_Armenian_fe = 0x1000586, XK_Armenian_apostrophe = 0x100055a, XK_Georgian_an = 0x10010d0, XK_Georgian_ban = 0x10010d1, XK_Georgian_gan = 0x10010d2, XK_Georgian_don = 0x10010d3, XK_Georgian_en = 0x10010d4, XK_Georgian_vin = 0x10010d5, XK_Georgian_zen = 0x10010d6, XK_Georgian_tan = 0x10010d7, XK_Georgian_in = 0x10010d8, XK_Georgian_kan = 0x10010d9, XK_Georgian_las = 0x10010da, XK_Georgian_man = 0x10010db, XK_Georgian_nar = 0x10010dc, XK_Georgian_on = 0x10010dd, XK_Georgian_par = 0x10010de, XK_Georgian_zhar = 0x10010df, XK_Georgian_rae = 0x10010e0, XK_Georgian_san = 0x10010e1, XK_Georgian_tar = 0x10010e2, XK_Georgian_un = 0x10010e3, XK_Georgian_phar = 0x10010e4, XK_Georgian_khar = 0x10010e5, XK_Georgian_ghan = 0x10010e6, XK_Georgian_qar = 0x10010e7, XK_Georgian_shin = 0x10010e8, XK_Georgian_chin = 0x10010e9, XK_Georgian_can = 0x10010ea, XK_Georgian_jil = 0x10010eb, XK_Georgian_cil = 0x10010ec, XK_Georgian_char = 0x10010ed, XK_Georgian_xan = 0x10010ee, XK_Georgian_jhan = 0x10010ef, XK_Georgian_hae = 0x10010f0, XK_Georgian_he = 0x10010f1, XK_Georgian_hie = 0x10010f2, XK_Georgian_we = 0x10010f3, XK_Georgian_har = 0x10010f4, XK_Georgian_hoe = 0x10010f5, XK_Georgian_fi = 0x10010f6, XK_Xabovedot = 0x1001e8a, XK_Ibreve = 0x100012c, XK_Zstroke = 0x10001b5, XK_Gcaron = 0x10001e6, XK_Ocaron = 0x10001d1, XK_Obarred = 0x100019f, XK_xabovedot = 0x1001e8b, XK_ibreve = 0x100012d, XK_zstroke = 0x10001b6, XK_gcaron = 0x10001e7, XK_ocaron = 0x10001d2, XK_obarred = 0x1000275, XK_SCHWA = 0x100018f, XK_schwa = 0x1000259, XK_Lbelowdot = 0x1001e36, XK_lbelowdot = 0x1001e37, XK_Abelowdot = 0x1001ea0, XK_abelowdot = 0x1001ea1, XK_Ahook = 0x1001ea2, XK_ahook = 0x1001ea3, XK_Acircumflexacute = 0x1001ea4, XK_acircumflexacute = 0x1001ea5, XK_Acircumflexgrave = 0x1001ea6, XK_acircumflexgrave = 0x1001ea7, XK_Acircumflexhook = 0x1001ea8, XK_acircumflexhook = 0x1001ea9, XK_Acircumflextilde = 0x1001eaa, XK_acircumflextilde = 0x1001eab, XK_Acircumflexbelowdot = 0x1001eac, XK_acircumflexbelowdot = 0x1001ead, XK_Abreveacute = 0x1001eae, XK_abreveacute = 0x1001eaf, XK_Abrevegrave = 0x1001eb0, XK_abrevegrave = 0x1001eb1, XK_Abrevehook = 0x1001eb2, XK_abrevehook = 0x1001eb3, XK_Abrevetilde = 0x1001eb4, XK_abrevetilde = 0x1001eb5, XK_Abrevebelowdot = 0x1001eb6, XK_abrevebelowdot = 0x1001eb7, XK_Ebelowdot = 0x1001eb8, XK_ebelowdot = 0x1001eb9, XK_Ehook = 0x1001eba, XK_ehook = 0x1001ebb, XK_Etilde = 0x1001ebc, XK_etilde = 0x1001ebd, XK_Ecircumflexacute = 0x1001ebe, XK_ecircumflexacute = 0x1001ebf, XK_Ecircumflexgrave = 0x1001ec0, XK_ecircumflexgrave = 0x1001ec1, XK_Ecircumflexhook = 0x1001ec2, XK_ecircumflexhook = 0x1001ec3, XK_Ecircumflextilde = 0x1001ec4, XK_ecircumflextilde = 0x1001ec5, XK_Ecircumflexbelowdot = 0x1001ec6, XK_ecircumflexbelowdot = 0x1001ec7, XK_Ihook = 0x1001ec8, XK_ihook = 0x1001ec9, XK_Ibelowdot = 0x1001eca, XK_ibelowdot = 0x1001ecb, XK_Obelowdot = 0x1001ecc, XK_obelowdot = 0x1001ecd, XK_Ohook = 0x1001ece, XK_ohook = 0x1001ecf, XK_Ocircumflexacute = 0x1001ed0, XK_ocircumflexacute = 0x1001ed1, XK_Ocircumflexgrave = 0x1001ed2, XK_ocircumflexgrave = 0x1001ed3, XK_Ocircumflexhook = 0x1001ed4, XK_ocircumflexhook = 0x1001ed5, XK_Ocircumflextilde = 0x1001ed6, XK_ocircumflextilde = 0x1001ed7, XK_Ocircumflexbelowdot = 0x1001ed8, XK_ocircumflexbelowdot = 0x1001ed9, XK_Ohornacute = 0x1001eda, XK_ohornacute = 0x1001edb, XK_Ohorngrave = 0x1001edc, XK_ohorngrave = 0x1001edd, XK_Ohornhook = 0x1001ede, XK_ohornhook = 0x1001edf, XK_Ohorntilde = 0x1001ee0, XK_ohorntilde = 0x1001ee1, XK_Ohornbelowdot = 0x1001ee2, XK_ohornbelowdot = 0x1001ee3, XK_Ubelowdot = 0x1001ee4, XK_ubelowdot = 0x1001ee5, XK_Uhook = 0x1001ee6, XK_uhook = 0x1001ee7, XK_Uhornacute = 0x1001ee8, XK_uhornacute = 0x1001ee9, XK_Uhorngrave = 0x1001eea, XK_uhorngrave = 0x1001eeb, XK_Uhornhook = 0x1001eec, XK_uhornhook = 0x1001eed, XK_Uhorntilde = 0x1001eee, XK_uhorntilde = 0x1001eef, XK_Uhornbelowdot = 0x1001ef0, XK_uhornbelowdot = 0x1001ef1, XK_Ybelowdot = 0x1001ef4, XK_ybelowdot = 0x1001ef5, XK_Yhook = 0x1001ef6, XK_yhook = 0x1001ef7, XK_Ytilde = 0x1001ef8, XK_ytilde = 0x1001ef9, XK_Ohorn = 0x10001a0, XK_ohorn = 0x10001a1, XK_Uhorn = 0x10001af, XK_uhorn = 0x10001b0, XK_EcuSign = 0x10020a0, XK_ColonSign = 0x10020a1, XK_CruzeiroSign = 0x10020a2, XK_FFrancSign = 0x10020a3, XK_LiraSign = 0x10020a4, XK_MillSign = 0x10020a5, XK_NairaSign = 0x10020a6, XK_PesetaSign = 0x10020a7, XK_RupeeSign = 0x10020a8, XK_WonSign = 0x10020a9, XK_NewSheqelSign = 0x10020aa, XK_DongSign = 0x10020ab, XK_EuroSign = 0x20ac, XK_zerosuperior = 0x1002070, XK_foursuperior = 0x1002074, XK_fivesuperior = 0x1002075, XK_sixsuperior = 0x1002076, XK_sevensuperior = 0x1002077, XK_eightsuperior = 0x1002078, XK_ninesuperior = 0x1002079, XK_zerosubscript = 0x1002080, XK_onesubscript = 0x1002081, XK_twosubscript = 0x1002082, XK_threesubscript = 0x1002083, XK_foursubscript = 0x1002084, XK_fivesubscript = 0x1002085, XK_sixsubscript = 0x1002086, XK_sevensubscript = 0x1002087, XK_eightsubscript = 0x1002088, XK_ninesubscript = 0x1002089, XK_partdifferential = 0x1002202, XK_emptyset = 0x1002205, XK_elementof = 0x1002208, XK_notelementof = 0x1002209, XK_containsas = 0x100220B, XK_squareroot = 0x100221A, XK_cuberoot = 0x100221B, XK_fourthroot = 0x100221C, XK_dintegral = 0x100222C, XK_tintegral = 0x100222D, XK_because = 0x1002235, XK_approxeq = 0x1002248, XK_notapproxeq = 0x1002247, XK_notidentical = 0x1002262, XK_stricteq = 0x1002263, XK_braille_dot_1 = 0xfff1, XK_braille_dot_2 = 0xfff2, XK_braille_dot_3 = 0xfff3, XK_braille_dot_4 = 0xfff4, XK_braille_dot_5 = 0xfff5, XK_braille_dot_6 = 0xfff6, XK_braille_dot_7 = 0xfff7, XK_braille_dot_8 = 0xfff8, XK_braille_dot_9 = 0xfff9, XK_braille_dot_10 = 0xfffa, XK_braille_blank = 0x1002800, XK_braille_dots_1 = 0x1002801, XK_braille_dots_2 = 0x1002802, XK_braille_dots_12 = 0x1002803, XK_braille_dots_3 = 0x1002804, XK_braille_dots_13 = 0x1002805, XK_braille_dots_23 = 0x1002806, XK_braille_dots_123 = 0x1002807, XK_braille_dots_4 = 0x1002808, XK_braille_dots_14 = 0x1002809, XK_braille_dots_24 = 0x100280a, XK_braille_dots_124 = 0x100280b, XK_braille_dots_34 = 0x100280c, XK_braille_dots_134 = 0x100280d, XK_braille_dots_234 = 0x100280e, XK_braille_dots_1234 = 0x100280f, XK_braille_dots_5 = 0x1002810, XK_braille_dots_15 = 0x1002811, XK_braille_dots_25 = 0x1002812, XK_braille_dots_125 = 0x1002813, XK_braille_dots_35 = 0x1002814, XK_braille_dots_135 = 0x1002815, XK_braille_dots_235 = 0x1002816, XK_braille_dots_1235 = 0x1002817, XK_braille_dots_45 = 0x1002818, XK_braille_dots_145 = 0x1002819, XK_braille_dots_245 = 0x100281a, XK_braille_dots_1245 = 0x100281b, XK_braille_dots_345 = 0x100281c, XK_braille_dots_1345 = 0x100281d, XK_braille_dots_2345 = 0x100281e, XK_braille_dots_12345 = 0x100281f, XK_braille_dots_6 = 0x1002820, XK_braille_dots_16 = 0x1002821, XK_braille_dots_26 = 0x1002822, XK_braille_dots_126 = 0x1002823, XK_braille_dots_36 = 0x1002824, XK_braille_dots_136 = 0x1002825, XK_braille_dots_236 = 0x1002826, XK_braille_dots_1236 = 0x1002827, XK_braille_dots_46 = 0x1002828, XK_braille_dots_146 = 0x1002829, XK_braille_dots_246 = 0x100282a, XK_braille_dots_1246 = 0x100282b, XK_braille_dots_346 = 0x100282c, XK_braille_dots_1346 = 0x100282d, XK_braille_dots_2346 = 0x100282e, XK_braille_dots_12346 = 0x100282f, XK_braille_dots_56 = 0x1002830, XK_braille_dots_156 = 0x1002831, XK_braille_dots_256 = 0x1002832, XK_braille_dots_1256 = 0x1002833, XK_braille_dots_356 = 0x1002834, XK_braille_dots_1356 = 0x1002835, XK_braille_dots_2356 = 0x1002836, XK_braille_dots_12356 = 0x1002837, XK_braille_dots_456 = 0x1002838, XK_braille_dots_1456 = 0x1002839, XK_braille_dots_2456 = 0x100283a, XK_braille_dots_12456 = 0x100283b, XK_braille_dots_3456 = 0x100283c, XK_braille_dots_13456 = 0x100283d, XK_braille_dots_23456 = 0x100283e, XK_braille_dots_123456 = 0x100283f, XK_braille_dots_7 = 0x1002840, XK_braille_dots_17 = 0x1002841, XK_braille_dots_27 = 0x1002842, XK_braille_dots_127 = 0x1002843, XK_braille_dots_37 = 0x1002844, XK_braille_dots_137 = 0x1002845, XK_braille_dots_237 = 0x1002846, XK_braille_dots_1237 = 0x1002847, XK_braille_dots_47 = 0x1002848, XK_braille_dots_147 = 0x1002849, XK_braille_dots_247 = 0x100284a, XK_braille_dots_1247 = 0x100284b, XK_braille_dots_347 = 0x100284c, XK_braille_dots_1347 = 0x100284d, XK_braille_dots_2347 = 0x100284e, XK_braille_dots_12347 = 0x100284f, XK_braille_dots_57 = 0x1002850, XK_braille_dots_157 = 0x1002851, XK_braille_dots_257 = 0x1002852, XK_braille_dots_1257 = 0x1002853, XK_braille_dots_357 = 0x1002854, XK_braille_dots_1357 = 0x1002855, XK_braille_dots_2357 = 0x1002856, XK_braille_dots_12357 = 0x1002857, XK_braille_dots_457 = 0x1002858, XK_braille_dots_1457 = 0x1002859, XK_braille_dots_2457 = 0x100285a, XK_braille_dots_12457 = 0x100285b, XK_braille_dots_3457 = 0x100285c, XK_braille_dots_13457 = 0x100285d, XK_braille_dots_23457 = 0x100285e, XK_braille_dots_123457 = 0x100285f, XK_braille_dots_67 = 0x1002860, XK_braille_dots_167 = 0x1002861, XK_braille_dots_267 = 0x1002862, XK_braille_dots_1267 = 0x1002863, XK_braille_dots_367 = 0x1002864, XK_braille_dots_1367 = 0x1002865, XK_braille_dots_2367 = 0x1002866, XK_braille_dots_12367 = 0x1002867, XK_braille_dots_467 = 0x1002868, XK_braille_dots_1467 = 0x1002869, XK_braille_dots_2467 = 0x100286a, XK_braille_dots_12467 = 0x100286b, XK_braille_dots_3467 = 0x100286c, XK_braille_dots_13467 = 0x100286d, XK_braille_dots_23467 = 0x100286e, XK_braille_dots_123467 = 0x100286f, XK_braille_dots_567 = 0x1002870, XK_braille_dots_1567 = 0x1002871, XK_braille_dots_2567 = 0x1002872, XK_braille_dots_12567 = 0x1002873, XK_braille_dots_3567 = 0x1002874, XK_braille_dots_13567 = 0x1002875, XK_braille_dots_23567 = 0x1002876, XK_braille_dots_123567 = 0x1002877, XK_braille_dots_4567 = 0x1002878, XK_braille_dots_14567 = 0x1002879, XK_braille_dots_24567 = 0x100287a, XK_braille_dots_124567 = 0x100287b, XK_braille_dots_34567 = 0x100287c, XK_braille_dots_134567 = 0x100287d, XK_braille_dots_234567 = 0x100287e, XK_braille_dots_1234567 = 0x100287f, XK_braille_dots_8 = 0x1002880, XK_braille_dots_18 = 0x1002881, XK_braille_dots_28 = 0x1002882, XK_braille_dots_128 = 0x1002883, XK_braille_dots_38 = 0x1002884, XK_braille_dots_138 = 0x1002885, XK_braille_dots_238 = 0x1002886, XK_braille_dots_1238 = 0x1002887, XK_braille_dots_48 = 0x1002888, XK_braille_dots_148 = 0x1002889, XK_braille_dots_248 = 0x100288a, XK_braille_dots_1248 = 0x100288b, XK_braille_dots_348 = 0x100288c, XK_braille_dots_1348 = 0x100288d, XK_braille_dots_2348 = 0x100288e, XK_braille_dots_12348 = 0x100288f, XK_braille_dots_58 = 0x1002890, XK_braille_dots_158 = 0x1002891, XK_braille_dots_258 = 0x1002892, XK_braille_dots_1258 = 0x1002893, XK_braille_dots_358 = 0x1002894, XK_braille_dots_1358 = 0x1002895, XK_braille_dots_2358 = 0x1002896, XK_braille_dots_12358 = 0x1002897, XK_braille_dots_458 = 0x1002898, XK_braille_dots_1458 = 0x1002899, XK_braille_dots_2458 = 0x100289a, XK_braille_dots_12458 = 0x100289b, XK_braille_dots_3458 = 0x100289c, XK_braille_dots_13458 = 0x100289d, XK_braille_dots_23458 = 0x100289e, XK_braille_dots_123458 = 0x100289f, XK_braille_dots_68 = 0x10028a0, XK_braille_dots_168 = 0x10028a1, XK_braille_dots_268 = 0x10028a2, XK_braille_dots_1268 = 0x10028a3, XK_braille_dots_368 = 0x10028a4, XK_braille_dots_1368 = 0x10028a5, XK_braille_dots_2368 = 0x10028a6, XK_braille_dots_12368 = 0x10028a7, XK_braille_dots_468 = 0x10028a8, XK_braille_dots_1468 = 0x10028a9, XK_braille_dots_2468 = 0x10028aa, XK_braille_dots_12468 = 0x10028ab, XK_braille_dots_3468 = 0x10028ac, XK_braille_dots_13468 = 0x10028ad, XK_braille_dots_23468 = 0x10028ae, XK_braille_dots_123468 = 0x10028af, XK_braille_dots_568 = 0x10028b0, XK_braille_dots_1568 = 0x10028b1, XK_braille_dots_2568 = 0x10028b2, XK_braille_dots_12568 = 0x10028b3, XK_braille_dots_3568 = 0x10028b4, XK_braille_dots_13568 = 0x10028b5, XK_braille_dots_23568 = 0x10028b6, XK_braille_dots_123568 = 0x10028b7, XK_braille_dots_4568 = 0x10028b8, XK_braille_dots_14568 = 0x10028b9, XK_braille_dots_24568 = 0x10028ba, XK_braille_dots_124568 = 0x10028bb, XK_braille_dots_34568 = 0x10028bc, XK_braille_dots_134568 = 0x10028bd, XK_braille_dots_234568 = 0x10028be, XK_braille_dots_1234568 = 0x10028bf, XK_braille_dots_78 = 0x10028c0, XK_braille_dots_178 = 0x10028c1, XK_braille_dots_278 = 0x10028c2, XK_braille_dots_1278 = 0x10028c3, XK_braille_dots_378 = 0x10028c4, XK_braille_dots_1378 = 0x10028c5, XK_braille_dots_2378 = 0x10028c6, XK_braille_dots_12378 = 0x10028c7, XK_braille_dots_478 = 0x10028c8, XK_braille_dots_1478 = 0x10028c9, XK_braille_dots_2478 = 0x10028ca, XK_braille_dots_12478 = 0x10028cb, XK_braille_dots_3478 = 0x10028cc, XK_braille_dots_13478 = 0x10028cd, XK_braille_dots_23478 = 0x10028ce, XK_braille_dots_123478 = 0x10028cf, XK_braille_dots_578 = 0x10028d0, XK_braille_dots_1578 = 0x10028d1, XK_braille_dots_2578 = 0x10028d2, XK_braille_dots_12578 = 0x10028d3, XK_braille_dots_3578 = 0x10028d4, XK_braille_dots_13578 = 0x10028d5, XK_braille_dots_23578 = 0x10028d6, XK_braille_dots_123578 = 0x10028d7, XK_braille_dots_4578 = 0x10028d8, XK_braille_dots_14578 = 0x10028d9, XK_braille_dots_24578 = 0x10028da, XK_braille_dots_124578 = 0x10028db, XK_braille_dots_34578 = 0x10028dc, XK_braille_dots_134578 = 0x10028dd, XK_braille_dots_234578 = 0x10028de, XK_braille_dots_1234578 = 0x10028df, XK_braille_dots_678 = 0x10028e0, XK_braille_dots_1678 = 0x10028e1, XK_braille_dots_2678 = 0x10028e2, XK_braille_dots_12678 = 0x10028e3, XK_braille_dots_3678 = 0x10028e4, XK_braille_dots_13678 = 0x10028e5, XK_braille_dots_23678 = 0x10028e6, XK_braille_dots_123678 = 0x10028e7, XK_braille_dots_4678 = 0x10028e8, XK_braille_dots_14678 = 0x10028e9, XK_braille_dots_24678 = 0x10028ea, XK_braille_dots_124678 = 0x10028eb, XK_braille_dots_34678 = 0x10028ec, XK_braille_dots_134678 = 0x10028ed, XK_braille_dots_234678 = 0x10028ee, XK_braille_dots_1234678 = 0x10028ef, XK_braille_dots_5678 = 0x10028f0, XK_braille_dots_15678 = 0x10028f1, XK_braille_dots_25678 = 0x10028f2, XK_braille_dots_125678 = 0x10028f3, XK_braille_dots_35678 = 0x10028f4, XK_braille_dots_135678 = 0x10028f5, XK_braille_dots_235678 = 0x10028f6, XK_braille_dots_1235678 = 0x10028f7, XK_braille_dots_45678 = 0x10028f8, XK_braille_dots_145678 = 0x10028f9, XK_braille_dots_245678 = 0x10028fa, XK_braille_dots_1245678 = 0x10028fb, XK_braille_dots_345678 = 0x10028fc, XK_braille_dots_1345678 = 0x10028fd, XK_braille_dots_2345678 = 0x10028fe, XK_braille_dots_12345678 = 0x10028ff, }; ]] --from X11/Xutil.h local C = ffi.C function X.IsKeypadKey(keysym) return keysym >= C.XK_KP_Space and keysym <= C.XK_KP_Equal end function X.IsPrivateKeypadKey(keysym) return keysym >= 0x11000000 and keysym <= 0x1100FFFF end function X.IsCursorKey(keysym) return keysym >= C.XK_Home and keysym < C.XK_Select end function X.IsPFKey(keysym) return keysym >= C.XK_KP_F1 and keysym <= C.XK_KP_F4 end function X.IsFunctionKey(keysym) return keysym >= C.XK_F1 and keysym <= C.XK_F35 end function X.IsMiscFunctionKey(keysym) return keysym >= C.XK_Select and keysym <= C.XK_Break end function X.IsModifierKey(keysym) return (keysym >= C.XK_Shift_L and keysym <= C.XK_Hyper_R) or (keysym >= C.XK_ISO_Lock and keysym <= C.XK_ISO_Last_Group_Lock) or keysym == C.XK_Mode_switch or keysym == C.XK_Num_Lock end