sig
exception Failure
module Keysym :
sig
type t = int
val _VoidSymbol : t
val _BackSpace : t
val _Tab : t
val _Linefeed : t
val _Clear : t
val _Return : t
val _Pause : t
val _Scroll_Lock : t
val _Sys_Req : t
val _Escape : t
val _Delete : t
val _Multi_key : t
val _SingleCandidate : t
val _MultipleCandidate : t
val _PreviousCandidate : t
val _Kanji : t
val _Muhenkan : t
val _Henkan_Mode : t
val _Henkan : t
val _Romaji : t
val _Hiragana : t
val _Katakana : t
val _Hiragana_Katakana : t
val _Zenkaku : t
val _Hankaku : t
val _Zenkaku_Hankaku : t
val _Touroku : t
val _Massyo : t
val _Kana_Lock : t
val _Kana_Shift : t
val _Eisu_Shift : t
val _Eisu_toggle : t
val _Zen_Koho : t
val _Mae_Koho : t
val _Home : t
val _Left : t
val _Up : t
val _Right : t
val _Down : t
val _Prior : t
val _Page_Up : t
val _Next : t
val _Page_Down : t
val _End : t
val _Begin : t
val _Select : t
val _Print : t
val _Execute : t
val _Insert : t
val _Undo : t
val _Redo : t
val _Menu : t
val _Find : t
val _Cancel : t
val _Help : t
val _Break : t
val _Mode_switch : t
val _script_switch : t
val _Num_Lock : t
val _KP_Space : t
val _KP_Tab : t
val _KP_Enter : t
val _KP_F1 : t
val _KP_F2 : t
val _KP_F3 : t
val _KP_F4 : t
val _KP_Home : t
val _KP_Left : t
val _KP_Up : t
val _KP_Right : t
val _KP_Down : t
val _KP_Prior : t
val _KP_Page_Up : t
val _KP_Next : t
val _KP_Page_Down : t
val _KP_End : t
val _KP_Begin : t
val _KP_Insert : t
val _KP_Delete : t
val _KP_Equal : t
val _KP_Multiply : t
val _KP_Add : t
val _KP_Separator : t
val _KP_Subtract : t
val _KP_Decimal : t
val _KP_Divide : t
val _KP_0 : t
val _KP_1 : t
val _KP_2 : t
val _KP_3 : t
val _KP_4 : t
val _KP_5 : t
val _KP_6 : t
val _KP_7 : t
val _KP_8 : t
val _KP_9 : t
val _F1 : t
val _F2 : t
val _F3 : t
val _F4 : t
val _F5 : t
val _F6 : t
val _F7 : t
val _F8 : t
val _F9 : t
val _F10 : t
val _F11 : t
val _L1 : t
val _F12 : t
val _L2 : t
val _F13 : t
val _L3 : t
val _F14 : t
val _L4 : t
val _F15 : t
val _L5 : t
val _F16 : t
val _L6 : t
val _F17 : t
val _L7 : t
val _F18 : t
val _L8 : t
val _F19 : t
val _L9 : t
val _F20 : t
val _L10 : t
val _F21 : t
val _R1 : t
val _F22 : t
val _R2 : t
val _F23 : t
val _R3 : t
val _F24 : t
val _R4 : t
val _F25 : t
val _R5 : t
val _F26 : t
val _R6 : t
val _F27 : t
val _R7 : t
val _F28 : t
val _R8 : t
val _F29 : t
val _R9 : t
val _F30 : t
val _R10 : t
val _F31 : t
val _R11 : t
val _F32 : t
val _R12 : t
val _F33 : t
val _R13 : t
val _F34 : t
val _R14 : t
val _F35 : t
val _R15 : t
val _Shift_L : t
val _Shift_R : t
val _Control_L : t
val _Control_R : t
val _Caps_Lock : t
val _Shift_Lock : t
val _Meta_L : t
val _Meta_R : t
val _Alt_L : t
val _Alt_R : t
val _Super_L : t
val _Super_R : t
val _Hyper_L : t
val _Hyper_R : t
val _ISO_Lock : t
val _ISO_Level2_Latch : t
val _ISO_Level3_Shift : t
val _ISO_Level3_Latch : t
val _ISO_Level3_Lock : t
val _ISO_Group_Shift : t
val _ISO_Group_Latch : t
val _ISO_Group_Lock : t
val _ISO_Next_Group : t
val _ISO_Next_Group_Lock : t
val _ISO_Prev_Group : t
val _ISO_Prev_Group_Lock : t
val _ISO_First_Group : t
val _ISO_First_Group_Lock : t
val _ISO_Last_Group : t
val _ISO_Last_Group_Lock : t
val _ISO_Left_Tab : t
val _ISO_Move_Line_Up : t
val _ISO_Move_Line_Down : t
val _ISO_Partial_Line_Up : t
val _ISO_Partial_Line_Down : t
val _ISO_Partial_Space_Left : t
val _ISO_Partial_Space_Right : t
val _ISO_Set_Margin_Left : t
val _ISO_Set_Margin_Right : t
val _ISO_Release_Margin_Left : t
val _ISO_Release_Margin_Right : t
val _ISO_Release_Both_Margins : t
val _ISO_Fast_Cursor_Left : t
val _ISO_Fast_Cursor_Right : t
val _ISO_Fast_Cursor_Up : t
val _ISO_Fast_Cursor_Down : t
val _ISO_Continuous_Underline : t
val _ISO_Discontinuous_Underline : t
val _ISO_Emphasize : t
val _ISO_Center_Object : t
val _ISO_Enter : t
val _dead_grave : t
val _dead_acute : t
val _dead_circumflex : t
val _dead_tilde : t
val _dead_macron : t
val _dead_breve : t
val _dead_abovedot : t
val _dead_diaeresis : t
val _dead_abovering : t
val _dead_doubleacute : t
val _dead_caron : t
val _dead_cedilla : t
val _dead_ogonek : t
val _dead_iota : t
val _dead_voiced_sound : t
val _dead_semivoiced_sound : t
val _dead_belowdot : t
val _First_Virtual_Screen : t
val _Prev_Virtual_Screen : t
val _Next_Virtual_Screen : t
val _Last_Virtual_Screen : t
val _Terminate_Server : t
val _AccessX_Enable : t
val _AccessX_Feedback_Enable : t
val _RepeatKeys_Enable : t
val _SlowKeys_Enable : t
val _BounceKeys_Enable : t
val _StickyKeys_Enable : t
val _MouseKeys_Enable : t
val _MouseKeys_Accel_Enable : t
val _Overlay1_Enable : t
val _Overlay2_Enable : t
val _AudibleBell_Enable : t
val _Pointer_Left : t
val _Pointer_Right : t
val _Pointer_Up : t
val _Pointer_Down : t
val _Pointer_UpLeft : t
val _Pointer_UpRight : t
val _Pointer_DownLeft : t
val _Pointer_DownRight : t
val _Pointer_Button_Dflt : t
val _Pointer_Button1 : t
val _Pointer_Button2 : t
val _Pointer_Button3 : t
val _Pointer_Button4 : t
val _Pointer_Button5 : t
val _Pointer_DblClick_Dflt : t
val _Pointer_DblClick1 : t
val _Pointer_DblClick2 : t
val _Pointer_DblClick3 : t
val _Pointer_DblClick4 : t
val _Pointer_DblClick5 : t
val _Pointer_Drag_Dflt : t
val _Pointer_Drag1 : t
val _Pointer_Drag2 : t
val _Pointer_Drag3 : t
val _Pointer_Drag4 : t
val _Pointer_Drag5 : t
val _Pointer_EnableKeys : t
val _Pointer_Accelerate : t
val _Pointer_DfltBtnNext : t
val _Pointer_DfltBtnPrev : t
val _3270_Duplicate : t
val _3270_FieldMark : t
val _3270_Right2 : t
val _3270_Left2 : t
val _3270_BackTab : t
val _3270_EraseEOF : t
val _3270_EraseInput : t
val _3270_Reset : t
val _3270_Quit : t
val _3270_PA1 : t
val _3270_PA2 : t
val _3270_PA3 : t
val _3270_Test : t
val _3270_Attn : t
val _3270_CursorBlink : t
val _3270_AltCursor : t
val _3270_KeyClick : t
val _3270_Jump : t
val _3270_Ident : t
val _3270_Rule : t
val _3270_Copy : t
val _3270_Play : t
val _3270_Setup : t
val _3270_Record : t
val _3270_ChangeScreen : t
val _3270_DeleteWord : t
val _3270_ExSelect : t
val _3270_CursorSelect : t
val _3270_PrintScreen : t
val _3270_Enter : t
val _space : t
val _exclam : t
val _quotedbl : t
val _numbersign : t
val _dollar : t
val _percent : t
val _ampersand : t
val _apostrophe : t
val _quoteright : t
val _parenleft : t
val _parenright : t
val _asterisk : t
val _plus : t
val _comma : t
val _minus : t
val _period : t
val _slash : t
val _0 : t
val _1 : t
val _2 : t
val _3 : t
val _4 : t
val _5 : t
val _6 : t
val _7 : t
val _8 : t
val _9 : t
val _colon : t
val _semicolon : t
val _less : t
val _equal : t
val _greater : t
val _question : t
val _at : t
val _A : t
val _B : t
val _C : t
val _D : t
val _E : t
val _F : t
val _G : t
val _H : t
val _I : t
val _J : t
val _K : t
val _L : t
val _M : t
val _N : t
val _O : t
val _P : t
val _Q : t
val _R : t
val _S : t
val _T : t
val _U : t
val _V : t
val _W : t
val _X : t
val _Y : t
val _Z : t
val _bracketleft : t
val _backslash : t
val _bracketright : t
val _asciicircum : t
val _underscore : t
val _grave : t
val _quoteleft : t
val _a : t
val _b : t
val _c : t
val _d : t
val _e : t
val _f : t
val _g : t
val _h : t
val _i : t
val _j : t
val _k : t
val _l : t
val _m : t
val _n : t
val _o : t
val _p : t
val _q : t
val _r : t
val _s : t
val _t : t
val _u : t
val _v : t
val _w : t
val _x : t
val _y : t
val _z : t
val _braceleft : t
val _bar : t
val _braceright : t
val _asciitilde : t
val _nobreakspace : t
val _exclamdown : t
val _cent : t
val _sterling : t
val _currency : t
val _yen : t
val _brokenbar : t
val _section : t
val _diaeresis : t
val _copyright : t
val _ordfeminine : t
val _guillemotleft : t
val _notsign : t
val _hyphen : t
val _registered : t
val _macron : t
val _degree : t
val _plusminus : t
val _twosuperior : t
val _threesuperior : t
val _acute : t
val _mu : t
val _paragraph : t
val _periodcentered : t
val _cedilla : t
val _onesuperior : t
val _masculine : t
val _guillemotright : t
val _onequarter : t
val _onehalf : t
val _threequarters : t
val _questiondown : t
val _Agrave : t
val _Aacute : t
val _Acircumflex : t
val _Atilde : t
val _Adiaeresis : t
val _Aring : t
val _AE : t
val _Ccedilla : t
val _Egrave : t
val _Eacute : t
val _Ecircumflex : t
val _Ediaeresis : t
val _Igrave : t
val _Iacute : t
val _Icircumflex : t
val _Idiaeresis : t
val _ETH : t
val _Eth : t
val _Ntilde : t
val _Ograve : t
val _Oacute : t
val _Ocircumflex : t
val _Otilde : t
val _Odiaeresis : t
val _multiply : t
val _Ooblique : t
val _Ugrave : t
val _Uacute : t
val _Ucircumflex : t
val _Udiaeresis : t
val _Yacute : t
val _THORN : t
val _Thorn : t
val _ssharp : t
val _agrave : t
val _aacute : t
val _acircumflex : t
val _atilde : t
val _adiaeresis : t
val _aring : t
val _ae : t
val _ccedilla : t
val _egrave : t
val _eacute : t
val _ecircumflex : t
val _ediaeresis : t
val _igrave : t
val _iacute : t
val _icircumflex : t
val _idiaeresis : t
val _eth : t
val _ntilde : t
val _ograve : t
val _oacute : t
val _ocircumflex : t
val _otilde : t
val _odiaeresis : t
val _division : t
val _oslash : t
val _ugrave : t
val _uacute : t
val _ucircumflex : t
val _udiaeresis : t
val _yacute : t
val _thorn : t
val _ydiaeresis : t
val _Aogonek : t
val _breve : t
val _Lstroke : t
val _Lcaron : t
val _Sacute : t
val _Scaron : t
val _Scedilla : t
val _Tcaron : t
val _Zacute : t
val _Zcaron : t
val _Zabovedot : t
val _aogonek : t
val _ogonek : t
val _lstroke : t
val _lcaron : t
val _sacute : t
val _caron : t
val _scaron : t
val _scedilla : t
val _tcaron : t
val _zacute : t
val _doubleacute : t
val _zcaron : t
val _zabovedot : t
val _Racute : t
val _Abreve : t
val _Lacute : t
val _Cacute : t
val _Ccaron : t
val _Eogonek : t
val _Ecaron : t
val _Dcaron : t
val _Dstroke : t
val _Nacute : t
val _Ncaron : t
val _Odoubleacute : t
val _Rcaron : t
val _Uring : t
val _Udoubleacute : t
val _Tcedilla : t
val _racute : t
val _abreve : t
val _lacute : t
val _cacute : t
val _ccaron : t
val _eogonek : t
val _ecaron : t
val _dcaron : t
val _dstroke : t
val _nacute : t
val _ncaron : t
val _odoubleacute : t
val _udoubleacute : t
val _rcaron : t
val _uring : t
val _tcedilla : t
val _abovedot : t
val _Hstroke : t
val _Hcircumflex : t
val _Iabovedot : t
val _Gbreve : t
val _Jcircumflex : t
val _hstroke : t
val _hcircumflex : t
val _idotless : t
val _gbreve : t
val _jcircumflex : t
val _Cabovedot : t
val _Ccircumflex : t
val _Gabovedot : t
val _Gcircumflex : t
val _Ubreve : t
val _Scircumflex : t
val _cabovedot : t
val _ccircumflex : t
val _gabovedot : t
val _gcircumflex : t
val _ubreve : t
val _scircumflex : t
val _kra : t
val _kappa : t
val _Rcedilla : t
val _Itilde : t
val _Lcedilla : t
val _Emacron : t
val _Gcedilla : t
val _Tslash : t
val _rcedilla : t
val _itilde : t
val _lcedilla : t
val _emacron : t
val _gcedilla : t
val _tslash : t
val _ENG : t
val _eng : t
val _Amacron : t
val _Iogonek : t
val _Eabovedot : t
val _Imacron : t
val _Ncedilla : t
val _Omacron : t
val _Kcedilla : t
val _Uogonek : t
val _Utilde : t
val _Umacron : t
val _amacron : t
val _iogonek : t
val _eabovedot : t
val _imacron : t
val _ncedilla : t
val _omacron : t
val _kcedilla : t
val _uogonek : t
val _utilde : t
val _umacron : t
val _overline : t
val _kana_fullstop : t
val _kana_openingbracket : t
val _kana_closingbracket : t
val _kana_comma : t
val _kana_conjunctive : t
val _kana_middledot : t
val _kana_WO : t
val _kana_a : t
val _kana_i : t
val _kana_u : t
val _kana_e : t
val _kana_o : t
val _kana_ya : t
val _kana_yu : t
val _kana_yo : t
val _kana_tsu : t
val _kana_tu : t
val _prolongedsound : t
val _kana_A : t
val _kana_I : t
val _kana_U : t
val _kana_E : t
val _kana_O : t
val _kana_KA : t
val _kana_KI : t
val _kana_KU : t
val _kana_KE : t
val _kana_KO : t
val _kana_SA : t
val _kana_SHI : t
val _kana_SU : t
val _kana_SE : t
val _kana_SO : t
val _kana_TA : t
val _kana_CHI : t
val _kana_TI : t
val _kana_TSU : t
val _kana_TU : t
val _kana_TE : t
val _kana_TO : t
val _kana_NA : t
val _kana_NI : t
val _kana_NU : t
val _kana_NE : t
val _kana_NO : t
val _kana_HA : t
val _kana_HI : t
val _kana_FU : t
val _kana_HU : t
val _kana_HE : t
val _kana_HO : t
val _kana_MA : t
val _kana_MI : t
val _kana_MU : t
val _kana_ME : t
val _kana_MO : t
val _kana_YA : t
val _kana_YU : t
val _kana_YO : t
val _kana_RA : t
val _kana_RI : t
val _kana_RU : t
val _kana_RE : t
val _kana_RO : t
val _kana_WA : t
val _kana_N : t
val _voicedsound : t
val _semivoicedsound : t
val _kana_switch : t
val _Arabic_comma : t
val _Arabic_semicolon : t
val _Arabic_question_mark : t
val _Arabic_hamza : t
val _Arabic_maddaonalef : t
val _Arabic_hamzaonalef : t
val _Arabic_hamzaonwaw : t
val _Arabic_hamzaunderalef : t
val _Arabic_hamzaonyeh : t
val _Arabic_alef : t
val _Arabic_beh : t
val _Arabic_tehmarbuta : t
val _Arabic_teh : t
val _Arabic_theh : t
val _Arabic_jeem : t
val _Arabic_hah : t
val _Arabic_khah : t
val _Arabic_dal : t
val _Arabic_thal : t
val _Arabic_ra : t
val _Arabic_zain : t
val _Arabic_seen : t
val _Arabic_sheen : t
val _Arabic_sad : t
val _Arabic_dad : t
val _Arabic_tah : t
val _Arabic_zah : t
val _Arabic_ain : t
val _Arabic_ghain : t
val _Arabic_tatweel : t
val _Arabic_feh : t
val _Arabic_qaf : t
val _Arabic_kaf : t
val _Arabic_lam : t
val _Arabic_meem : t
val _Arabic_noon : t
val _Arabic_ha : t
val _Arabic_heh : t
val _Arabic_waw : t
val _Arabic_alefmaksura : t
val _Arabic_yeh : t
val _Arabic_fathatan : t
val _Arabic_dammatan : t
val _Arabic_kasratan : t
val _Arabic_fatha : t
val _Arabic_damma : t
val _Arabic_kasra : t
val _Arabic_shadda : t
val _Arabic_sukun : t
val _Arabic_switch : t
val _Serbian_dje : t
val _Macedonia_gje : t
val _Cyrillic_io : t
val _Ukrainian_ie : t
val _Ukranian_je : t
val _Macedonia_dse : t
val _Ukrainian_i : t
val _Ukranian_i : t
val _Ukrainian_yi : t
val _Ukranian_yi : t
val _Cyrillic_je : t
val _Serbian_je : t
val _Cyrillic_lje : t
val _Serbian_lje : t
val _Cyrillic_nje : t
val _Serbian_nje : t
val _Serbian_tshe : t
val _Macedonia_kje : t
val _Byelorussian_shortu : t
val _Cyrillic_dzhe : t
val _Serbian_dze : t
val _numerosign : t
val _Serbian_DJE : t
val _Macedonia_GJE : t
val _Cyrillic_IO : t
val _Ukrainian_IE : t
val _Ukranian_JE : t
val _Macedonia_DSE : t
val _Ukrainian_I : t
val _Ukranian_I : t
val _Ukrainian_YI : t
val _Ukranian_YI : t
val _Cyrillic_JE : t
val _Serbian_JE : t
val _Cyrillic_LJE : t
val _Serbian_LJE : t
val _Cyrillic_NJE : t
val _Serbian_NJE : t
val _Serbian_TSHE : t
val _Macedonia_KJE : t
val _Byelorussian_SHORTU : t
val _Cyrillic_DZHE : t
val _Serbian_DZE : t
val _Cyrillic_yu : t
val _Cyrillic_a : t
val _Cyrillic_be : t
val _Cyrillic_tse : t
val _Cyrillic_de : t
val _Cyrillic_ie : t
val _Cyrillic_ef : t
val _Cyrillic_ghe : t
val _Cyrillic_ha : t
val _Cyrillic_i : t
val _Cyrillic_shorti : t
val _Cyrillic_ka : t
val _Cyrillic_el : t
val _Cyrillic_em : t
val _Cyrillic_en : t
val _Cyrillic_o : t
val _Cyrillic_pe : t
val _Cyrillic_ya : t
val _Cyrillic_er : t
val _Cyrillic_es : t
val _Cyrillic_te : t
val _Cyrillic_u : t
val _Cyrillic_zhe : t
val _Cyrillic_ve : t
val _Cyrillic_softsign : t
val _Cyrillic_yeru : t
val _Cyrillic_ze : t
val _Cyrillic_sha : t
val _Cyrillic_e : t
val _Cyrillic_shcha : t
val _Cyrillic_che : t
val _Cyrillic_hardsign : t
val _Cyrillic_YU : t
val _Cyrillic_A : t
val _Cyrillic_BE : t
val _Cyrillic_TSE : t
val _Cyrillic_DE : t
val _Cyrillic_IE : t
val _Cyrillic_EF : t
val _Cyrillic_GHE : t
val _Cyrillic_HA : t
val _Cyrillic_I : t
val _Cyrillic_SHORTI : t
val _Cyrillic_KA : t
val _Cyrillic_EL : t
val _Cyrillic_EM : t
val _Cyrillic_EN : t
val _Cyrillic_O : t
val _Cyrillic_PE : t
val _Cyrillic_YA : t
val _Cyrillic_ER : t
val _Cyrillic_ES : t
val _Cyrillic_TE : t
val _Cyrillic_U : t
val _Cyrillic_ZHE : t
val _Cyrillic_VE : t
val _Cyrillic_SOFTSIGN : t
val _Cyrillic_YERU : t
val _Cyrillic_ZE : t
val _Cyrillic_SHA : t
val _Cyrillic_E : t
val _Cyrillic_SHCHA : t
val _Cyrillic_CHE : t
val _Cyrillic_HARDSIGN : t
val _Greek_ALPHAaccent : t
val _Greek_EPSILONaccent : t
val _Greek_ETAaccent : t
val _Greek_IOTAaccent : t
val _Greek_IOTAdiaeresis : t
val _Greek_OMICRONaccent : t
val _Greek_UPSILONaccent : t
val _Greek_UPSILONdieresis : t
val _Greek_OMEGAaccent : t
val _Greek_accentdieresis : t
val _Greek_horizbar : t
val _Greek_alphaaccent : t
val _Greek_epsilonaccent : t
val _Greek_etaaccent : t
val _Greek_iotaaccent : t
val _Greek_iotadieresis : t
val _Greek_iotaaccentdieresis : t
val _Greek_omicronaccent : t
val _Greek_upsilonaccent : t
val _Greek_upsilondieresis : t
val _Greek_upsilonaccentdieresis : t
val _Greek_omegaaccent : t
val _Greek_ALPHA : t
val _Greek_BETA : t
val _Greek_GAMMA : t
val _Greek_DELTA : t
val _Greek_EPSILON : t
val _Greek_ZETA : t
val _Greek_ETA : t
val _Greek_THETA : t
val _Greek_IOTA : t
val _Greek_KAPPA : t
val _Greek_LAMDA : t
val _Greek_LAMBDA : t
val _Greek_MU : t
val _Greek_NU : t
val _Greek_XI : t
val _Greek_OMICRON : t
val _Greek_PI : t
val _Greek_RHO : t
val _Greek_SIGMA : t
val _Greek_TAU : t
val _Greek_UPSILON : t
val _Greek_PHI : t
val _Greek_CHI : t
val _Greek_PSI : t
val _Greek_OMEGA : t
val _Greek_alpha : t
val _Greek_beta : t
val _Greek_gamma : t
val _Greek_delta : t
val _Greek_epsilon : t
val _Greek_zeta : t
val _Greek_eta : t
val _Greek_theta : t
val _Greek_iota : t
val _Greek_kappa : t
val _Greek_lamda : t
val _Greek_lambda : t
val _Greek_mu : t
val _Greek_nu : t
val _Greek_xi : t
val _Greek_omicron : t
val _Greek_pi : t
val _Greek_rho : t
val _Greek_sigma : t
val _Greek_finalsmallsigma : t
val _Greek_tau : t
val _Greek_upsilon : t
val _Greek_phi : t
val _Greek_chi : t
val _Greek_psi : t
val _Greek_omega : t
val _Greek_switch : t
val _leftradical : t
val _topleftradical : t
val _horizconnector : t
val _topintegral : t
val _botintegral : t
val _vertconnector : t
val _topleftsqbracket : t
val _botleftsqbracket : t
val _toprightsqbracket : t
val _botrightsqbracket : t
val _topleftparens : t
val _botleftparens : t
val _toprightparens : t
val _botrightparens : t
val _leftmiddlecurlybrace : t
val _rightmiddlecurlybrace : t
val _topleftsummation : t
val _botleftsummation : t
val _topvertsummationconnector : t
val _botvertsummationconnector : t
val _toprightsummation : t
val _botrightsummation : t
val _rightmiddlesummation : t
val _lessthanequal : t
val _notequal : t
val _greaterthanequal : t
val _integral : t
val _therefore : t
val _variation : t
val _infinity : t
val _nabla : t
val _approximate : t
val _similarequal : t
val _ifonlyif : t
val _implies : t
val _identical : t
val _radical : t
val _includedin : t
val _includes : t
val _intersection : t
val _union : t
val _logicaland : t
val _logicalor : t
val _partialderivative : t
val _function : t
val _leftarrow : t
val _uparrow : t
val _rightarrow : t
val _downarrow : t
val _blank : t
val _soliddiamond : t
val _checkerboard : t
val _ht : t
val _ff : t
val _cr : t
val _lf : t
val _nl : t
val _vt : t
val _lowrightcorner : t
val _uprightcorner : t
val _upleftcorner : t
val _lowleftcorner : t
val _crossinglines : t
val _horizlinescan1 : t
val _horizlinescan3 : t
val _horizlinescan5 : t
val _horizlinescan7 : t
val _horizlinescan9 : t
val _leftt : t
val _rightt : t
val _bott : t
val _topt : t
val _vertbar : t
val _emspace : t
val _enspace : t
val _em3space : t
val _em4space : t
val _digitspace : t
val _punctspace : t
val _thinspace : t
val _hairspace : t
val _emdash : t
val _endash : t
val _signifblank : t
val _ellipsis : t
val _doubbaselinedot : t
val _onethird : t
val _twothirds : t
val _onefifth : t
val _twofifths : t
val _threefifths : t
val _fourfifths : t
val _onesixth : t
val _fivesixths : t
val _careof : t
val _figdash : t
val _leftanglebracket : t
val _decimalpoint : t
val _rightanglebracket : t
val _marker : t
val _oneeighth : t
val _threeeighths : t
val _fiveeighths : t
val _seveneighths : t
val _trademark : t
val _signaturemark : t
val _trademarkincircle : t
val _leftopentriangle : t
val _rightopentriangle : t
val _emopencircle : t
val _emopenrectangle : t
val _leftsinglequotemark : t
val _rightsinglequotemark : t
val _leftdoublequotemark : t
val _rightdoublequotemark : t
val _prescription : t
val _minutes : t
val _seconds : t
val _latincross : t
val _hexagram : t
val _filledrectbullet : t
val _filledlefttribullet : t
val _filledrighttribullet : t
val _emfilledcircle : t
val _emfilledrect : t
val _enopencircbullet : t
val _enopensquarebullet : t
val _openrectbullet : t
val _opentribulletup : t
val _opentribulletdown : t
val _openstar : t
val _enfilledcircbullet : t
val _enfilledsqbullet : t
val _filledtribulletup : t
val _filledtribulletdown : t
val _leftpointer : t
val _rightpointer : t
val _club : t
val _diamond : t
val _heart : t
val _maltesecross : t
val _dagger : t
val _doubledagger : t
val _checkmark : t
val _ballotcross : t
val _musicalsharp : t
val _musicalflat : t
val _malesymbol : t
val _femalesymbol : t
val _telephone : t
val _telephonerecorder : t
val _phonographcopyright : t
val _caret : t
val _singlelowquotemark : t
val _doublelowquotemark : t
val _cursor : t
val _leftcaret : t
val _rightcaret : t
val _downcaret : t
val _upcaret : t
val _overbar : t
val _downtack : t
val _upshoe : t
val _downstile : t
val _underbar : t
val _jot : t
val _quad : t
val _uptack : t
val _circle : t
val _upstile : t
val _downshoe : t
val _rightshoe : t
val _leftshoe : t
val _lefttack : t
val _righttack : t
val _hebrew_doublelowline : t
val _hebrew_aleph : t
val _hebrew_bet : t
val _hebrew_beth : t
val _hebrew_gimel : t
val _hebrew_gimmel : t
val _hebrew_dalet : t
val _hebrew_daleth : t
val _hebrew_he : t
val _hebrew_waw : t
val _hebrew_zain : t
val _hebrew_zayin : t
val _hebrew_chet : t
val _hebrew_het : t
val _hebrew_tet : t
val _hebrew_teth : t
val _hebrew_yod : t
val _hebrew_finalkaph : t
val _hebrew_kaph : t
val _hebrew_lamed : t
val _hebrew_finalmem : t
val _hebrew_mem : t
val _hebrew_finalnun : t
val _hebrew_nun : t
val _hebrew_samech : t
val _hebrew_samekh : t
val _hebrew_ayin : t
val _hebrew_finalpe : t
val _hebrew_pe : t
val _hebrew_finalzade : t
val _hebrew_finalzadi : t
val _hebrew_zade : t
val _hebrew_zadi : t
val _hebrew_qoph : t
val _hebrew_kuf : t
val _hebrew_resh : t
val _hebrew_shin : t
val _hebrew_taw : t
val _hebrew_taf : t
val _Hebrew_switch : t
val _Thai_kokai : t
val _Thai_khokhai : t
val _Thai_khokhuat : t
val _Thai_khokhwai : t
val _Thai_khokhon : t
val _Thai_khorakhang : t
val _Thai_ngongu : t
val _Thai_chochan : t
val _Thai_choching : t
val _Thai_chochang : t
val _Thai_soso : t
val _Thai_chochoe : t
val _Thai_yoying : t
val _Thai_dochada : t
val _Thai_topatak : t
val _Thai_thothan : t
val _Thai_thonangmontho : t
val _Thai_thophuthao : t
val _Thai_nonen : t
val _Thai_dodek : t
val _Thai_totao : t
val _Thai_thothung : t
val _Thai_thothahan : t
val _Thai_thothong : t
val _Thai_nonu : t
val _Thai_bobaimai : t
val _Thai_popla : t
val _Thai_phophung : t
val _Thai_fofa : t
val _Thai_phophan : t
val _Thai_fofan : t
val _Thai_phosamphao : t
val _Thai_moma : t
val _Thai_yoyak : t
val _Thai_rorua : t
val _Thai_ru : t
val _Thai_loling : t
val _Thai_lu : t
val _Thai_wowaen : t
val _Thai_sosala : t
val _Thai_sorusi : t
val _Thai_sosua : t
val _Thai_hohip : t
val _Thai_lochula : t
val _Thai_oang : t
val _Thai_honokhuk : t
val _Thai_paiyannoi : t
val _Thai_saraa : t
val _Thai_maihanakat : t
val _Thai_saraaa : t
val _Thai_saraam : t
val _Thai_sarai : t
val _Thai_saraii : t
val _Thai_saraue : t
val _Thai_sarauee : t
val _Thai_sarau : t
val _Thai_sarauu : t
val _Thai_phinthu : t
val _Thai_maihanakat_maitho : t
val _Thai_baht : t
val _Thai_sarae : t
val _Thai_saraae : t
val _Thai_sarao : t
val _Thai_saraaimaimuan : t
val _Thai_saraaimaimalai : t
val _Thai_lakkhangyao : t
val _Thai_maiyamok : t
val _Thai_maitaikhu : t
val _Thai_maiek : t
val _Thai_maitho : t
val _Thai_maitri : t
val _Thai_maichattawa : t
val _Thai_thanthakhat : t
val _Thai_nikhahit : t
val _Thai_leksun : t
val _Thai_leknung : t
val _Thai_leksong : t
val _Thai_leksam : t
val _Thai_leksi : t
val _Thai_lekha : t
val _Thai_lekhok : t
val _Thai_lekchet : t
val _Thai_lekpaet : t
val _Thai_lekkao : t
val _Hangul : t
val _Hangul_Start : t
val _Hangul_End : t
val _Hangul_Hanja : t
val _Hangul_Jamo : t
val _Hangul_Romaja : t
val _Hangul_Codeinput : t
val _Hangul_Jeonja : t
val _Hangul_Banja : t
val _Hangul_PreHanja : t
val _Hangul_PostHanja : t
val _Hangul_SingleCandidate : t
val _Hangul_MultipleCandidate : t
val _Hangul_PreviousCandidate : t
val _Hangul_Special : t
val _Hangul_switch : t
val _Hangul_Kiyeog : t
val _Hangul_SsangKiyeog : t
val _Hangul_KiyeogSios : t
val _Hangul_Nieun : t
val _Hangul_NieunJieuj : t
val _Hangul_NieunHieuh : t
val _Hangul_Dikeud : t
val _Hangul_SsangDikeud : t
val _Hangul_Rieul : t
val _Hangul_RieulKiyeog : t
val _Hangul_RieulMieum : t
val _Hangul_RieulPieub : t
val _Hangul_RieulSios : t
val _Hangul_RieulTieut : t
val _Hangul_RieulPhieuf : t
val _Hangul_RieulHieuh : t
val _Hangul_Mieum : t
val _Hangul_Pieub : t
val _Hangul_SsangPieub : t
val _Hangul_PieubSios : t
val _Hangul_Sios : t
val _Hangul_SsangSios : t
val _Hangul_Ieung : t
val _Hangul_Jieuj : t
val _Hangul_SsangJieuj : t
val _Hangul_Cieuc : t
val _Hangul_Khieuq : t
val _Hangul_Tieut : t
val _Hangul_Phieuf : t
val _Hangul_Hieuh : t
val _Hangul_A : t
val _Hangul_AE : t
val _Hangul_YA : t
val _Hangul_YAE : t
val _Hangul_EO : t
val _Hangul_E : t
val _Hangul_YEO : t
val _Hangul_YE : t
val _Hangul_O : t
val _Hangul_WA : t
val _Hangul_WAE : t
val _Hangul_OE : t
val _Hangul_YO : t
val _Hangul_U : t
val _Hangul_WEO : t
val _Hangul_WE : t
val _Hangul_WI : t
val _Hangul_YU : t
val _Hangul_EU : t
val _Hangul_YI : t
val _Hangul_I : t
val _Hangul_J_Kiyeog : t
val _Hangul_J_SsangKiyeog : t
val _Hangul_J_KiyeogSios : t
val _Hangul_J_Nieun : t
val _Hangul_J_NieunJieuj : t
val _Hangul_J_NieunHieuh : t
val _Hangul_J_Dikeud : t
val _Hangul_J_Rieul : t
val _Hangul_J_RieulKiyeog : t
val _Hangul_J_RieulMieum : t
val _Hangul_J_RieulPieub : t
val _Hangul_J_RieulSios : t
val _Hangul_J_RieulTieut : t
val _Hangul_J_RieulPhieuf : t
val _Hangul_J_RieulHieuh : t
val _Hangul_J_Mieum : t
val _Hangul_J_Pieub : t
val _Hangul_J_PieubSios : t
val _Hangul_J_Sios : t
val _Hangul_J_SsangSios : t
val _Hangul_J_Ieung : t
val _Hangul_J_Jieuj : t
val _Hangul_J_Cieuc : t
val _Hangul_J_Khieuq : t
val _Hangul_J_Tieut : t
val _Hangul_J_Phieuf : t
val _Hangul_J_Hieuh : t
val _Hangul_RieulYeorinHieuh : t
val _Hangul_SunkyeongeumMieum : t
val _Hangul_SunkyeongeumPieub : t
val _Hangul_PanSios : t
val _Hangul_KkogjiDalrinIeung : t
val _Hangul_SunkyeongeumPhieuf : t
val _Hangul_YeorinHieuh : t
val _Hangul_AraeA : t
val _Hangul_AraeAE : t
val _Hangul_J_PanSios : t
val _Hangul_J_KkogjiDalrinIeung : t
val _Hangul_J_YeorinHieuh : t
val _Korean_Won : t
end
type modifier = Shift | Caps | Ctrl | Alt | Mod2 | Mod3 | Logo | Mod5
type led = Led_Num | Led_Caps | Led_Scroll
type modifiers = { leds : Wlc.led list; mods : Wlc.modifier list; }
type key_state = Key_State_Released | Key_State_Pressed
type button_state = Button_State_Released | Button_State_Pressed
type scroll_axis_bit = Vertical | Horizontal
type touch_type =
Touch_Down
| Touch_Up
| Touch_Motion
| Touch_Frame
| Touch_Cancel
module Geometry :
sig
module Origin :
sig
type t = { x : int; y : int; }
val zero : Wlc.Geometry.Origin.t
val min :
Wlc.Geometry.Origin.t ->
Wlc.Geometry.Origin.t -> Wlc.Geometry.Origin.t
val max :
Wlc.Geometry.Origin.t ->
Wlc.Geometry.Origin.t -> Wlc.Geometry.Origin.t
end
module Size :
sig
type t = { w : int; h : int; }
val zero : Wlc.Geometry.Size.t
val min :
Wlc.Geometry.Size.t -> Wlc.Geometry.Size.t -> Wlc.Geometry.Size.t
val max :
Wlc.Geometry.Size.t -> Wlc.Geometry.Size.t -> Wlc.Geometry.Size.t
end
type t = {
origin : Wlc.Geometry.Origin.t;
size : Wlc.Geometry.Size.t;
}
val contains : Wlc.Geometry.t -> Wlc.Geometry.t -> bool
end
module Output :
sig
type t
val id : Wlc.Output.t -> int64
val all : unit -> Wlc.Output.t list
val get_focused : unit -> Wlc.Output.t
val get_sleep : Wlc.Output.t -> bool
val set_sleep : Wlc.Output.t -> bool -> unit
val get_resolution : Wlc.Output.t -> Wlc.Geometry.Size.t
val set_resolution : Wlc.Output.t -> Wlc.Geometry.Size.t -> unit
val get_mask : Wlc.Output.t -> int list
val set_mask : Wlc.Output.t -> int list -> unit
val get_pixels :
Wlc.Output.t ->
((int, Bigarray.int8_unsigned_elt, Bigarray.c_layout)
Bigarray.Array2.t -> unit) ->
unit
val focus : Wlc.Output.t option -> unit
end
module View :
sig
type state_bit = Maximized | Fullscreen | Resizing | Moving | Activated
type state = Wlc.View.state_bit list
type type_bit = Override_Redirect | Unmanaged | Splash | Modal | Popup
type typ = Wlc.View.type_bit list
type t
val id : Wlc.View.t -> int64
val all_of_output : Wlc.Output.t -> Wlc.View.t list
val set_all_of_output : Wlc.Output.t -> Wlc.View.t list -> bool
val focus : Wlc.View.t option -> unit
val close : Wlc.View.t -> unit
val get_output : Wlc.View.t -> Wlc.Output.t
val set_output : Wlc.View.t -> Wlc.Output.t -> unit
val send_to_back : Wlc.View.t -> unit
val send_below : Wlc.View.t -> Wlc.View.t -> unit
val bring_above : Wlc.View.t -> Wlc.View.t -> unit
val bring_to_front : Wlc.View.t -> unit
val get_mask : Wlc.View.t -> int list
val set_mask : Wlc.View.t -> int list -> unit
val get_geometry : Wlc.View.t -> Wlc.Geometry.t
val set_geometry : Wlc.View.t -> Wlc.Geometry.t -> unit
val get_type : Wlc.View.t -> Wlc.View.typ
val set_type : Wlc.View.t -> Wlc.View.type_bit -> bool -> unit
val get_state : Wlc.View.t -> Wlc.View.state
val set_state : Wlc.View.t -> Wlc.View.state_bit -> bool -> unit
val get_parent : Wlc.View.t -> Wlc.View.t option
val set_parent : Wlc.View.t -> Wlc.View.t option -> unit
val get_title : Wlc.View.t -> string
val set_title : Wlc.View.t -> string -> unit
val get_class : Wlc.View.t -> string option
val set_class : Wlc.View.t -> string option -> unit
val get_app_id : Wlc.View.t -> string option
val set_app_id : Wlc.View.t -> string option -> unit
end
module Interface :
sig
type output = {
created : Wlc.Output.t -> bool;
destroyed : Wlc.Output.t -> unit;
focus : Wlc.Output.t -> bool -> unit;
resolution :
Wlc.Output.t -> Wlc.Geometry.Size.t -> Wlc.Geometry.Size.t -> unit;
}
type view_request = {
geometry : Wlc.View.t -> Wlc.Geometry.t -> unit;
state : Wlc.View.t -> Wlc.View.state_bit -> bool -> unit;
}
type view = {
created : Wlc.View.t -> bool;
destroyed : Wlc.View.t -> unit;
focus : Wlc.View.t -> bool -> unit;
move_to_output : Wlc.View.t -> Wlc.Output.t -> Wlc.Output.t -> unit;
request : Wlc.Interface.view_request;
}
type keyboard = {
key :
Wlc.View.t option ->
int ->
Wlc.modifiers -> int -> Wlc.Keysym.t -> Wlc.key_state -> bool;
}
type pointer = {
button :
Wlc.View.t option ->
int -> Wlc.modifiers -> int -> Wlc.button_state -> bool;
scroll :
Wlc.View.t option ->
int ->
Wlc.modifiers -> Wlc.scroll_axis_bit list -> float * float -> bool;
motion : Wlc.View.t option -> int -> Wlc.Geometry.Origin.t -> bool;
}
type touch = {
touch :
Wlc.View.t option ->
int ->
Wlc.modifiers ->
Wlc.touch_type -> int -> Wlc.Geometry.Origin.t -> bool;
}
type compositor = { ready : unit -> unit; }
type t = {
output : Wlc.Interface.output;
view : Wlc.Interface.view;
keyboard : Wlc.Interface.keyboard;
pointer : Wlc.Interface.pointer;
touch : Wlc.Interface.touch;
compositor : Wlc.Interface.compositor;
}
val dummy : Wlc.Interface.t
end
val init : Wlc.Interface.t -> unit
val terminate : unit -> unit
val run : unit -> unit
val log : string -> unit
end