diff --git a/scripts/keysyms.py b/scripts/keysyms.py index 87b71c6..1867a16 100644 --- a/scripts/keysyms.py +++ b/scripts/keysyms.py @@ -985,31 +985,203 @@ "XK_zerosubscript", "XK_zerosuperior", "XK_zstroke", + "XF86XK_10ChannelsDown", + "XF86XK_10ChannelsUp", + "XF86XK_3DMode", + "XF86XK_ALSToggle", + "XF86XK_Addressbook", + "XF86XK_AppSelect", + "XF86XK_AspectRatio", + "XF86XK_Assistant", + "XF86XK_AttendantOff", + "XF86XK_AttendantOn", + "XF86XK_AttendantToggle", + "XF86XK_Audio", + "XF86XK_AudioDesc", + "XF86XK_AudioPreset", + "XF86XK_AutopilotEngageToggle", + "XF86XK_Break", + "XF86XK_BrightnessAuto", + "XF86XK_BrightnessMax", + "XF86XK_BrightnessMin", + "XF86XK_Buttonconfig", + "XF86XK_CameraAccessDisable", + "XF86XK_CameraAccessEnable", + "XF86XK_CameraAccessToggle", + "XF86XK_CameraDown", + "XF86XK_CameraFocus", + "XF86XK_CameraLeft", + "XF86XK_CameraRight", + "XF86XK_CameraUp", + "XF86XK_CameraZoomIn", + "XF86XK_CameraZoomOut", + "XF86XK_ChannelDown", + "XF86XK_ChannelUp", + "XF86XK_ClearvuSonar", + "XF86XK_ContextMenu", + "XF86XK_ControlPanel", + "XF86XK_DVD", + "XF86XK_Data", + "XF86XK_Database", + "XF86XK_Dictate", + "XF86XK_DisplayOff", + "XF86XK_DisplayToggle", + "XF86XK_DualRangeRadar", + "XF86XK_Editor", + "XF86XK_EmojiPicker", + "XF86XK_FastReverse", + "XF86XK_FishingChart", + "XF86XK_Fn", + "XF86XK_FnRightShift", + "XF86XK_Fn_Esc", + "XF86XK_FullScreen", + "XF86XK_GraphicsEditor", + "XF86XK_HangupPhone", + "XF86XK_Images", + "XF86XK_Info", + "XF86XK_Journal", + "XF86XK_KbdInputAssistAccept", + "XF86XK_KbdInputAssistCancel", + "XF86XK_KbdInputAssistNext", + "XF86XK_KbdInputAssistNextgroup", + "XF86XK_KbdInputAssistPrev", + "XF86XK_KbdInputAssistPrevgroup", + "XF86XK_KbdLcdMenu1", + "XF86XK_KbdLcdMenu2", + "XF86XK_KbdLcdMenu3", + "XF86XK_KbdLcdMenu4", + "XF86XK_KbdLcdMenu5", + "XF86XK_Keyboard", + "XF86XK_LeftDown", + "XF86XK_LeftUp", + "XF86XK_LightsToggle", + "XF86XK_Macro1", + "XF86XK_Macro10", + "XF86XK_Macro11", + "XF86XK_Macro12", + "XF86XK_Macro13", + "XF86XK_Macro14", + "XF86XK_Macro15", + "XF86XK_Macro16", + "XF86XK_Macro17", + "XF86XK_Macro18", + "XF86XK_Macro19", + "XF86XK_Macro2", + "XF86XK_Macro20", + "XF86XK_Macro21", + "XF86XK_Macro22", + "XF86XK_Macro23", + "XF86XK_Macro24", + "XF86XK_Macro25", + "XF86XK_Macro26", + "XF86XK_Macro27", + "XF86XK_Macro28", + "XF86XK_Macro29", + "XF86XK_Macro3", + "XF86XK_Macro30", + "XF86XK_Macro4", + "XF86XK_Macro5", + "XF86XK_Macro6", + "XF86XK_Macro7", + "XF86XK_Macro8", + "XF86XK_Macro9", + "XF86XK_MacroPreset1", + "XF86XK_MacroPreset2", + "XF86XK_MacroPreset3", + "XF86XK_MacroPresetCycle", + "XF86XK_MacroRecordStart", + "XF86XK_MacroRecordStop", + "XF86XK_MarkWaypoint", + "XF86XK_MediaRepeat", + "XF86XK_MediaTopMenu", + "XF86XK_MonBrightnessCycle", + "XF86XK_NavChart", + "XF86XK_NavInfo", + "XF86XK_NextElement", + "XF86XK_NextFavorite", + "XF86XK_NotificationCenter", + "XF86XK_Numeric0", + "XF86XK_Numeric1", + "XF86XK_Numeric11", + "XF86XK_Numeric12", + "XF86XK_Numeric2", + "XF86XK_Numeric3", + "XF86XK_Numeric4", + "XF86XK_Numeric5", + "XF86XK_Numeric6", + "XF86XK_Numeric7", + "XF86XK_Numeric8", + "XF86XK_Numeric9", + "XF86XK_NumericA", + "XF86XK_NumericB", + "XF86XK_NumericC", + "XF86XK_NumericD", + "XF86XK_NumericPound", + "XF86XK_NumericStar", + "XF86XK_OnScreenKeyboard", + "XF86XK_PauseRecord", + "XF86XK_PickupPhone", + "XF86XK_Presentation", + "XF86XK_PreviousElement", + "XF86XK_PrivacyScreenToggle", + "XF86XK_RFKill", + "XF86XK_RadarOverlay", + "XF86XK_RightDown", + "XF86XK_RightUp", + "XF86XK_RootMenu", + "XF86XK_RotationLockToggle", + "XF86XK_Screensaver", + "XF86XK_SelectiveScreenshot", + "XF86XK_SidevuSonar", + "XF86XK_SingleRangeRadar", + "XF86XK_SlowReverse", + "XF86XK_Sos", + "XF86XK_SpellCheck", + "XF86XK_StopRecord", + "XF86XK_Taskmanager", + "XF86XK_TraditionalSonar", + "XF86XK_Unmute", + "XF86XK_VOD", + "XF86XK_VideoPhone", + "XF86XK_VoiceCommand", + "XF86XK_Voicemail", + "XF86XK_WPSButton", + "XF86XK_WWAN", + "XF86XK_ZoomReset", } def main(): # leave a format specifier to patch up with the length later - s = StringIO() + body = StringIO() # writing replaces the initial value?? so I have to do this out here - s.write("pub(super) static XKEYS: [(&str, u32); {}] = keys! {{\n") + body.write("") count = 0 with open("/usr/include/X11/keysymdef.h") as f: - for line in f: - if line.startswith("#define XK_"): - _def, xkey, *rest = line.split() - if xkey in SKIP: - continue - s.write(xkey + ", ") - count += 1 - s.write("\n}};") + lines = f.readlines() + with open("/usr/include/X11/XF86keysym.h") as f: + lines.extend(f.readlines()) + for line in lines: + if line.startswith("#define XK_") or line.startswith( + "#define XF86XK_" + ): + _def, xkey, *rest = line.split() + if xkey in SKIP: + continue + body.write(xkey + ", ") + count += 1 + + body = textwrap.fill( + body.getvalue(), + width=80, + initial_indent=" " * 4, + subsequent_indent=" " * 4, + ) print( - textwrap.fill( - s.getvalue(), - width=80, - subsequent_indent=" " * 4, - ).format(count) + f"""pub(super) static XKEYS: [(&str, u32); {count}] = keys! {{ +{body} +}};""" ) diff --git a/src/config/fig_env.rs b/src/config/fig_env.rs index d033c56..f442ccf 100644 --- a/src/config/fig_env.rs +++ b/src/config/fig_env.rs @@ -54,243 +54,289 @@ pub(super) static KEYS: [(&str, u32); 6] = keys! { }; /// All of the keysyms in [`x11::keysym`], generated by `scripts/keysyms.py`. -pub(super) static XKEYS: [(&str, u32); 1134] = keys! { XK_BackSpace, XK_Tab, -XK_Linefeed, XK_Clear, XK_Return, XK_Pause, XK_Scroll_Lock, XK_Sys_Req, -XK_Escape, XK_Delete, XK_Multi_key, XK_Kanji, XK_Muhenkan, XK_Henkan_Mode, -XK_Henkan, XK_Romaji, XK_Hiragana, XK_Katakana, XK_Hiragana_Katakana, -XK_Zenkaku, XK_Hankaku, XK_Zenkaku_Hankaku, XK_Touroku, XK_Massyo, -XK_Kana_Lock, XK_Kana_Shift, XK_Eisu_Shift, XK_Eisu_toggle, XK_Home, -XK_Left, XK_Up, XK_Right, XK_Down, XK_Prior, XK_Page_Up, XK_Next, -XK_Page_Down, XK_End, XK_Begin, XK_Select, XK_Print, XK_Execute, XK_Insert, -XK_Undo, XK_Redo, XK_Menu, XK_Find, XK_Cancel, XK_Help, XK_Break, -XK_Mode_switch, XK_script_switch, XK_Num_Lock, XK_KP_Space, XK_KP_Tab, -XK_KP_Enter, XK_KP_F1, XK_KP_F2, XK_KP_F3, XK_KP_F4, XK_KP_Home, XK_KP_Left, -XK_KP_Up, XK_KP_Right, XK_KP_Down, XK_KP_Prior, XK_KP_Page_Up, XK_KP_Next, -XK_KP_Page_Down, XK_KP_End, XK_KP_Begin, XK_KP_Insert, XK_KP_Delete, -XK_KP_Equal, XK_KP_Multiply, XK_KP_Add, XK_KP_Separator, XK_KP_Subtract, -XK_KP_Decimal, XK_KP_Divide, XK_KP_0, XK_KP_1, XK_KP_2, XK_KP_3, XK_KP_4, -XK_KP_5, XK_KP_6, XK_KP_7, XK_KP_8, XK_KP_9, XK_F1, XK_F2, XK_F3, XK_F4, -XK_F5, XK_F6, XK_F7, XK_F8, XK_F9, XK_F10, XK_F11, XK_L1, XK_F12, XK_L2, -XK_F13, XK_L3, XK_F14, XK_L4, XK_F15, XK_L5, XK_F16, XK_L6, XK_F17, XK_L7, -XK_F18, XK_L8, XK_F19, XK_L9, XK_F20, XK_L10, XK_F21, XK_R1, XK_F22, XK_R2, -XK_F23, XK_R3, XK_F24, XK_R4, XK_F25, XK_R5, XK_F26, XK_R6, XK_F27, XK_R7, -XK_F28, XK_R8, XK_F29, XK_R9, XK_F30, XK_R10, XK_F31, XK_R11, XK_F32, -XK_R12, XK_F33, XK_R13, XK_F34, XK_R14, XK_F35, XK_R15, XK_Shift_L, -XK_Shift_R, XK_Control_L, XK_Control_R, XK_Caps_Lock, XK_Shift_Lock, -XK_Meta_L, XK_Meta_R, XK_Alt_L, XK_Alt_R, XK_Super_L, XK_Super_R, -XK_Hyper_L, XK_Hyper_R, XK_ISO_Lock, XK_ISO_Level2_Latch, -XK_ISO_Level3_Shift, XK_ISO_Level3_Latch, XK_ISO_Level3_Lock, -XK_ISO_Level5_Shift, XK_ISO_Level5_Latch, XK_ISO_Level5_Lock, -XK_ISO_Group_Shift, XK_ISO_Group_Latch, XK_ISO_Group_Lock, -XK_ISO_Next_Group, XK_ISO_Next_Group_Lock, XK_ISO_Prev_Group, -XK_ISO_Prev_Group_Lock, XK_ISO_First_Group, XK_ISO_First_Group_Lock, -XK_ISO_Last_Group, XK_ISO_Last_Group_Lock, XK_ISO_Left_Tab, -XK_ISO_Move_Line_Up, XK_ISO_Move_Line_Down, XK_ISO_Partial_Line_Up, -XK_ISO_Partial_Line_Down, XK_ISO_Partial_Space_Left, -XK_ISO_Partial_Space_Right, XK_ISO_Set_Margin_Left, XK_ISO_Set_Margin_Right, -XK_ISO_Release_Margin_Left, XK_ISO_Release_Margin_Right, -XK_ISO_Release_Both_Margins, XK_ISO_Fast_Cursor_Left, -XK_ISO_Fast_Cursor_Right, XK_ISO_Fast_Cursor_Up, XK_ISO_Fast_Cursor_Down, -XK_ISO_Continuous_Underline, XK_ISO_Discontinuous_Underline, -XK_ISO_Emphasize, XK_ISO_Center_Object, XK_ISO_Enter, XK_dead_grave, -XK_dead_acute, XK_dead_circumflex, XK_dead_tilde, XK_dead_perispomeni, -XK_dead_macron, XK_dead_breve, XK_dead_abovedot, XK_dead_diaeresis, -XK_dead_abovering, XK_dead_doubleacute, XK_dead_caron, XK_dead_cedilla, -XK_dead_ogonek, XK_dead_iota, XK_dead_voiced_sound, -XK_dead_semivoiced_sound, XK_dead_belowdot, XK_dead_hook, XK_dead_horn, -XK_dead_stroke, XK_dead_abovecomma, XK_dead_psili, -XK_dead_abovereversedcomma, XK_dead_dasia, XK_dead_doublegrave, -XK_dead_belowring, XK_dead_belowmacron, XK_dead_belowcircumflex, -XK_dead_belowtilde, XK_dead_belowbreve, XK_dead_belowdiaeresis, -XK_dead_invertedbreve, XK_dead_belowcomma, XK_dead_currency, -XK_dead_lowline, XK_dead_aboveverticalline, XK_dead_belowverticalline, -XK_dead_longsolidusoverlay, XK_dead_a, XK_dead_A, XK_dead_e, XK_dead_E, -XK_dead_i, XK_dead_I, XK_dead_o, XK_dead_O, XK_dead_u, XK_dead_U, -XK_dead_small_schwa, XK_dead_capital_schwa, XK_dead_greek, -XK_First_Virtual_Screen, XK_Prev_Virtual_Screen, XK_Next_Virtual_Screen, -XK_Last_Virtual_Screen, XK_Terminate_Server, XK_AccessX_Enable, -XK_AccessX_Feedback_Enable, XK_RepeatKeys_Enable, XK_SlowKeys_Enable, -XK_BounceKeys_Enable, XK_StickyKeys_Enable, XK_MouseKeys_Enable, -XK_MouseKeys_Accel_Enable, XK_Overlay1_Enable, XK_Overlay2_Enable, -XK_AudibleBell_Enable, XK_Pointer_Left, XK_Pointer_Right, XK_Pointer_Up, -XK_Pointer_Down, XK_Pointer_UpLeft, XK_Pointer_UpRight, XK_Pointer_DownLeft, -XK_Pointer_DownRight, XK_Pointer_Button_Dflt, XK_Pointer_Button1, -XK_Pointer_Button2, XK_Pointer_Button3, XK_Pointer_Button4, -XK_Pointer_Button5, XK_Pointer_DblClick_Dflt, XK_Pointer_DblClick1, -XK_Pointer_DblClick2, XK_Pointer_DblClick3, XK_Pointer_DblClick4, -XK_Pointer_DblClick5, XK_Pointer_Drag_Dflt, XK_Pointer_Drag1, -XK_Pointer_Drag2, XK_Pointer_Drag3, XK_Pointer_Drag4, XK_Pointer_Drag5, -XK_Pointer_EnableKeys, XK_Pointer_Accelerate, XK_Pointer_DfltBtnNext, -XK_Pointer_DfltBtnPrev, XK_ch, XK_Ch, XK_CH, XK_c_h, XK_C_h, XK_C_H, -XK_space, XK_exclam, XK_quotedbl, XK_numbersign, XK_dollar, XK_percent, -XK_ampersand, XK_apostrophe, XK_quoteright, XK_parenleft, XK_parenright, -XK_asterisk, XK_plus, XK_comma, XK_minus, XK_period, XK_slash, XK_0, XK_1, -XK_2, XK_3, XK_4, XK_5, XK_6, XK_7, XK_8, XK_9, XK_colon, XK_semicolon, -XK_less, XK_equal, XK_greater, XK_question, XK_at, XK_A, XK_B, XK_C, XK_D, -XK_E, XK_F, XK_G, XK_H, XK_I, XK_J, XK_K, XK_L, XK_M, XK_N, XK_O, XK_P, -XK_Q, XK_R, XK_S, XK_T, XK_U, XK_V, XK_W, XK_X, XK_Y, XK_Z, XK_bracketleft, -XK_backslash, XK_bracketright, XK_asciicircum, XK_underscore, XK_grave, -XK_quoteleft, XK_a, XK_b, XK_c, XK_d, XK_e, XK_f, XK_g, XK_h, XK_i, XK_j, -XK_k, XK_l, XK_m, XK_n, XK_o, XK_p, XK_q, XK_r, XK_s, XK_t, XK_u, XK_v, -XK_w, XK_x, XK_y, XK_z, XK_braceleft, XK_bar, XK_braceright, XK_asciitilde, -XK_nobreakspace, XK_exclamdown, XK_cent, XK_sterling, XK_currency, XK_yen, -XK_brokenbar, XK_section, XK_diaeresis, XK_copyright, XK_ordfeminine, -XK_guillemotleft, XK_notsign, XK_hyphen, XK_registered, XK_macron, -XK_degree, XK_plusminus, XK_twosuperior, XK_threesuperior, XK_acute, XK_mu, -XK_paragraph, XK_periodcentered, XK_cedilla, XK_onesuperior, XK_masculine, -XK_guillemotright, XK_onequarter, XK_onehalf, XK_threequarters, -XK_questiondown, XK_Agrave, XK_Aacute, XK_Acircumflex, XK_Atilde, -XK_Adiaeresis, XK_Aring, XK_AE, XK_Ccedilla, XK_Egrave, XK_Eacute, -XK_Ecircumflex, XK_Ediaeresis, XK_Igrave, XK_Iacute, XK_Icircumflex, -XK_Idiaeresis, XK_ETH, XK_Eth, XK_Ntilde, XK_Ograve, XK_Oacute, -XK_Ocircumflex, XK_Otilde, XK_Odiaeresis, XK_multiply, XK_Ooblique, -XK_Ugrave, XK_Uacute, XK_Ucircumflex, XK_Udiaeresis, XK_Yacute, XK_THORN, -XK_Thorn, XK_ssharp, XK_agrave, XK_aacute, XK_acircumflex, XK_atilde, -XK_adiaeresis, XK_aring, XK_ae, XK_ccedilla, XK_egrave, XK_eacute, -XK_ecircumflex, XK_ediaeresis, XK_igrave, XK_iacute, XK_icircumflex, -XK_idiaeresis, XK_eth, XK_ntilde, XK_ograve, XK_oacute, XK_ocircumflex, -XK_otilde, XK_odiaeresis, XK_division, XK_oslash, XK_ugrave, XK_uacute, -XK_ucircumflex, XK_udiaeresis, XK_yacute, XK_thorn, XK_ydiaeresis, -XK_Aogonek, XK_breve, XK_Lstroke, XK_Lcaron, XK_Sacute, XK_Scaron, -XK_Scedilla, XK_Tcaron, XK_Zacute, XK_Zcaron, XK_Zabovedot, XK_aogonek, -XK_ogonek, XK_lstroke, XK_lcaron, XK_sacute, XK_caron, XK_scaron, -XK_scedilla, XK_tcaron, XK_zacute, XK_doubleacute, XK_zcaron, XK_zabovedot, -XK_Racute, XK_Abreve, XK_Lacute, XK_Cacute, XK_Ccaron, XK_Eogonek, -XK_Ecaron, XK_Dcaron, XK_Dstroke, XK_Nacute, XK_Ncaron, XK_Odoubleacute, -XK_Rcaron, XK_Uring, XK_Udoubleacute, XK_Tcedilla, XK_racute, XK_abreve, -XK_lacute, XK_cacute, XK_ccaron, XK_eogonek, XK_ecaron, XK_dcaron, -XK_dstroke, XK_nacute, XK_ncaron, XK_odoubleacute, XK_rcaron, XK_uring, -XK_udoubleacute, XK_tcedilla, XK_abovedot, XK_Hstroke, XK_Hcircumflex, -XK_Iabovedot, XK_Gbreve, XK_Jcircumflex, XK_hstroke, XK_hcircumflex, -XK_idotless, XK_gbreve, XK_jcircumflex, XK_Cabovedot, XK_Ccircumflex, -XK_Gabovedot, XK_Gcircumflex, XK_Ubreve, XK_Scircumflex, XK_cabovedot, -XK_ccircumflex, XK_gabovedot, XK_gcircumflex, XK_ubreve, XK_scircumflex, -XK_kra, XK_kappa, XK_Rcedilla, XK_Itilde, XK_Lcedilla, XK_Emacron, -XK_Gcedilla, XK_Tslash, XK_rcedilla, XK_itilde, XK_lcedilla, XK_emacron, -XK_gcedilla, XK_tslash, XK_ENG, XK_eng, XK_Amacron, XK_Iogonek, -XK_Eabovedot, XK_Imacron, XK_Ncedilla, XK_Omacron, XK_Kcedilla, XK_Uogonek, -XK_Utilde, XK_Umacron, XK_amacron, XK_iogonek, XK_eabovedot, XK_imacron, -XK_ncedilla, XK_omacron, XK_kcedilla, XK_uogonek, XK_utilde, XK_umacron, -XK_overline, XK_kana_fullstop, XK_kana_openingbracket, -XK_kana_closingbracket, XK_kana_comma, XK_kana_conjunctive, -XK_kana_middledot, XK_kana_WO, XK_kana_a, XK_kana_i, XK_kana_u, XK_kana_e, -XK_kana_o, XK_kana_ya, XK_kana_yu, XK_kana_yo, XK_kana_tsu, XK_kana_tu, -XK_prolongedsound, XK_kana_A, XK_kana_I, XK_kana_U, XK_kana_E, XK_kana_O, -XK_kana_KA, XK_kana_KI, XK_kana_KU, XK_kana_KE, XK_kana_KO, XK_kana_SA, -XK_kana_SHI, XK_kana_SU, XK_kana_SE, XK_kana_SO, XK_kana_TA, XK_kana_CHI, -XK_kana_TI, XK_kana_TSU, XK_kana_TU, XK_kana_TE, XK_kana_TO, XK_kana_NA, -XK_kana_NI, XK_kana_NU, XK_kana_NE, XK_kana_NO, XK_kana_HA, XK_kana_HI, -XK_kana_FU, XK_kana_HU, XK_kana_HE, XK_kana_HO, XK_kana_MA, XK_kana_MI, -XK_kana_MU, XK_kana_ME, XK_kana_MO, XK_kana_YA, XK_kana_YU, XK_kana_YO, -XK_kana_RA, XK_kana_RI, XK_kana_RU, XK_kana_RE, XK_kana_RO, XK_kana_WA, -XK_kana_N, XK_voicedsound, XK_semivoicedsound, XK_kana_switch, -XK_Arabic_comma, XK_Arabic_semicolon, XK_Arabic_question_mark, -XK_Arabic_hamza, XK_Arabic_maddaonalef, XK_Arabic_hamzaonalef, -XK_Arabic_hamzaonwaw, XK_Arabic_hamzaunderalef, XK_Arabic_hamzaonyeh, -XK_Arabic_alef, XK_Arabic_beh, XK_Arabic_tehmarbuta, XK_Arabic_teh, -XK_Arabic_theh, XK_Arabic_jeem, XK_Arabic_hah, XK_Arabic_khah, -XK_Arabic_dal, XK_Arabic_thal, XK_Arabic_ra, XK_Arabic_zain, XK_Arabic_seen, -XK_Arabic_sheen, XK_Arabic_sad, XK_Arabic_dad, XK_Arabic_tah, XK_Arabic_zah, -XK_Arabic_ain, XK_Arabic_ghain, XK_Arabic_tatweel, XK_Arabic_feh, -XK_Arabic_qaf, XK_Arabic_kaf, XK_Arabic_lam, XK_Arabic_meem, XK_Arabic_noon, -XK_Arabic_ha, XK_Arabic_heh, XK_Arabic_waw, XK_Arabic_alefmaksura, -XK_Arabic_yeh, XK_Arabic_fathatan, XK_Arabic_dammatan, XK_Arabic_kasratan, -XK_Arabic_fatha, XK_Arabic_damma, XK_Arabic_kasra, XK_Arabic_shadda, -XK_Arabic_sukun, XK_Arabic_switch, XK_Serbian_dje, XK_Macedonia_gje, -XK_Cyrillic_io, XK_Ukrainian_ie, XK_Ukranian_je, XK_Macedonia_dse, -XK_Ukrainian_i, XK_Ukranian_i, XK_Ukrainian_yi, XK_Ukranian_yi, -XK_Cyrillic_je, XK_Serbian_je, XK_Cyrillic_lje, XK_Serbian_lje, -XK_Cyrillic_nje, XK_Serbian_nje, XK_Serbian_tshe, XK_Macedonia_kje, -XK_Byelorussian_shortu, XK_Cyrillic_dzhe, XK_Serbian_dze, XK_numerosign, -XK_Serbian_DJE, XK_Macedonia_GJE, XK_Cyrillic_IO, XK_Ukrainian_IE, -XK_Ukranian_JE, XK_Macedonia_DSE, XK_Ukrainian_I, XK_Ukranian_I, -XK_Ukrainian_YI, XK_Ukranian_YI, XK_Cyrillic_JE, XK_Serbian_JE, -XK_Cyrillic_LJE, XK_Serbian_LJE, XK_Cyrillic_NJE, XK_Serbian_NJE, -XK_Serbian_TSHE, XK_Macedonia_KJE, XK_Byelorussian_SHORTU, XK_Cyrillic_DZHE, -XK_Serbian_DZE, XK_Cyrillic_yu, XK_Cyrillic_a, XK_Cyrillic_be, -XK_Cyrillic_tse, XK_Cyrillic_de, XK_Cyrillic_ie, XK_Cyrillic_ef, -XK_Cyrillic_ghe, XK_Cyrillic_ha, XK_Cyrillic_i, XK_Cyrillic_shorti, -XK_Cyrillic_ka, XK_Cyrillic_el, XK_Cyrillic_em, XK_Cyrillic_en, -XK_Cyrillic_o, XK_Cyrillic_pe, XK_Cyrillic_ya, XK_Cyrillic_er, -XK_Cyrillic_es, XK_Cyrillic_te, XK_Cyrillic_u, XK_Cyrillic_zhe, -XK_Cyrillic_ve, XK_Cyrillic_softsign, XK_Cyrillic_yeru, XK_Cyrillic_ze, -XK_Cyrillic_sha, XK_Cyrillic_e, XK_Cyrillic_shcha, XK_Cyrillic_che, -XK_Cyrillic_hardsign, XK_Cyrillic_YU, XK_Cyrillic_A, XK_Cyrillic_BE, -XK_Cyrillic_TSE, XK_Cyrillic_DE, XK_Cyrillic_IE, XK_Cyrillic_EF, -XK_Cyrillic_GHE, XK_Cyrillic_HA, XK_Cyrillic_I, XK_Cyrillic_SHORTI, -XK_Cyrillic_KA, XK_Cyrillic_EL, XK_Cyrillic_EM, XK_Cyrillic_EN, -XK_Cyrillic_O, XK_Cyrillic_PE, XK_Cyrillic_YA, XK_Cyrillic_ER, -XK_Cyrillic_ES, XK_Cyrillic_TE, XK_Cyrillic_U, XK_Cyrillic_ZHE, -XK_Cyrillic_VE, XK_Cyrillic_SOFTSIGN, XK_Cyrillic_YERU, XK_Cyrillic_ZE, -XK_Cyrillic_SHA, XK_Cyrillic_E, XK_Cyrillic_SHCHA, XK_Cyrillic_CHE, -XK_Cyrillic_HARDSIGN, XK_Greek_ALPHAaccent, XK_Greek_EPSILONaccent, -XK_Greek_ETAaccent, XK_Greek_IOTAaccent, XK_Greek_IOTAdiaeresis, -XK_Greek_OMICRONaccent, XK_Greek_UPSILONaccent, XK_Greek_UPSILONdieresis, -XK_Greek_OMEGAaccent, XK_Greek_accentdieresis, XK_Greek_horizbar, -XK_Greek_alphaaccent, XK_Greek_epsilonaccent, XK_Greek_etaaccent, -XK_Greek_iotaaccent, XK_Greek_iotadieresis, XK_Greek_iotaaccentdieresis, -XK_Greek_omicronaccent, XK_Greek_upsilonaccent, XK_Greek_upsilondieresis, -XK_Greek_upsilonaccentdieresis, XK_Greek_omegaaccent, XK_Greek_ALPHA, -XK_Greek_BETA, XK_Greek_GAMMA, XK_Greek_DELTA, XK_Greek_EPSILON, -XK_Greek_ZETA, XK_Greek_ETA, XK_Greek_THETA, XK_Greek_IOTA, XK_Greek_KAPPA, -XK_Greek_LAMDA, XK_Greek_LAMBDA, XK_Greek_MU, XK_Greek_NU, XK_Greek_XI, -XK_Greek_OMICRON, XK_Greek_PI, XK_Greek_RHO, XK_Greek_SIGMA, XK_Greek_TAU, -XK_Greek_UPSILON, XK_Greek_PHI, XK_Greek_CHI, XK_Greek_PSI, XK_Greek_OMEGA, -XK_Greek_alpha, XK_Greek_beta, XK_Greek_gamma, XK_Greek_delta, -XK_Greek_epsilon, XK_Greek_zeta, XK_Greek_eta, XK_Greek_theta, -XK_Greek_iota, XK_Greek_kappa, XK_Greek_lamda, XK_Greek_lambda, XK_Greek_mu, -XK_Greek_nu, XK_Greek_xi, XK_Greek_omicron, XK_Greek_pi, XK_Greek_rho, -XK_Greek_sigma, XK_Greek_finalsmallsigma, XK_Greek_tau, XK_Greek_upsilon, -XK_Greek_phi, XK_Greek_chi, XK_Greek_psi, XK_Greek_omega, XK_Greek_switch, -XK_leftradical, XK_topleftradical, XK_horizconnector, XK_topintegral, -XK_botintegral, XK_vertconnector, XK_topleftsqbracket, XK_botleftsqbracket, -XK_toprightsqbracket, XK_botrightsqbracket, XK_topleftparens, -XK_botleftparens, XK_toprightparens, XK_botrightparens, -XK_leftmiddlecurlybrace, XK_rightmiddlecurlybrace, XK_topleftsummation, -XK_botleftsummation, XK_topvertsummationconnector, -XK_botvertsummationconnector, XK_toprightsummation, XK_botrightsummation, -XK_rightmiddlesummation, XK_lessthanequal, XK_notequal, XK_greaterthanequal, -XK_integral, XK_therefore, XK_variation, XK_infinity, XK_nabla, -XK_approximate, XK_similarequal, XK_ifonlyif, XK_implies, XK_identical, -XK_radical, XK_includedin, XK_includes, XK_intersection, XK_union, -XK_logicaland, XK_logicalor, XK_partialderivative, XK_function, -XK_leftarrow, XK_uparrow, XK_rightarrow, XK_downarrow, XK_blank, -XK_soliddiamond, XK_checkerboard, XK_ht, XK_ff, XK_cr, XK_lf, XK_nl, XK_vt, -XK_lowrightcorner, XK_uprightcorner, XK_upleftcorner, XK_lowleftcorner, -XK_crossinglines, XK_horizlinescan1, XK_horizlinescan3, XK_horizlinescan5, -XK_horizlinescan7, XK_horizlinescan9, XK_leftt, XK_rightt, XK_bott, XK_topt, -XK_vertbar, XK_emspace, XK_enspace, XK_em3space, XK_em4space, XK_digitspace, -XK_punctspace, XK_thinspace, XK_hairspace, XK_emdash, XK_endash, -XK_signifblank, XK_ellipsis, XK_doubbaselinedot, XK_onethird, XK_twothirds, -XK_onefifth, XK_twofifths, XK_threefifths, XK_fourfifths, XK_onesixth, -XK_fivesixths, XK_careof, XK_figdash, XK_leftanglebracket, XK_decimalpoint, -XK_rightanglebracket, XK_marker, XK_oneeighth, XK_threeeighths, -XK_fiveeighths, XK_seveneighths, XK_trademark, XK_signaturemark, -XK_trademarkincircle, XK_leftopentriangle, XK_rightopentriangle, -XK_emopencircle, XK_emopenrectangle, XK_leftsinglequotemark, -XK_rightsinglequotemark, XK_leftdoublequotemark, XK_rightdoublequotemark, -XK_prescription, XK_minutes, XK_seconds, XK_latincross, XK_hexagram, -XK_filledrectbullet, XK_filledlefttribullet, XK_filledrighttribullet, -XK_emfilledcircle, XK_emfilledrect, XK_enopencircbullet, -XK_enopensquarebullet, XK_openrectbullet, XK_opentribulletup, -XK_opentribulletdown, XK_openstar, XK_enfilledcircbullet, -XK_enfilledsqbullet, XK_filledtribulletup, XK_filledtribulletdown, -XK_leftpointer, XK_rightpointer, XK_club, XK_diamond, XK_heart, -XK_maltesecross, XK_dagger, XK_doubledagger, XK_checkmark, XK_ballotcross, -XK_musicalsharp, XK_musicalflat, XK_malesymbol, XK_femalesymbol, -XK_telephone, XK_telephonerecorder, XK_phonographcopyright, XK_caret, -XK_singlelowquotemark, XK_doublelowquotemark, XK_cursor, XK_leftcaret, -XK_rightcaret, XK_downcaret, XK_upcaret, XK_overbar, XK_downtack, XK_upshoe, -XK_downstile, XK_underbar, XK_jot, XK_quad, XK_uptack, XK_circle, -XK_upstile, XK_downshoe, XK_rightshoe, XK_leftshoe, XK_lefttack, -XK_righttack, XK_hebrew_doublelowline, XK_hebrew_aleph, XK_hebrew_bet, -XK_hebrew_beth, XK_hebrew_gimel, XK_hebrew_gimmel, XK_hebrew_dalet, -XK_hebrew_daleth, XK_hebrew_he, XK_hebrew_waw, XK_hebrew_zain, -XK_hebrew_zayin, XK_hebrew_chet, XK_hebrew_het, XK_hebrew_tet, -XK_hebrew_teth, XK_hebrew_yod, XK_hebrew_finalkaph, XK_hebrew_kaph, -XK_hebrew_lamed, XK_hebrew_finalmem, XK_hebrew_mem, XK_hebrew_finalnun, -XK_hebrew_nun, XK_hebrew_samech, XK_hebrew_samekh, XK_hebrew_ayin, -XK_hebrew_finalpe, XK_hebrew_pe, XK_hebrew_finalzade, XK_hebrew_finalzadi, -XK_hebrew_zade, XK_hebrew_zadi, XK_hebrew_qoph, XK_hebrew_kuf, -XK_hebrew_resh, XK_hebrew_shin, XK_hebrew_taw, XK_hebrew_taf, -XK_Hebrew_switch, }; +pub(super) static XKEYS: [(&str, u32); 1311] = keys! { + XK_BackSpace, XK_Tab, XK_Linefeed, XK_Clear, XK_Return, XK_Pause, + XK_Scroll_Lock, XK_Sys_Req, XK_Escape, XK_Delete, XK_Multi_key, XK_Kanji, + XK_Muhenkan, XK_Henkan_Mode, XK_Henkan, XK_Romaji, XK_Hiragana, XK_Katakana, + XK_Hiragana_Katakana, XK_Zenkaku, XK_Hankaku, XK_Zenkaku_Hankaku, + XK_Touroku, XK_Massyo, XK_Kana_Lock, XK_Kana_Shift, XK_Eisu_Shift, + XK_Eisu_toggle, XK_Home, XK_Left, XK_Up, XK_Right, XK_Down, XK_Prior, + XK_Page_Up, XK_Next, XK_Page_Down, XK_End, XK_Begin, XK_Select, XK_Print, + XK_Execute, XK_Insert, XK_Undo, XK_Redo, XK_Menu, XK_Find, XK_Cancel, + XK_Help, XK_Break, XK_Mode_switch, XK_script_switch, XK_Num_Lock, + XK_KP_Space, XK_KP_Tab, XK_KP_Enter, XK_KP_F1, XK_KP_F2, XK_KP_F3, XK_KP_F4, + XK_KP_Home, XK_KP_Left, XK_KP_Up, XK_KP_Right, XK_KP_Down, XK_KP_Prior, + XK_KP_Page_Up, XK_KP_Next, XK_KP_Page_Down, XK_KP_End, XK_KP_Begin, + XK_KP_Insert, XK_KP_Delete, XK_KP_Equal, XK_KP_Multiply, XK_KP_Add, + XK_KP_Separator, XK_KP_Subtract, XK_KP_Decimal, XK_KP_Divide, XK_KP_0, + XK_KP_1, XK_KP_2, XK_KP_3, XK_KP_4, XK_KP_5, XK_KP_6, XK_KP_7, XK_KP_8, + XK_KP_9, XK_F1, XK_F2, XK_F3, XK_F4, XK_F5, XK_F6, XK_F7, XK_F8, XK_F9, + XK_F10, XK_F11, XK_L1, XK_F12, XK_L2, XK_F13, XK_L3, XK_F14, XK_L4, XK_F15, + XK_L5, XK_F16, XK_L6, XK_F17, XK_L7, XK_F18, XK_L8, XK_F19, XK_L9, XK_F20, + XK_L10, XK_F21, XK_R1, XK_F22, XK_R2, XK_F23, XK_R3, XK_F24, XK_R4, XK_F25, + XK_R5, XK_F26, XK_R6, XK_F27, XK_R7, XK_F28, XK_R8, XK_F29, XK_R9, XK_F30, + XK_R10, XK_F31, XK_R11, XK_F32, XK_R12, XK_F33, XK_R13, XK_F34, XK_R14, + XK_F35, XK_R15, XK_Shift_L, XK_Shift_R, XK_Control_L, XK_Control_R, + XK_Caps_Lock, XK_Shift_Lock, XK_Meta_L, XK_Meta_R, XK_Alt_L, XK_Alt_R, + XK_Super_L, XK_Super_R, XK_Hyper_L, XK_Hyper_R, XK_ISO_Lock, + XK_ISO_Level2_Latch, XK_ISO_Level3_Shift, XK_ISO_Level3_Latch, + XK_ISO_Level3_Lock, XK_ISO_Level5_Shift, XK_ISO_Level5_Latch, + XK_ISO_Level5_Lock, XK_ISO_Group_Shift, XK_ISO_Group_Latch, + XK_ISO_Group_Lock, XK_ISO_Next_Group, XK_ISO_Next_Group_Lock, + XK_ISO_Prev_Group, XK_ISO_Prev_Group_Lock, XK_ISO_First_Group, + XK_ISO_First_Group_Lock, XK_ISO_Last_Group, XK_ISO_Last_Group_Lock, + XK_ISO_Left_Tab, XK_ISO_Move_Line_Up, XK_ISO_Move_Line_Down, + XK_ISO_Partial_Line_Up, XK_ISO_Partial_Line_Down, XK_ISO_Partial_Space_Left, + XK_ISO_Partial_Space_Right, XK_ISO_Set_Margin_Left, XK_ISO_Set_Margin_Right, + XK_ISO_Release_Margin_Left, XK_ISO_Release_Margin_Right, + XK_ISO_Release_Both_Margins, XK_ISO_Fast_Cursor_Left, + XK_ISO_Fast_Cursor_Right, XK_ISO_Fast_Cursor_Up, XK_ISO_Fast_Cursor_Down, + XK_ISO_Continuous_Underline, XK_ISO_Discontinuous_Underline, + XK_ISO_Emphasize, XK_ISO_Center_Object, XK_ISO_Enter, XK_dead_grave, + XK_dead_acute, XK_dead_circumflex, XK_dead_tilde, XK_dead_perispomeni, + XK_dead_macron, XK_dead_breve, XK_dead_abovedot, XK_dead_diaeresis, + XK_dead_abovering, XK_dead_doubleacute, XK_dead_caron, XK_dead_cedilla, + XK_dead_ogonek, XK_dead_iota, XK_dead_voiced_sound, + XK_dead_semivoiced_sound, XK_dead_belowdot, XK_dead_hook, XK_dead_horn, + XK_dead_stroke, XK_dead_abovecomma, XK_dead_psili, + XK_dead_abovereversedcomma, XK_dead_dasia, XK_dead_doublegrave, + XK_dead_belowring, XK_dead_belowmacron, XK_dead_belowcircumflex, + XK_dead_belowtilde, XK_dead_belowbreve, XK_dead_belowdiaeresis, + XK_dead_invertedbreve, XK_dead_belowcomma, XK_dead_currency, + XK_dead_lowline, XK_dead_aboveverticalline, XK_dead_belowverticalline, + XK_dead_longsolidusoverlay, XK_dead_a, XK_dead_A, XK_dead_e, XK_dead_E, + XK_dead_i, XK_dead_I, XK_dead_o, XK_dead_O, XK_dead_u, XK_dead_U, + XK_dead_small_schwa, XK_dead_capital_schwa, XK_dead_greek, + XK_First_Virtual_Screen, XK_Prev_Virtual_Screen, XK_Next_Virtual_Screen, + XK_Last_Virtual_Screen, XK_Terminate_Server, XK_AccessX_Enable, + XK_AccessX_Feedback_Enable, XK_RepeatKeys_Enable, XK_SlowKeys_Enable, + XK_BounceKeys_Enable, XK_StickyKeys_Enable, XK_MouseKeys_Enable, + XK_MouseKeys_Accel_Enable, XK_Overlay1_Enable, XK_Overlay2_Enable, + XK_AudibleBell_Enable, XK_Pointer_Left, XK_Pointer_Right, XK_Pointer_Up, + XK_Pointer_Down, XK_Pointer_UpLeft, XK_Pointer_UpRight, XK_Pointer_DownLeft, + XK_Pointer_DownRight, XK_Pointer_Button_Dflt, XK_Pointer_Button1, + XK_Pointer_Button2, XK_Pointer_Button3, XK_Pointer_Button4, + XK_Pointer_Button5, XK_Pointer_DblClick_Dflt, XK_Pointer_DblClick1, + XK_Pointer_DblClick2, XK_Pointer_DblClick3, XK_Pointer_DblClick4, + XK_Pointer_DblClick5, XK_Pointer_Drag_Dflt, XK_Pointer_Drag1, + XK_Pointer_Drag2, XK_Pointer_Drag3, XK_Pointer_Drag4, XK_Pointer_Drag5, + XK_Pointer_EnableKeys, XK_Pointer_Accelerate, XK_Pointer_DfltBtnNext, + XK_Pointer_DfltBtnPrev, XK_ch, XK_Ch, XK_CH, XK_c_h, XK_C_h, XK_C_H, + XK_space, XK_exclam, XK_quotedbl, XK_numbersign, XK_dollar, XK_percent, + XK_ampersand, XK_apostrophe, XK_quoteright, XK_parenleft, XK_parenright, + XK_asterisk, XK_plus, XK_comma, XK_minus, XK_period, XK_slash, XK_0, XK_1, + XK_2, XK_3, XK_4, XK_5, XK_6, XK_7, XK_8, XK_9, XK_colon, XK_semicolon, + XK_less, XK_equal, XK_greater, XK_question, XK_at, XK_A, XK_B, XK_C, XK_D, + XK_E, XK_F, XK_G, XK_H, XK_I, XK_J, XK_K, XK_L, XK_M, XK_N, XK_O, XK_P, + XK_Q, XK_R, XK_S, XK_T, XK_U, XK_V, XK_W, XK_X, XK_Y, XK_Z, XK_bracketleft, + XK_backslash, XK_bracketright, XK_asciicircum, XK_underscore, XK_grave, + XK_quoteleft, XK_a, XK_b, XK_c, XK_d, XK_e, XK_f, XK_g, XK_h, XK_i, XK_j, + XK_k, XK_l, XK_m, XK_n, XK_o, XK_p, XK_q, XK_r, XK_s, XK_t, XK_u, XK_v, + XK_w, XK_x, XK_y, XK_z, XK_braceleft, XK_bar, XK_braceright, XK_asciitilde, + XK_nobreakspace, XK_exclamdown, XK_cent, XK_sterling, XK_currency, XK_yen, + XK_brokenbar, XK_section, XK_diaeresis, XK_copyright, XK_ordfeminine, + XK_guillemotleft, XK_notsign, XK_hyphen, XK_registered, XK_macron, + XK_degree, XK_plusminus, XK_twosuperior, XK_threesuperior, XK_acute, XK_mu, + XK_paragraph, XK_periodcentered, XK_cedilla, XK_onesuperior, XK_masculine, + XK_guillemotright, XK_onequarter, XK_onehalf, XK_threequarters, + XK_questiondown, XK_Agrave, XK_Aacute, XK_Acircumflex, XK_Atilde, + XK_Adiaeresis, XK_Aring, XK_AE, XK_Ccedilla, XK_Egrave, XK_Eacute, + XK_Ecircumflex, XK_Ediaeresis, XK_Igrave, XK_Iacute, XK_Icircumflex, + XK_Idiaeresis, XK_ETH, XK_Eth, XK_Ntilde, XK_Ograve, XK_Oacute, + XK_Ocircumflex, XK_Otilde, XK_Odiaeresis, XK_multiply, XK_Ooblique, + XK_Ugrave, XK_Uacute, XK_Ucircumflex, XK_Udiaeresis, XK_Yacute, XK_THORN, + XK_Thorn, XK_ssharp, XK_agrave, XK_aacute, XK_acircumflex, XK_atilde, + XK_adiaeresis, XK_aring, XK_ae, XK_ccedilla, XK_egrave, XK_eacute, + XK_ecircumflex, XK_ediaeresis, XK_igrave, XK_iacute, XK_icircumflex, + XK_idiaeresis, XK_eth, XK_ntilde, XK_ograve, XK_oacute, XK_ocircumflex, + XK_otilde, XK_odiaeresis, XK_division, XK_oslash, XK_ugrave, XK_uacute, + XK_ucircumflex, XK_udiaeresis, XK_yacute, XK_thorn, XK_ydiaeresis, + XK_Aogonek, XK_breve, XK_Lstroke, XK_Lcaron, XK_Sacute, XK_Scaron, + XK_Scedilla, XK_Tcaron, XK_Zacute, XK_Zcaron, XK_Zabovedot, XK_aogonek, + XK_ogonek, XK_lstroke, XK_lcaron, XK_sacute, XK_caron, XK_scaron, + XK_scedilla, XK_tcaron, XK_zacute, XK_doubleacute, XK_zcaron, XK_zabovedot, + XK_Racute, XK_Abreve, XK_Lacute, XK_Cacute, XK_Ccaron, XK_Eogonek, + XK_Ecaron, XK_Dcaron, XK_Dstroke, XK_Nacute, XK_Ncaron, XK_Odoubleacute, + XK_Rcaron, XK_Uring, XK_Udoubleacute, XK_Tcedilla, XK_racute, XK_abreve, + XK_lacute, XK_cacute, XK_ccaron, XK_eogonek, XK_ecaron, XK_dcaron, + XK_dstroke, XK_nacute, XK_ncaron, XK_odoubleacute, XK_rcaron, XK_uring, + XK_udoubleacute, XK_tcedilla, XK_abovedot, XK_Hstroke, XK_Hcircumflex, + XK_Iabovedot, XK_Gbreve, XK_Jcircumflex, XK_hstroke, XK_hcircumflex, + XK_idotless, XK_gbreve, XK_jcircumflex, XK_Cabovedot, XK_Ccircumflex, + XK_Gabovedot, XK_Gcircumflex, XK_Ubreve, XK_Scircumflex, XK_cabovedot, + XK_ccircumflex, XK_gabovedot, XK_gcircumflex, XK_ubreve, XK_scircumflex, + XK_kra, XK_kappa, XK_Rcedilla, XK_Itilde, XK_Lcedilla, XK_Emacron, + XK_Gcedilla, XK_Tslash, XK_rcedilla, XK_itilde, XK_lcedilla, XK_emacron, + XK_gcedilla, XK_tslash, XK_ENG, XK_eng, XK_Amacron, XK_Iogonek, + XK_Eabovedot, XK_Imacron, XK_Ncedilla, XK_Omacron, XK_Kcedilla, XK_Uogonek, + XK_Utilde, XK_Umacron, XK_amacron, XK_iogonek, XK_eabovedot, XK_imacron, + XK_ncedilla, XK_omacron, XK_kcedilla, XK_uogonek, XK_utilde, XK_umacron, + XK_overline, XK_kana_fullstop, XK_kana_openingbracket, + XK_kana_closingbracket, XK_kana_comma, XK_kana_conjunctive, + XK_kana_middledot, XK_kana_WO, XK_kana_a, XK_kana_i, XK_kana_u, XK_kana_e, + XK_kana_o, XK_kana_ya, XK_kana_yu, XK_kana_yo, XK_kana_tsu, XK_kana_tu, + XK_prolongedsound, XK_kana_A, XK_kana_I, XK_kana_U, XK_kana_E, XK_kana_O, + XK_kana_KA, XK_kana_KI, XK_kana_KU, XK_kana_KE, XK_kana_KO, XK_kana_SA, + XK_kana_SHI, XK_kana_SU, XK_kana_SE, XK_kana_SO, XK_kana_TA, XK_kana_CHI, + XK_kana_TI, XK_kana_TSU, XK_kana_TU, XK_kana_TE, XK_kana_TO, XK_kana_NA, + XK_kana_NI, XK_kana_NU, XK_kana_NE, XK_kana_NO, XK_kana_HA, XK_kana_HI, + XK_kana_FU, XK_kana_HU, XK_kana_HE, XK_kana_HO, XK_kana_MA, XK_kana_MI, + XK_kana_MU, XK_kana_ME, XK_kana_MO, XK_kana_YA, XK_kana_YU, XK_kana_YO, + XK_kana_RA, XK_kana_RI, XK_kana_RU, XK_kana_RE, XK_kana_RO, XK_kana_WA, + XK_kana_N, XK_voicedsound, XK_semivoicedsound, XK_kana_switch, + XK_Arabic_comma, XK_Arabic_semicolon, XK_Arabic_question_mark, + XK_Arabic_hamza, XK_Arabic_maddaonalef, XK_Arabic_hamzaonalef, + XK_Arabic_hamzaonwaw, XK_Arabic_hamzaunderalef, XK_Arabic_hamzaonyeh, + XK_Arabic_alef, XK_Arabic_beh, XK_Arabic_tehmarbuta, XK_Arabic_teh, + XK_Arabic_theh, XK_Arabic_jeem, XK_Arabic_hah, XK_Arabic_khah, + XK_Arabic_dal, XK_Arabic_thal, XK_Arabic_ra, XK_Arabic_zain, XK_Arabic_seen, + XK_Arabic_sheen, XK_Arabic_sad, XK_Arabic_dad, XK_Arabic_tah, XK_Arabic_zah, + XK_Arabic_ain, XK_Arabic_ghain, XK_Arabic_tatweel, XK_Arabic_feh, + XK_Arabic_qaf, XK_Arabic_kaf, XK_Arabic_lam, XK_Arabic_meem, XK_Arabic_noon, + XK_Arabic_ha, XK_Arabic_heh, XK_Arabic_waw, XK_Arabic_alefmaksura, + XK_Arabic_yeh, XK_Arabic_fathatan, XK_Arabic_dammatan, XK_Arabic_kasratan, + XK_Arabic_fatha, XK_Arabic_damma, XK_Arabic_kasra, XK_Arabic_shadda, + XK_Arabic_sukun, XK_Arabic_switch, XK_Serbian_dje, XK_Macedonia_gje, + XK_Cyrillic_io, XK_Ukrainian_ie, XK_Ukranian_je, XK_Macedonia_dse, + XK_Ukrainian_i, XK_Ukranian_i, XK_Ukrainian_yi, XK_Ukranian_yi, + XK_Cyrillic_je, XK_Serbian_je, XK_Cyrillic_lje, XK_Serbian_lje, + XK_Cyrillic_nje, XK_Serbian_nje, XK_Serbian_tshe, XK_Macedonia_kje, + XK_Byelorussian_shortu, XK_Cyrillic_dzhe, XK_Serbian_dze, XK_numerosign, + XK_Serbian_DJE, XK_Macedonia_GJE, XK_Cyrillic_IO, XK_Ukrainian_IE, + XK_Ukranian_JE, XK_Macedonia_DSE, XK_Ukrainian_I, XK_Ukranian_I, + XK_Ukrainian_YI, XK_Ukranian_YI, XK_Cyrillic_JE, XK_Serbian_JE, + XK_Cyrillic_LJE, XK_Serbian_LJE, XK_Cyrillic_NJE, XK_Serbian_NJE, + XK_Serbian_TSHE, XK_Macedonia_KJE, XK_Byelorussian_SHORTU, XK_Cyrillic_DZHE, + XK_Serbian_DZE, XK_Cyrillic_yu, XK_Cyrillic_a, XK_Cyrillic_be, + XK_Cyrillic_tse, XK_Cyrillic_de, XK_Cyrillic_ie, XK_Cyrillic_ef, + XK_Cyrillic_ghe, XK_Cyrillic_ha, XK_Cyrillic_i, XK_Cyrillic_shorti, + XK_Cyrillic_ka, XK_Cyrillic_el, XK_Cyrillic_em, XK_Cyrillic_en, + XK_Cyrillic_o, XK_Cyrillic_pe, XK_Cyrillic_ya, XK_Cyrillic_er, + XK_Cyrillic_es, XK_Cyrillic_te, XK_Cyrillic_u, XK_Cyrillic_zhe, + XK_Cyrillic_ve, XK_Cyrillic_softsign, XK_Cyrillic_yeru, XK_Cyrillic_ze, + XK_Cyrillic_sha, XK_Cyrillic_e, XK_Cyrillic_shcha, XK_Cyrillic_che, + XK_Cyrillic_hardsign, XK_Cyrillic_YU, XK_Cyrillic_A, XK_Cyrillic_BE, + XK_Cyrillic_TSE, XK_Cyrillic_DE, XK_Cyrillic_IE, XK_Cyrillic_EF, + XK_Cyrillic_GHE, XK_Cyrillic_HA, XK_Cyrillic_I, XK_Cyrillic_SHORTI, + XK_Cyrillic_KA, XK_Cyrillic_EL, XK_Cyrillic_EM, XK_Cyrillic_EN, + XK_Cyrillic_O, XK_Cyrillic_PE, XK_Cyrillic_YA, XK_Cyrillic_ER, + XK_Cyrillic_ES, XK_Cyrillic_TE, XK_Cyrillic_U, XK_Cyrillic_ZHE, + XK_Cyrillic_VE, XK_Cyrillic_SOFTSIGN, XK_Cyrillic_YERU, XK_Cyrillic_ZE, + XK_Cyrillic_SHA, XK_Cyrillic_E, XK_Cyrillic_SHCHA, XK_Cyrillic_CHE, + XK_Cyrillic_HARDSIGN, XK_Greek_ALPHAaccent, XK_Greek_EPSILONaccent, + XK_Greek_ETAaccent, XK_Greek_IOTAaccent, XK_Greek_IOTAdiaeresis, + XK_Greek_OMICRONaccent, XK_Greek_UPSILONaccent, XK_Greek_UPSILONdieresis, + XK_Greek_OMEGAaccent, XK_Greek_accentdieresis, XK_Greek_horizbar, + XK_Greek_alphaaccent, XK_Greek_epsilonaccent, XK_Greek_etaaccent, + XK_Greek_iotaaccent, XK_Greek_iotadieresis, XK_Greek_iotaaccentdieresis, + XK_Greek_omicronaccent, XK_Greek_upsilonaccent, XK_Greek_upsilondieresis, + XK_Greek_upsilonaccentdieresis, XK_Greek_omegaaccent, XK_Greek_ALPHA, + XK_Greek_BETA, XK_Greek_GAMMA, XK_Greek_DELTA, XK_Greek_EPSILON, + XK_Greek_ZETA, XK_Greek_ETA, XK_Greek_THETA, XK_Greek_IOTA, XK_Greek_KAPPA, + XK_Greek_LAMDA, XK_Greek_LAMBDA, XK_Greek_MU, XK_Greek_NU, XK_Greek_XI, + XK_Greek_OMICRON, XK_Greek_PI, XK_Greek_RHO, XK_Greek_SIGMA, XK_Greek_TAU, + XK_Greek_UPSILON, XK_Greek_PHI, XK_Greek_CHI, XK_Greek_PSI, XK_Greek_OMEGA, + XK_Greek_alpha, XK_Greek_beta, XK_Greek_gamma, XK_Greek_delta, + XK_Greek_epsilon, XK_Greek_zeta, XK_Greek_eta, XK_Greek_theta, + XK_Greek_iota, XK_Greek_kappa, XK_Greek_lamda, XK_Greek_lambda, XK_Greek_mu, + XK_Greek_nu, XK_Greek_xi, XK_Greek_omicron, XK_Greek_pi, XK_Greek_rho, + XK_Greek_sigma, XK_Greek_finalsmallsigma, XK_Greek_tau, XK_Greek_upsilon, + XK_Greek_phi, XK_Greek_chi, XK_Greek_psi, XK_Greek_omega, XK_Greek_switch, + XK_leftradical, XK_topleftradical, XK_horizconnector, XK_topintegral, + XK_botintegral, XK_vertconnector, XK_topleftsqbracket, XK_botleftsqbracket, + XK_toprightsqbracket, XK_botrightsqbracket, XK_topleftparens, + XK_botleftparens, XK_toprightparens, XK_botrightparens, + XK_leftmiddlecurlybrace, XK_rightmiddlecurlybrace, XK_topleftsummation, + XK_botleftsummation, XK_topvertsummationconnector, + XK_botvertsummationconnector, XK_toprightsummation, XK_botrightsummation, + XK_rightmiddlesummation, XK_lessthanequal, XK_notequal, XK_greaterthanequal, + XK_integral, XK_therefore, XK_variation, XK_infinity, XK_nabla, + XK_approximate, XK_similarequal, XK_ifonlyif, XK_implies, XK_identical, + XK_radical, XK_includedin, XK_includes, XK_intersection, XK_union, + XK_logicaland, XK_logicalor, XK_partialderivative, XK_function, + XK_leftarrow, XK_uparrow, XK_rightarrow, XK_downarrow, XK_blank, + XK_soliddiamond, XK_checkerboard, XK_ht, XK_ff, XK_cr, XK_lf, XK_nl, XK_vt, + XK_lowrightcorner, XK_uprightcorner, XK_upleftcorner, XK_lowleftcorner, + XK_crossinglines, XK_horizlinescan1, XK_horizlinescan3, XK_horizlinescan5, + XK_horizlinescan7, XK_horizlinescan9, XK_leftt, XK_rightt, XK_bott, XK_topt, + XK_vertbar, XK_emspace, XK_enspace, XK_em3space, XK_em4space, XK_digitspace, + XK_punctspace, XK_thinspace, XK_hairspace, XK_emdash, XK_endash, + XK_signifblank, XK_ellipsis, XK_doubbaselinedot, XK_onethird, XK_twothirds, + XK_onefifth, XK_twofifths, XK_threefifths, XK_fourfifths, XK_onesixth, + XK_fivesixths, XK_careof, XK_figdash, XK_leftanglebracket, XK_decimalpoint, + XK_rightanglebracket, XK_marker, XK_oneeighth, XK_threeeighths, + XK_fiveeighths, XK_seveneighths, XK_trademark, XK_signaturemark, + XK_trademarkincircle, XK_leftopentriangle, XK_rightopentriangle, + XK_emopencircle, XK_emopenrectangle, XK_leftsinglequotemark, + XK_rightsinglequotemark, XK_leftdoublequotemark, XK_rightdoublequotemark, + XK_prescription, XK_minutes, XK_seconds, XK_latincross, XK_hexagram, + XK_filledrectbullet, XK_filledlefttribullet, XK_filledrighttribullet, + XK_emfilledcircle, XK_emfilledrect, XK_enopencircbullet, + XK_enopensquarebullet, XK_openrectbullet, XK_opentribulletup, + XK_opentribulletdown, XK_openstar, XK_enfilledcircbullet, + XK_enfilledsqbullet, XK_filledtribulletup, XK_filledtribulletdown, + XK_leftpointer, XK_rightpointer, XK_club, XK_diamond, XK_heart, + XK_maltesecross, XK_dagger, XK_doubledagger, XK_checkmark, XK_ballotcross, + XK_musicalsharp, XK_musicalflat, XK_malesymbol, XK_femalesymbol, + XK_telephone, XK_telephonerecorder, XK_phonographcopyright, XK_caret, + XK_singlelowquotemark, XK_doublelowquotemark, XK_cursor, XK_leftcaret, + XK_rightcaret, XK_downcaret, XK_upcaret, XK_overbar, XK_downtack, XK_upshoe, + XK_downstile, XK_underbar, XK_jot, XK_quad, XK_uptack, XK_circle, + XK_upstile, XK_downshoe, XK_rightshoe, XK_leftshoe, XK_lefttack, + XK_righttack, XK_hebrew_doublelowline, XK_hebrew_aleph, XK_hebrew_bet, + XK_hebrew_beth, XK_hebrew_gimel, XK_hebrew_gimmel, XK_hebrew_dalet, + XK_hebrew_daleth, XK_hebrew_he, XK_hebrew_waw, XK_hebrew_zain, + XK_hebrew_zayin, XK_hebrew_chet, XK_hebrew_het, XK_hebrew_tet, + XK_hebrew_teth, XK_hebrew_yod, XK_hebrew_finalkaph, XK_hebrew_kaph, + XK_hebrew_lamed, XK_hebrew_finalmem, XK_hebrew_mem, XK_hebrew_finalnun, + XK_hebrew_nun, XK_hebrew_samech, XK_hebrew_samekh, XK_hebrew_ayin, + XK_hebrew_finalpe, XK_hebrew_pe, XK_hebrew_finalzade, XK_hebrew_finalzadi, + XK_hebrew_zade, XK_hebrew_zadi, XK_hebrew_qoph, XK_hebrew_kuf, + XK_hebrew_resh, XK_hebrew_shin, XK_hebrew_taw, XK_hebrew_taf, + XK_Hebrew_switch, XF86XK_ModeLock, XF86XK_MonBrightnessUp, + XF86XK_MonBrightnessDown, XF86XK_KbdLightOnOff, XF86XK_KbdBrightnessUp, + XF86XK_KbdBrightnessDown, XF86XK_Standby, XF86XK_AudioLowerVolume, + XF86XK_AudioMute, XF86XK_AudioRaiseVolume, XF86XK_AudioPlay, + XF86XK_AudioStop, XF86XK_AudioPrev, XF86XK_AudioNext, XF86XK_HomePage, + XF86XK_Mail, XF86XK_Start, XF86XK_Search, XF86XK_AudioRecord, + XF86XK_Calculator, XF86XK_Memo, XF86XK_ToDoList, XF86XK_Calendar, + XF86XK_PowerDown, XF86XK_ContrastAdjust, XF86XK_RockerUp, XF86XK_RockerDown, + XF86XK_RockerEnter, XF86XK_Back, XF86XK_Forward, XF86XK_Stop, + XF86XK_Refresh, XF86XK_PowerOff, XF86XK_WakeUp, XF86XK_Eject, + XF86XK_ScreenSaver, XF86XK_WWW, XF86XK_Sleep, XF86XK_Favorites, + XF86XK_AudioPause, XF86XK_AudioMedia, XF86XK_MyComputer, XF86XK_VendorHome, + XF86XK_LightBulb, XF86XK_Shop, XF86XK_History, XF86XK_OpenURL, + XF86XK_AddFavorite, XF86XK_HotLinks, XF86XK_BrightnessAdjust, + XF86XK_Finance, XF86XK_Community, XF86XK_AudioRewind, XF86XK_BackForward, + XF86XK_Launch0, XF86XK_Launch1, XF86XK_Launch2, XF86XK_Launch3, + XF86XK_Launch4, XF86XK_Launch5, XF86XK_Launch6, XF86XK_Launch7, + XF86XK_Launch8, XF86XK_Launch9, XF86XK_LaunchA, XF86XK_LaunchB, + XF86XK_LaunchC, XF86XK_LaunchD, XF86XK_LaunchE, XF86XK_LaunchF, + XF86XK_ApplicationLeft, XF86XK_ApplicationRight, XF86XK_Book, XF86XK_CD, + XF86XK_Calculater, XF86XK_Clear, XF86XK_Close, XF86XK_Copy, XF86XK_Cut, + XF86XK_Display, XF86XK_DOS, XF86XK_Documents, XF86XK_Excel, XF86XK_Explorer, + XF86XK_Game, XF86XK_Go, XF86XK_iTouch, XF86XK_LogOff, XF86XK_Market, + XF86XK_Meeting, XF86XK_MenuKB, XF86XK_MenuPB, XF86XK_MySites, XF86XK_New, + XF86XK_News, XF86XK_OfficeHome, XF86XK_Open, XF86XK_Option, XF86XK_Paste, + XF86XK_Phone, XF86XK_Q, XF86XK_Reply, XF86XK_Reload, XF86XK_RotateWindows, + XF86XK_RotationPB, XF86XK_RotationKB, XF86XK_Save, XF86XK_ScrollUp, + XF86XK_ScrollDown, XF86XK_ScrollClick, XF86XK_Send, XF86XK_Spell, + XF86XK_SplitScreen, XF86XK_Support, XF86XK_TaskPane, XF86XK_Terminal, + XF86XK_Tools, XF86XK_Travel, XF86XK_UserPB, XF86XK_User1KB, XF86XK_User2KB, + XF86XK_Video, XF86XK_WheelButton, XF86XK_Word, XF86XK_Xfer, XF86XK_ZoomIn, + XF86XK_ZoomOut, XF86XK_Away, XF86XK_Messenger, XF86XK_WebCam, + XF86XK_MailForward, XF86XK_Pictures, XF86XK_Music, XF86XK_Battery, + XF86XK_Bluetooth, XF86XK_WLAN, XF86XK_UWB, XF86XK_AudioForward, + XF86XK_AudioRepeat, XF86XK_AudioRandomPlay, XF86XK_Subtitle, + XF86XK_AudioCycleTrack, XF86XK_CycleAngle, XF86XK_FrameBack, + XF86XK_FrameForward, XF86XK_Time, XF86XK_Select, XF86XK_View, + XF86XK_TopMenu, XF86XK_Red, XF86XK_Green, XF86XK_Yellow, XF86XK_Blue, + XF86XK_Suspend, XF86XK_Hibernate, XF86XK_TouchpadToggle, XF86XK_TouchpadOn, + XF86XK_TouchpadOff, XF86XK_AudioMicMute, XF86XK_Switch_VT_1, + XF86XK_Switch_VT_2, XF86XK_Switch_VT_3, XF86XK_Switch_VT_4, + XF86XK_Switch_VT_5, XF86XK_Switch_VT_6, XF86XK_Switch_VT_7, + XF86XK_Switch_VT_8, XF86XK_Switch_VT_9, XF86XK_Switch_VT_10, + XF86XK_Switch_VT_11, XF86XK_Switch_VT_12, XF86XK_Ungrab, XF86XK_ClearGrab, + XF86XK_Next_VMode, XF86XK_Prev_VMode, XF86XK_LogWindowTree, + XF86XK_LogGrabInfo, +};