Class: X11Client
- Inherits:
-
Object
- Object
- X11Client
- Defined in:
- lib/x11_client.rb,
lib/x11_client/keysym.rb,
ext/x11_client_ext/x11_client_ext.c
Constant Summary collapse
- KEYSYM =
{ # /usr/include/X11/DECkeysym.h 'DXK_ring_accent' => 0x1000, 'DXK_circumflex_accent' => 0x1000, 'DXK_cedilla_accent' => 0x1000, 'DXK_acute_accent' => 0x1000, 'DXK_grave_accent' => 0x1000, 'DXK_tilde' => 0x1000, 'DXK_diaeresis' => 0x1000, 'DXK_Remove' => 0x1000, # /usr/include/X11/Sunkeysym.h 'SunXK_FA_Grave' => 0x1005, 'SunXK_FA_Circum' => 0x1005, 'SunXK_FA_Tilde' => 0x1005, 'SunXK_FA_Acute' => 0x1005, 'SunXK_FA_Diaeresis' => 0x1005, 'SunXK_FA_Cedilla' => 0x1005, 'SunXK_F36' => 0x1005, 'SunXK_F37' => 0x1005, 'SunXK_Sys_Req' => 0x1005, 'SunXK_Print_Screen' => 0x0000, 'SunXK_Compose' => 0x0000, 'SunXK_AltGraph' => 0x0000, 'SunXK_PageUp' => 0x0000, 'SunXK_PageDown' => 0x0000, 'SunXK_Undo' => 0x0000, 'SunXK_Again' => 0x0000, 'SunXK_Find' => 0x0000, 'SunXK_Stop' => 0x0000, 'SunXK_Props' => 0x1005, 'SunXK_Front' => 0x1005, 'SunXK_Copy' => 0x1005, 'SunXK_Open' => 0x1005, 'SunXK_Paste' => 0x1005, 'SunXK_Cut' => 0x1005, 'SunXK_PowerSwitch' => 0x1005, 'SunXK_AudioLowerVolume' => 0x1005, 'SunXK_AudioMute' => 0x1005, 'SunXK_AudioRaiseVolume' => 0x1005, 'SunXK_VideoDegauss' => 0x1005, 'SunXK_VideoLowerBrightness' => 0x1005, 'SunXK_VideoRaiseBrightness' => 0x1005, 'SunXK_PowerSwitchShift' => 0x1005, # /usr/include/X11/ap_keysym.h 'apXK_LineDel' => 0x1000, 'apXK_CharDel' => 0x1000, 'apXK_Copy' => 0x1000, 'apXK_Cut' => 0x1000, 'apXK_Paste' => 0x1000, 'apXK_Move' => 0x1000, 'apXK_Grow' => 0x1000, 'apXK_Cmd' => 0x1000, 'apXK_Shell' => 0x1000, 'apXK_LeftBar' => 0x1000, 'apXK_RightBar' => 0x1000, 'apXK_LeftBox' => 0x1000, 'apXK_RightBox' => 0x1000, 'apXK_UpBox' => 0x1000, 'apXK_DownBox' => 0x1000, 'apXK_Pop' => 0x1000, 'apXK_Read' => 0x1000, 'apXK_Edit' => 0x1000, 'apXK_Save' => 0x1000, 'apXK_Exit' => 0x1000, 'apXK_Repeat' => 0x1000, 'apXK_KP_parenleft' => 0x1000, 'apXK_KP_parenright' => 0x1000, # /usr/include/X11/keysymdef.h '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_3270_Duplicate' => 0xfd01, 'XK_3270_FieldMark' => 0xfd02, 'XK_3270_Right2' => 0xfd03, 'XK_3270_Left2' => 0xfd04, 'XK_3270_BackTab' => 0xfd05, 'XK_3270_EraseEOF' => 0xfd06, 'XK_3270_EraseInput' => 0xfd07, 'XK_3270_Reset' => 0xfd08, 'XK_3270_Quit' => 0xfd09, 'XK_3270_PA1' => 0xfd0a, 'XK_3270_PA2' => 0xfd0b, 'XK_3270_PA3' => 0xfd0c, 'XK_3270_Test' => 0xfd0d, 'XK_3270_Attn' => 0xfd0e, 'XK_3270_CursorBlink' => 0xfd0f, 'XK_3270_AltCursor' => 0xfd10, 'XK_3270_KeyClick' => 0xfd11, 'XK_3270_Jump' => 0xfd12, 'XK_3270_Ident' => 0xfd13, 'XK_3270_Rule' => 0xfd14, 'XK_3270_Copy' => 0xfd15, 'XK_3270_Play' => 0xfd16, 'XK_3270_Setup' => 0xfd17, 'XK_3270_Record' => 0xfd18, 'XK_3270_ChangeScreen' => 0xfd19, 'XK_3270_DeleteWord' => 0xfd1a, 'XK_3270_ExSelect' => 0xfd1b, 'XK_3270_CursorSelect' => 0xfd1c, 'XK_3270_PrintScreen' => 0xfd1d, 'XK_3270_Enter' => 0xfd1e, '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_rcaron' => 0x01f8, 'XK_uring' => 0x01f9, 'XK_udoubleacute' => 0x01fb, '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_Wcircumflex' => 0x1000174, 'XK_wcircumflex' => 0x1000175, 'XK_Ycircumflex' => 0x1000176, 'XK_ycircumflex' => 0x1000177, 'XK_Babovedot' => 0x1001e02, 'XK_babovedot' => 0x1001e03, 'XK_Dabovedot' => 0x1001e0a, 'XK_dabovedot' => 0x1001e0b, 'XK_Fabovedot' => 0x1001e1e, 'XK_fabovedot' => 0x1001e1f, 'XK_Mabovedot' => 0x1001e40, 'XK_mabovedot' => 0x1001e41, 'XK_Pabovedot' => 0x1001e56, 'XK_pabovedot' => 0x1001e57, 'XK_Sabovedot' => 0x1001e60, 'XK_sabovedot' => 0x1001e61, 'XK_Tabovedot' => 0x1001e6a, 'XK_tabovedot' => 0x1001e6b, 'XK_Wgrave' => 0x1001e80, 'XK_wgrave' => 0x1001e81, 'XK_Wacute' => 0x1001e82, 'XK_wacute' => 0x1001e83, 'XK_Wdiaeresis' => 0x1001e84, 'XK_wdiaeresis' => 0x1001e85, 'XK_Ygrave' => 0x1001ef2, 'XK_ygrave' => 0x1001ef3, '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_leftradical' => 0x08a1, 'XK_topleftradical' => 0x08a2, 'XK_horizconnector' => 0x08a3, 'XK_topintegral' => 0x08a4, 'XK_botintegral' => 0x08a5, 'XK_vertconnector' => 0x08a6, 'XK_topleftsqbracket' => 0x08a7, 'XK_botleftsqbracket' => 0x08a8, 'XK_toprightsqbracket' => 0x08a9, 'XK_botrightsqbracket' => 0x08aa, 'XK_topleftparens' => 0x08ab, 'XK_botleftparens' => 0x08ac, 'XK_toprightparens' => 0x08ad, 'XK_botrightparens' => 0x08ae, 'XK_leftmiddlecurlybrace' => 0x08af, 'XK_rightmiddlecurlybrace' => 0x08b0, 'XK_topleftsummation' => 0x08b1, 'XK_botleftsummation' => 0x08b2, 'XK_topvertsummationconnector' => 0x08b3, 'XK_botvertsummationconnector' => 0x08b4, 'XK_toprightsummation' => 0x08b5, 'XK_botrightsummation' => 0x08b6, 'XK_rightmiddlesummation' => 0x08b7, 'XK_lessthanequal' => 0x08bc, 'XK_notequal' => 0x08bd, 'XK_greaterthanequal' => 0x08be, 'XK_integral' => 0x08bf, 'XK_therefore' => 0x08c0, 'XK_variation' => 0x08c1, 'XK_infinity' => 0x08c2, 'XK_nabla' => 0x08c5, 'XK_approximate' => 0x08c8, 'XK_similarequal' => 0x08c9, 'XK_ifonlyif' => 0x08cd, 'XK_implies' => 0x08ce, 'XK_identical' => 0x08cf, 'XK_radical' => 0x08d6, 'XK_includedin' => 0x08da, 'XK_includes' => 0x08db, 'XK_intersection' => 0x08dc, 'XK_union' => 0x08dd, 'XK_logicaland' => 0x08de, 'XK_logicalor' => 0x08df, 'XK_partialderivative' => 0x08ef, 'XK_function' => 0x08f6, 'XK_leftarrow' => 0x08fb, 'XK_uparrow' => 0x08fc, 'XK_rightarrow' => 0x08fd, 'XK_downarrow' => 0x08fe, 'XK_blank' => 0x09df, 'XK_soliddiamond' => 0x09e0, 'XK_checkerboard' => 0x09e1, 'XK_ht' => 0x09e2, 'XK_ff' => 0x09e3, 'XK_cr' => 0x09e4, 'XK_lf' => 0x09e5, 'XK_nl' => 0x09e8, 'XK_vt' => 0x09e9, 'XK_lowrightcorner' => 0x09ea, 'XK_uprightcorner' => 0x09eb, 'XK_upleftcorner' => 0x09ec, 'XK_lowleftcorner' => 0x09ed, 'XK_crossinglines' => 0x09ee, 'XK_horizlinescan1' => 0x09ef, 'XK_horizlinescan3' => 0x09f0, 'XK_horizlinescan5' => 0x09f1, 'XK_horizlinescan7' => 0x09f2, 'XK_horizlinescan9' => 0x09f3, 'XK_leftt' => 0x09f4, 'XK_rightt' => 0x09f5, 'XK_bott' => 0x09f6, 'XK_topt' => 0x09f7, 'XK_vertbar' => 0x09f8, 'XK_emspace' => 0x0aa1, 'XK_enspace' => 0x0aa2, 'XK_em3space' => 0x0aa3, 'XK_em4space' => 0x0aa4, 'XK_digitspace' => 0x0aa5, 'XK_punctspace' => 0x0aa6, 'XK_thinspace' => 0x0aa7, 'XK_hairspace' => 0x0aa8, 'XK_emdash' => 0x0aa9, 'XK_endash' => 0x0aaa, 'XK_signifblank' => 0x0aac, 'XK_ellipsis' => 0x0aae, 'XK_doubbaselinedot' => 0x0aaf, 'XK_onethird' => 0x0ab0, 'XK_twothirds' => 0x0ab1, 'XK_onefifth' => 0x0ab2, 'XK_twofifths' => 0x0ab3, 'XK_threefifths' => 0x0ab4, 'XK_fourfifths' => 0x0ab5, 'XK_onesixth' => 0x0ab6, 'XK_fivesixths' => 0x0ab7, 'XK_careof' => 0x0ab8, 'XK_figdash' => 0x0abb, 'XK_leftanglebracket' => 0x0abc, 'XK_decimalpoint' => 0x0abd, 'XK_rightanglebracket' => 0x0abe, 'XK_marker' => 0x0abf, 'XK_oneeighth' => 0x0ac3, 'XK_threeeighths' => 0x0ac4, 'XK_fiveeighths' => 0x0ac5, 'XK_seveneighths' => 0x0ac6, 'XK_trademark' => 0x0ac9, 'XK_signaturemark' => 0x0aca, 'XK_trademarkincircle' => 0x0acb, 'XK_leftopentriangle' => 0x0acc, 'XK_rightopentriangle' => 0x0acd, 'XK_emopencircle' => 0x0ace, 'XK_emopenrectangle' => 0x0acf, 'XK_leftsinglequotemark' => 0x0ad0, 'XK_rightsinglequotemark' => 0x0ad1, 'XK_leftdoublequotemark' => 0x0ad2, 'XK_rightdoublequotemark' => 0x0ad3, 'XK_prescription' => 0x0ad4, 'XK_minutes' => 0x0ad6, 'XK_seconds' => 0x0ad7, 'XK_latincross' => 0x0ad9, 'XK_hexagram' => 0x0ada, 'XK_filledrectbullet' => 0x0adb, 'XK_filledlefttribullet' => 0x0adc, 'XK_filledrighttribullet' => 0x0add, 'XK_emfilledcircle' => 0x0ade, 'XK_emfilledrect' => 0x0adf, 'XK_enopencircbullet' => 0x0ae0, 'XK_enopensquarebullet' => 0x0ae1, 'XK_openrectbullet' => 0x0ae2, 'XK_opentribulletup' => 0x0ae3, 'XK_opentribulletdown' => 0x0ae4, 'XK_openstar' => 0x0ae5, 'XK_enfilledcircbullet' => 0x0ae6, 'XK_enfilledsqbullet' => 0x0ae7, 'XK_filledtribulletup' => 0x0ae8, 'XK_filledtribulletdown' => 0x0ae9, 'XK_leftpointer' => 0x0aea, 'XK_rightpointer' => 0x0aeb, 'XK_club' => 0x0aec, 'XK_diamond' => 0x0aed, 'XK_heart' => 0x0aee, 'XK_maltesecross' => 0x0af0, 'XK_dagger' => 0x0af1, 'XK_doubledagger' => 0x0af2, 'XK_checkmark' => 0x0af3, 'XK_ballotcross' => 0x0af4, 'XK_musicalsharp' => 0x0af5, 'XK_musicalflat' => 0x0af6, 'XK_malesymbol' => 0x0af7, 'XK_femalesymbol' => 0x0af8, 'XK_telephone' => 0x0af9, 'XK_telephonerecorder' => 0x0afa, 'XK_phonographcopyright' => 0x0afb, 'XK_caret' => 0x0afc, 'XK_singlelowquotemark' => 0x0afd, 'XK_doublelowquotemark' => 0x0afe, 'XK_cursor' => 0x0aff, 'XK_leftcaret' => 0x0ba3, 'XK_rightcaret' => 0x0ba6, 'XK_downcaret' => 0x0ba8, 'XK_upcaret' => 0x0ba9, 'XK_overbar' => 0x0bc0, 'XK_downtack' => 0x0bc2, 'XK_upshoe' => 0x0bc3, 'XK_downstile' => 0x0bc4, 'XK_underbar' => 0x0bc6, 'XK_jot' => 0x0bca, 'XK_quad' => 0x0bcc, 'XK_uptack' => 0x0bce, 'XK_circle' => 0x0bcf, 'XK_upstile' => 0x0bd3, 'XK_downshoe' => 0x0bd6, 'XK_rightshoe' => 0x0bd8, 'XK_leftshoe' => 0x0bda, 'XK_lefttack' => 0x0bdc, 'XK_righttack' => 0x0bfc, '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' => 0x100220, 'XK_squareroot' => 0x100221, 'XK_cuberoot' => 0x100221, 'XK_fourthroot' => 0x100221, 'XK_dintegral' => 0x100222, 'XK_tintegral' => 0x100222, '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, 'XK_Sinh_ng' => 0x1000d82, 'XK_Sinh_h2' => 0x1000d83, 'XK_Sinh_a' => 0x1000d85, 'XK_Sinh_aa' => 0x1000d86, 'XK_Sinh_ae' => 0x1000d87, 'XK_Sinh_aee' => 0x1000d88, 'XK_Sinh_i' => 0x1000d89, 'XK_Sinh_ii' => 0x1000d8a, 'XK_Sinh_u' => 0x1000d8b, 'XK_Sinh_uu' => 0x1000d8c, 'XK_Sinh_ri' => 0x1000d8d, 'XK_Sinh_rii' => 0x1000d8e, 'XK_Sinh_lu' => 0x1000d8f, 'XK_Sinh_luu' => 0x1000d90, 'XK_Sinh_e' => 0x1000d91, 'XK_Sinh_ee' => 0x1000d92, 'XK_Sinh_ai' => 0x1000d93, 'XK_Sinh_o' => 0x1000d94, 'XK_Sinh_oo' => 0x1000d95, 'XK_Sinh_au' => 0x1000d96, 'XK_Sinh_ka' => 0x1000d9a, 'XK_Sinh_kha' => 0x1000d9b, 'XK_Sinh_ga' => 0x1000d9c, 'XK_Sinh_gha' => 0x1000d9d, 'XK_Sinh_ng2' => 0x1000d9e, 'XK_Sinh_nga' => 0x1000d9f, 'XK_Sinh_ca' => 0x1000da0, 'XK_Sinh_cha' => 0x1000da1, 'XK_Sinh_ja' => 0x1000da2, 'XK_Sinh_jha' => 0x1000da3, 'XK_Sinh_nya' => 0x1000da4, 'XK_Sinh_jnya' => 0x1000da5, 'XK_Sinh_nja' => 0x1000da6, 'XK_Sinh_tta' => 0x1000da7, 'XK_Sinh_ttha' => 0x1000da8, 'XK_Sinh_dda' => 0x1000da9, 'XK_Sinh_ddha' => 0x1000daa, 'XK_Sinh_nna' => 0x1000dab, 'XK_Sinh_ndda' => 0x1000dac, 'XK_Sinh_tha' => 0x1000dad, 'XK_Sinh_thha' => 0x1000dae, 'XK_Sinh_dha' => 0x1000daf, 'XK_Sinh_dhha' => 0x1000db0, 'XK_Sinh_na' => 0x1000db1, 'XK_Sinh_ndha' => 0x1000db3, 'XK_Sinh_pa' => 0x1000db4, 'XK_Sinh_pha' => 0x1000db5, 'XK_Sinh_ba' => 0x1000db6, 'XK_Sinh_bha' => 0x1000db7, 'XK_Sinh_ma' => 0x1000db8, 'XK_Sinh_mba' => 0x1000db9, 'XK_Sinh_ya' => 0x1000dba, 'XK_Sinh_ra' => 0x1000dbb, 'XK_Sinh_la' => 0x1000dbd, 'XK_Sinh_va' => 0x1000dc0, 'XK_Sinh_sha' => 0x1000dc1, 'XK_Sinh_ssha' => 0x1000dc2, 'XK_Sinh_sa' => 0x1000dc3, 'XK_Sinh_ha' => 0x1000dc4, 'XK_Sinh_lla' => 0x1000dc5, 'XK_Sinh_fa' => 0x1000dc6, 'XK_Sinh_al' => 0x1000dca, 'XK_Sinh_aa2' => 0x1000dcf, 'XK_Sinh_ae2' => 0x1000dd0, 'XK_Sinh_aee2' => 0x1000dd1, 'XK_Sinh_i2' => 0x1000dd2, 'XK_Sinh_ii2' => 0x1000dd3, 'XK_Sinh_u2' => 0x1000dd4, 'XK_Sinh_uu2' => 0x1000dd6, 'XK_Sinh_ru2' => 0x1000dd8, 'XK_Sinh_e2' => 0x1000dd9, 'XK_Sinh_ee2' => 0x1000dda, 'XK_Sinh_ai2' => 0x1000ddb, 'XK_Sinh_o2' => 0x1000ddc, 'XK_Sinh_oo2' => 0x1000ddd, 'XK_Sinh_au2' => 0x1000dde, 'XK_Sinh_lu2' => 0x1000ddf, 'XK_Sinh_ruu2' => 0x1000df2, 'XK_Sinh_luu2' => 0x1000df3, 'XK_Sinh_kunddaliya' => 0x1000df4, # /usr/include/X11/XF86keysym.h 'XF86XK_ModeLock' => 0x1008, 'XF86XK_MonBrightnessUp' => 0x1008, 'XF86XK_MonBrightnessDown' => 0x1008, 'XF86XK_KbdLightOnOff' => 0x1008, 'XF86XK_KbdBrightnessUp' => 0x1008, 'XF86XK_KbdBrightnessDown' => 0x1008, 'XF86XK_Standby' => 0x1008, 'XF86XK_AudioLowerVolume' => 0x1008, 'XF86XK_AudioMute' => 0x1008, 'XF86XK_AudioRaiseVolume' => 0x1008, 'XF86XK_AudioPlay' => 0x1008, 'XF86XK_AudioStop' => 0x1008, 'XF86XK_AudioPrev' => 0x1008, 'XF86XK_AudioNext' => 0x1008, 'XF86XK_HomePage' => 0x1008, 'XF86XK_Mail' => 0x1008, 'XF86XK_Start' => 0x1008, 'XF86XK_Search' => 0x1008, 'XF86XK_AudioRecord' => 0x1008, 'XF86XK_Calculator' => 0x1008, 'XF86XK_Memo' => 0x1008, 'XF86XK_ToDoList' => 0x1008, 'XF86XK_Calendar' => 0x1008, 'XF86XK_PowerDown' => 0x1008, 'XF86XK_ContrastAdjust' => 0x1008, 'XF86XK_RockerUp' => 0x1008, 'XF86XK_RockerDown' => 0x1008, 'XF86XK_RockerEnter' => 0x1008, 'XF86XK_Back' => 0x1008, 'XF86XK_Forward' => 0x1008, 'XF86XK_Stop' => 0x1008, 'XF86XK_Refresh' => 0x1008, 'XF86XK_PowerOff' => 0x1008, 'XF86XK_WakeUp' => 0x1008, 'XF86XK_Eject' => 0x1008, 'XF86XK_ScreenSaver' => 0x1008, 'XF86XK_WWW' => 0x1008, 'XF86XK_Sleep' => 0x1008, 'XF86XK_Favorites' => 0x1008, 'XF86XK_AudioPause' => 0x1008, 'XF86XK_AudioMedia' => 0x1008, 'XF86XK_MyComputer' => 0x1008, 'XF86XK_VendorHome' => 0x1008, 'XF86XK_LightBulb' => 0x1008, 'XF86XK_Shop' => 0x1008, 'XF86XK_History' => 0x1008, 'XF86XK_OpenURL' => 0x1008, 'XF86XK_AddFavorite' => 0x1008, 'XF86XK_HotLinks' => 0x1008, 'XF86XK_BrightnessAdjust' => 0x1008, 'XF86XK_Finance' => 0x1008, 'XF86XK_Community' => 0x1008, 'XF86XK_AudioRewind' => 0x1008, 'XF86XK_BackForward' => 0x1008, 'XF86XK_Launch0' => 0x1008, 'XF86XK_Launch1' => 0x1008, 'XF86XK_Launch2' => 0x1008, 'XF86XK_Launch3' => 0x1008, 'XF86XK_Launch4' => 0x1008, 'XF86XK_Launch5' => 0x1008, 'XF86XK_Launch6' => 0x1008, 'XF86XK_Launch7' => 0x1008, 'XF86XK_Launch8' => 0x1008, 'XF86XK_Launch9' => 0x1008, 'XF86XK_LaunchA' => 0x1008, 'XF86XK_LaunchB' => 0x1008, 'XF86XK_LaunchC' => 0x1008, 'XF86XK_LaunchD' => 0x1008, 'XF86XK_LaunchE' => 0x1008, 'XF86XK_LaunchF' => 0x1008, 'XF86XK_ApplicationLeft' => 0x1008, 'XF86XK_ApplicationRight' => 0x1008, 'XF86XK_Book' => 0x1008, 'XF86XK_CD' => 0x1008, 'XF86XK_Calculater' => 0x1008, 'XF86XK_Clear' => 0x1008, 'XF86XK_Close' => 0x1008, 'XF86XK_Copy' => 0x1008, 'XF86XK_Cut' => 0x1008, 'XF86XK_Display' => 0x1008, 'XF86XK_DOS' => 0x1008, 'XF86XK_Documents' => 0x1008, 'XF86XK_Excel' => 0x1008, 'XF86XK_Explorer' => 0x1008, 'XF86XK_Game' => 0x1008, 'XF86XK_Go' => 0x1008, 'XF86XK_iTouch' => 0x1008, 'XF86XK_LogOff' => 0x1008, 'XF86XK_Market' => 0x1008, 'XF86XK_Meeting' => 0x1008, 'XF86XK_MenuKB' => 0x1008, 'XF86XK_MenuPB' => 0x1008, 'XF86XK_MySites' => 0x1008, 'XF86XK_New' => 0x1008, 'XF86XK_News' => 0x1008, 'XF86XK_OfficeHome' => 0x1008, 'XF86XK_Open' => 0x1008, 'XF86XK_Option' => 0x1008, 'XF86XK_Paste' => 0x1008, 'XF86XK_Phone' => 0x1008, 'XF86XK_Q' => 0x1008, 'XF86XK_Reply' => 0x1008, 'XF86XK_Reload' => 0x1008, 'XF86XK_RotateWindows' => 0x1008, 'XF86XK_RotationPB' => 0x1008, 'XF86XK_RotationKB' => 0x1008, 'XF86XK_Save' => 0x1008, 'XF86XK_ScrollUp' => 0x1008, 'XF86XK_ScrollDown' => 0x1008, 'XF86XK_ScrollClick' => 0x1008, 'XF86XK_Send' => 0x1008, 'XF86XK_Spell' => 0x1008, 'XF86XK_SplitScreen' => 0x1008, 'XF86XK_Support' => 0x1008, 'XF86XK_TaskPane' => 0x1008, 'XF86XK_Terminal' => 0x1008, 'XF86XK_Tools' => 0x1008, 'XF86XK_Travel' => 0x1008, 'XF86XK_UserPB' => 0x1008, 'XF86XK_User1KB' => 0x1008, 'XF86XK_User2KB' => 0x1008, 'XF86XK_Video' => 0x1008, 'XF86XK_WheelButton' => 0x1008, 'XF86XK_Word' => 0x1008, 'XF86XK_Xfer' => 0x1008, 'XF86XK_ZoomIn' => 0x1008, 'XF86XK_ZoomOut' => 0x1008, 'XF86XK_Away' => 0x1008, 'XF86XK_Messenger' => 0x1008, 'XF86XK_WebCam' => 0x1008, 'XF86XK_MailForward' => 0x1008, 'XF86XK_Pictures' => 0x1008, 'XF86XK_Music' => 0x1008, 'XF86XK_Battery' => 0x1008, 'XF86XK_Bluetooth' => 0x1008, 'XF86XK_WLAN' => 0x1008, 'XF86XK_UWB' => 0x1008, 'XF86XK_AudioForward' => 0x1008, 'XF86XK_AudioRepeat' => 0x1008, 'XF86XK_AudioRandomPlay' => 0x1008, 'XF86XK_Subtitle' => 0x1008, 'XF86XK_AudioCycleTrack' => 0x1008, 'XF86XK_CycleAngle' => 0x1008, 'XF86XK_FrameBack' => 0x1008, 'XF86XK_FrameForward' => 0x1008, 'XF86XK_Time' => 0x1008, 'XF86XK_Select' => 0x1008, 'XF86XK_View' => 0x1008, 'XF86XK_TopMenu' => 0x1008, 'XF86XK_Red' => 0x1008, 'XF86XK_Green' => 0x1008, 'XF86XK_Yellow' => 0x1008, 'XF86XK_Blue' => 0x1008, 'XF86XK_Suspend' => 0x1008, 'XF86XK_Hibernate' => 0x1008, 'XF86XK_TouchpadToggle' => 0x1008, 'XF86XK_TouchpadOn' => 0x1008, 'XF86XK_TouchpadOff' => 0x1008, 'XF86XK_Switch_VT_1' => 0x1008, 'XF86XK_Switch_VT_2' => 0x1008, 'XF86XK_Switch_VT_3' => 0x1008, 'XF86XK_Switch_VT_4' => 0x1008, 'XF86XK_Switch_VT_5' => 0x1008, 'XF86XK_Switch_VT_6' => 0x1008, 'XF86XK_Switch_VT_7' => 0x1008, 'XF86XK_Switch_VT_8' => 0x1008, 'XF86XK_Switch_VT_9' => 0x1008, 'XF86XK_Switch_VT_10' => 0x1008, 'XF86XK_Switch_VT_11' => 0x1008, 'XF86XK_Switch_VT_12' => 0x1008, 'XF86XK_Ungrab' => 0x1008, 'XF86XK_ClearGrab' => 0x1008, 'XF86XK_Next_VMode' => 0x1008, 'XF86XK_Prev_VMode' => 0x1008, 'XF86XK_LogWindowTree' => 0x1008, 'XF86XK_LogGrabInfo' => 0x1008, # /usr/include/X11/HPkeysym.h 'hpXK_ClearLine' => 0x1000, 'hpXK_InsertLine' => 0x1000, 'hpXK_DeleteLine' => 0x1000, 'hpXK_InsertChar' => 0x1000, 'hpXK_DeleteChar' => 0x1000, 'hpXK_BackTab' => 0x1000, 'hpXK_KP_BackTab' => 0x1000, 'hpXK_Modelock1' => 0x1000, 'hpXK_Modelock2' => 0x1000, 'hpXK_Reset' => 0x1000, 'hpXK_System' => 0x1000, 'hpXK_User' => 0x1000, 'hpXK_mute_acute' => 0x100000, 'hpXK_mute_grave' => 0x100000, 'hpXK_mute_asciicircum' => 0x100000, 'hpXK_mute_diaeresis' => 0x100000, 'hpXK_mute_asciitilde' => 0x100000, 'hpXK_lira' => 0x100000, 'hpXK_guilder' => 0x100000, 'hpXK_Ydiaeresis' => 0x100000, 'hpXK_IO' => 0x100000, 'hpXK_longminus' => 0x100000, 'hpXK_block' => 0x100000, 'osfXK_Copy' => 0x1004, 'osfXK_Cut' => 0x1004, 'osfXK_Paste' => 0x1004, 'osfXK_BackTab' => 0x1004, 'osfXK_BackSpace' => 0x1004, 'osfXK_Clear' => 0x1004, 'osfXK_Escape' => 0x1004, 'osfXK_AddMode' => 0x1004, 'osfXK_PrimaryPaste' => 0x1004, 'osfXK_QuickPaste' => 0x1004, 'osfXK_PageLeft' => 0x1004, 'osfXK_PageUp' => 0x1004, 'osfXK_PageDown' => 0x1004, 'osfXK_PageRight' => 0x1004, 'osfXK_Activate' => 0x1004, 'osfXK_MenuBar' => 0x1004, 'osfXK_Left' => 0x1004, 'osfXK_Up' => 0x1004, 'osfXK_Right' => 0x1004, 'osfXK_Down' => 0x1004, 'osfXK_EndLine' => 0x1004, 'osfXK_BeginLine' => 0x1004, 'osfXK_EndData' => 0x1004, 'osfXK_BeginData' => 0x1004, 'osfXK_PrevMenu' => 0x1004, 'osfXK_NextMenu' => 0x1004, 'osfXK_PrevField' => 0x1004, 'osfXK_NextField' => 0x1004, 'osfXK_Select' => 0x1004, 'osfXK_Insert' => 0x1004, 'osfXK_Undo' => 0x1004, 'osfXK_Menu' => 0x1004, 'osfXK_Cancel' => 0x1004, 'osfXK_Help' => 0x1004, 'osfXK_SelectAll' => 0x1004, 'osfXK_DeselectAll' => 0x1004, 'osfXK_Reselect' => 0x1004, 'osfXK_Extend' => 0x1004, 'osfXK_Restore' => 0x1004, 'osfXK_Delete' => 0x1004, 'XK_Reset' => 0x1000, 'XK_System' => 0x1000, 'XK_User' => 0x1000, 'XK_ClearLine' => 0x1000, 'XK_InsertLine' => 0x1000, 'XK_DeleteLine' => 0x1000, 'XK_InsertChar' => 0x1000, 'XK_DeleteChar' => 0x1000, 'XK_BackTab' => 0x1000, 'XK_KP_BackTab' => 0x1000, 'XK_Ext16bit_L' => 0x1000, 'XK_Ext16bit_R' => 0x1000, 'XK_mute_acute' => 0x100000a8, 'XK_mute_grave' => 0x100000a9, 'XK_mute_asciicircum' => 0x100000aa, 'XK_mute_diaeresis' => 0x100000ab, 'XK_mute_asciitilde' => 0x100000ac, 'XK_lira' => 0x100000af, 'XK_guilder' => 0x100000be, 'XK_Ydiaeresis' => 0x100000ee, 'XK_IO' => 0x100000ee, 'XK_longminus' => 0x100000f6, 'XK_block' => 0x100000fc, # /usr/include/X11/keysym.h }
Instance Method Summary collapse
- #close_display ⇒ Object
- #get_window ⇒ Object
- #get_window_name ⇒ Object
- #initialize ⇒ Object constructor
-
#key(name, time = 0.01) ⇒ Object
Press and release a key.
-
#key2sym(key) ⇒ Object
Convert X11 key name to symbol (integer).
- #keyaction ⇒ Object
-
#keypdown(name) ⇒ Object
Press a key.
-
#keyup(name) ⇒ Object
Release a key.
- #mouseclick ⇒ Object
- #mousedown ⇒ Object
- #mousemove ⇒ Object
- #mouseup ⇒ Object
- #open_display ⇒ Object
- #root_window ⇒ Object
- #root_window_children ⇒ Object
- #root_window_descendants ⇒ Object
- #root_window_id ⇒ Object
- #start ⇒ Object
- #stop ⇒ Object
- #sync ⇒ Object
-
#type_word(word) ⇒ Object
Type a word.
- #window_children(window_id) ⇒ Object
- #window_children_ids ⇒ Object
- #window_descendants(window_id) ⇒ Object
Constructor Details
#initialize ⇒ Object
Instance Method Details
#close_display ⇒ Object
#get_window ⇒ Object
#get_window_name ⇒ Object
#key(name, time = 0.01) ⇒ Object
Press and release a key
54 55 56 57 58 59 |
# File 'lib/x11_client.rb', line 54 def key(name, time = 0.01) keypdown(name) sleep(time) keyup(name) self end |
#key2sym(key) ⇒ Object
Convert X11 key name to symbol (integer)
35 36 37 |
# File 'lib/x11_client.rb', line 35 def key2sym(key) KEYSYM[key] or raise ArgumentError, "Can't convert #{key} key to X11 sym" end |
#keyaction ⇒ Object
#keypdown(name) ⇒ Object
Press a key
41 42 43 |
# File 'lib/x11_client.rb', line 41 def keypdown(name) keyaction(key2sym(name), true) end |
#keyup(name) ⇒ Object
Release a key
47 48 49 |
# File 'lib/x11_client.rb', line 47 def keyup(name) keyaction(key2sym(name), false) end |
#mouseclick ⇒ Object
#mousedown ⇒ Object
#mousemove ⇒ Object
#mouseup ⇒ Object
#open_display ⇒ Object
#root_window ⇒ Object
22 23 24 |
# File 'lib/x11_client.rb', line 22 def root_window get_window(root_window_id) end |
#root_window_children ⇒ Object
26 27 28 |
# File 'lib/x11_client.rb', line 26 def root_window_children window_children(root_window_id) end |
#root_window_descendants ⇒ Object
30 31 32 |
# File 'lib/x11_client.rb', line 30 def root_window_descendants window_descendants(root_window_id) end |
#root_window_id ⇒ Object
#start ⇒ Object
#stop ⇒ Object
#sync ⇒ Object
#type_word(word) ⇒ Object
Type a word
63 64 65 66 67 68 |
# File 'lib/x11_client.rb', line 63 def type_word(word) word.each_char do |char| key("XK_#{char}") end self end |
#window_children(window_id) ⇒ Object
5 6 7 8 9 |
# File 'lib/x11_client.rb', line 5 def window_children(window_id) window_children_ids(window_id).map do |child_id| get_window(child_id) end.compact end |
#window_children_ids ⇒ Object
#window_descendants(window_id) ⇒ Object
11 12 13 14 15 16 17 18 19 20 |
# File 'lib/x11_client.rb', line 11 def window_descendants(window_id) windows = [] ids = [window_id] until ids.empty? window = get_window(ids.shift) windows << window ids += window_children_ids(window['id']) end windows end |