package vendor:x11/xlib

⌘K
Ctrl+K
or
/

    Index

    Types (374)
    Variables (0)

    This section is empty.

    Procedures (460)
    Procedure Groups (0)

    This section is empty.

    Types

    AccessControlMode ¶

    AccessControlMode :: enum i32 {
    	DisableAccess = 0, 
    	EnableAccess  = 1, 
    }
    Related Procedures With Parameters

    AllowEventsMode ¶

    AllowEventsMode :: enum i32 {
    	AsyncPointer   = 0, 
    	SyncPointer    = 1, 
    	ReplayPointer  = 2, 
    	AsyncKeyboard  = 3, 
    	SyncKeyboard   = 4, 
    	ReplayKeyboard = 5, 
    	AsyncBoth      = 6, 
    	SyncBoth       = 7, 
    }
    Related Procedures With Parameters

    ArcMode ¶

    ArcMode :: enum i32 {
    	ArcChord    = 0, 
    	ArcPieSlice = 1, 
    }
    Related Procedures With Parameters

    BackingStore ¶

    BackingStore :: enum i32 {
    	NotUseful  = 0, 
    	WhenMapped = 1, 
    	Always     = 2, 
    }
    Related Procedures With Returns

    ByteOrder ¶

    ByteOrder :: enum i32 {
    	LSBFirst = 0, 
    	MSBFirst = 1, 
    }
    Related Procedures With Returns

    CapStyle ¶

    CapStyle :: enum i32 {
    	CapNotLast    = 0, 
    	CapButt       = 1, 
    	CapRound      = 2, 
    	CapProjecting = 3, 
    }
    Related Procedures With Parameters

    CirculationDirection ¶

    CirculationDirection :: enum i32 {
    	RaiseLowest  = 0, 
    	LowerHighest = 1, 
    }
    Related Procedures With Parameters

    CirculationRequest ¶

    CirculationRequest :: enum i32 {
    	PlaceOnTop    = 0, 
    	PlaceOnBottom = 1, 
    }

    CloseMode ¶

    CloseMode :: enum i32 {
    	DestroyAll      = 0, 
    	RetainPermanent = 1, 
    	RetainTemporary = 2, 
    }
    Related Procedures With Parameters

    ColorFlags ¶

    ColorFlags :: bit_set[ColorFlagsBits; i32]

    ColorFlagsBits ¶

    ColorFlagsBits :: enum int {
    	DoRed   = 0, 
    	DoGreen = 1, 
    	DoBlue  = 2, 
    }

    ColorFormat ¶

    ColorFormat :: enum u32 {
    	XcmsUndefinedFormat = 0, 
    	XcmsCIEXYZFormat    = 1, 
    	XcmsCIEuvYFormat    = 2, 
    	XcmsCIExyYFormat    = 3, 
    	XcmsCIELabFormat    = 4, 
    	XcmsCIELuvFormat    = 5, 
    	XcmsTekHVCFormat    = 6, 
    	XcmsRGBFormat       = 2147483648, 
    	XcmsRGBiFormat      = 2147483649, 
    }

    Colormap ¶

    Colormap :: XID

    ColormapAlloc ¶

    ColormapAlloc :: enum i32 {
    	AllocNone = 0, 
    	AllocAll  = 1, 
    }
    Related Procedures With Parameters

    ColormapState ¶

    ColormapState :: enum i32 {
    	ColormapUninstalled = 0, 
    	ColormapInstalled   = 1, 
    }

    Connection ¶

    Connection :: enum u16 {
    	RR_Connected         = 0, 
    	RR_Disconnected      = 1, 
    	RR_UnknownConnection = 2, 
    }

    CoordMode ¶

    CoordMode :: enum i32 {
    	CoordModeOrigin   = 0, 
    	CoordModePrevious = 1, 
    }
    Related Procedures With Parameters

    Cursor ¶

    Cursor :: XID

    CursorShape ¶

    CursorShape :: enum u32 {
    	XC_X_cursor            = 0, 
    	XC_arrow               = 2, 
    	XC_based_arrow_down    = 4, 
    	XC_based_arrow_up      = 6, 
    	XC_boat                = 8, 
    	XC_bogosity            = 10, 
    	XC_bottom_left_corner  = 12, 
    	XC_bottom_right_corner = 14, 
    	XC_bottom_side         = 16, 
    	XC_bottom_tee          = 18, 
    	XC_box_spiral          = 20, 
    	XC_center_ptr          = 22, 
    	XC_circle              = 24, 
    	XC_clock               = 26, 
    	XC_coffee_mug          = 28, 
    	XC_cross               = 30, 
    	XC_cross_reverse       = 32, 
    	XC_crosshair           = 34, 
    	XC_diamond_cross       = 36, 
    	XC_dot                 = 38, 
    	XC_dotbox              = 40, 
    	XC_double_arrow        = 42, 
    	XC_draft_large         = 44, 
    	XC_draft_small         = 46, 
    	XC_draped_box          = 48, 
    	XC_exchange            = 50, 
    	XC_fleur               = 52, 
    	XC_gobbler             = 54, 
    	XC_gumby               = 56, 
    	XC_hand1               = 58, 
    	XC_hand2               = 60, 
    	XC_heart               = 62, 
    	XC_icon                = 64, 
    	XC_iron_cross          = 66, 
    	XC_left_ptr            = 68, 
    	XC_left_side           = 70, 
    	XC_left_tee            = 72, 
    	XC_leftbutton          = 74, 
    	XC_ll_angle            = 76, 
    	XC_lr_angle            = 78, 
    	XC_man                 = 80, 
    	XC_middlebutton        = 82, 
    	XC_mouse               = 84, 
    	XC_pencil              = 86, 
    	XC_pirate              = 88, 
    	XC_plus                = 90, 
    	XC_question_arrow      = 92, 
    	XC_right_ptr           = 94, 
    	XC_right_side          = 96, 
    	XC_right_tee           = 98, 
    	XC_rightbutton         = 100, 
    	XC_rtl_logo            = 102, 
    	XC_sailboat            = 104, 
    	XC_sb_down_arrow       = 106, 
    	XC_sb_h_double_arrow   = 108, 
    	XC_sb_left_arrow       = 110, 
    	XC_sb_right_arrow      = 112, 
    	XC_sb_up_arrow         = 114, 
    	XC_sb_v_double_arrow   = 116, 
    	XC_shuttle             = 118, 
    	XC_sizing              = 120, 
    	XC_spider              = 122, 
    	XC_spraycan            = 124, 
    	XC_star                = 126, 
    	XC_target              = 128, 
    	XC_tcross              = 130, 
    	XC_top_left_arrow      = 132, 
    	XC_top_left_corner     = 134, 
    	XC_top_right_corner    = 136, 
    	XC_top_side            = 138, 
    	XC_top_tee             = 140, 
    	XC_trek                = 142, 
    	XC_ul_angle            = 144, 
    	XC_umbrella            = 146, 
    	XC_ur_angle            = 148, 
    	XC_watch               = 150, 
    	XC_xterm               = 152, 
    	XC_num_glyphs          = 154, 
    }
    Related Procedures With Parameters

    Depth ¶

    Depth :: struct {
    	depth:    i32,
    	nvisuals: i32,
    	visuals:  ^Visual,
    }

    Display ¶

    Display :: struct {}
    Related Procedures With Parameters
    Related Procedures With Returns

    Drawable ¶

    Drawable :: XID

    EventMask ¶

    EventMask :: bit_set[EventMaskBits; int]

    EventMaskBits ¶

    EventMaskBits :: enum i32 {
    	KeyPress             = 0, 
    	KeyRelease           = 1, 
    	ButtonPress          = 2, 
    	ButtonRelease        = 3, 
    	EnterWindow          = 4, 
    	LeaveWindow          = 5, 
    	PointerMotion        = 6, 
    	PointerMotionHint    = 7, 
    	Button1Motion        = 8, 
    	Button2Motion        = 9, 
    	Button3Motion        = 10, 
    	Button4Motion        = 11, 
    	Button5Motion        = 12, 
    	ButtonMotion         = 13, 
    	KeymapState          = 14, 
    	Exposure             = 15, 
    	VisibilityChange     = 16, 
    	StructureNotify      = 17, 
    	ResizeRedirect       = 18, 
    	SubstructureNotify   = 19, 
    	SubstructureRedirect = 20, 
    	FocusChange          = 21, 
    	PropertyChange       = 22, 
    	ColormapChange       = 23, 
    	OwnerGrabButton      = 24, 
    }

    EventQueueMode ¶

    EventQueueMode :: enum i32 {
    	QueuedAlready      = 0, 
    	QueuedAfterReading = 1, 
    	QueuedAfterFlush   = 2, 
    }
    Related Procedures With Parameters

    EventType ¶

    EventType :: enum i32 {
    	KeyPress         = 2, 
    	KeyRelease       = 3, 
    	ButtonPress      = 4, 
    	ButtonRelease    = 5, 
    	MotionNotify     = 6, 
    	EnterNotify      = 7, 
    	LeaveNotify      = 8, 
    	FocusIn          = 9, 
    	FocusOut         = 10, 
    	KeymapNotify     = 11, 
    	Expose           = 12, 
    	GraphicsExpose   = 13, 
    	NoExpose         = 14, 
    	VisibilityNotify = 15, 
    	CreateNotify     = 16, 
    	DestroyNotify    = 17, 
    	UnmapNotify      = 18, 
    	MapNotify        = 19, 
    	MapRequest       = 20, 
    	ReparentNotify   = 21, 
    	ConfigureNotify  = 22, 
    	ConfigureRequest = 23, 
    	GravityNotify    = 24, 
    	ResizeRequest    = 25, 
    	CirculateNotify  = 26, 
    	CirculateRequest = 27, 
    	PropertyNotify   = 28, 
    	SelectionClear   = 29, 
    	SelectionRequest = 30, 
    	SelectionNotify  = 31, 
    	ColormapNotify   = 32, 
    	ClientMessage    = 33, 
    	MappingNotify    = 34, 
    	GenericEvent     = 35, 
    }
    Related Procedures With Parameters

    FillRule ¶

    FillRule :: enum i32 {
    	EvenOddRule = 0, 
    	WindingRule = 1, 
    }
    Related Procedures With Parameters

    FillStyle ¶

    FillStyle :: enum i32 {
    	FillSolid          = 0, 
    	FillTiled          = 1, 
    	FillStippled       = 2, 
    	FillOpaqueStippled = 3, 
    }
    Related Procedures With Parameters

    FocusRevert ¶

    FocusRevert :: enum i32 {
    	RevertToNone        = 0, 
    	RevertToPointerRoot = 1, 
    	RevertToParent      = 2, 
    }
    Related Procedures With Parameters

    FontDirection ¶

    FontDirection :: enum i32 {
    	FontLeftToRight = 0, 
    	FontRightToLeft = 1, 
    }
    Related Procedures With Parameters

    GCAttributeMask ¶

    GCAttributeMask :: bit_set[GCAttributeMaskBits; uint]

    GCAttributeMaskBits ¶

    GCAttributeMaskBits :: enum int {
    	GCFunction          = 0, 
    	GCPlaneMask         = 1, 
    	GCForeground        = 2, 
    	GCBackground        = 3, 
    	GCLineWidth         = 4, 
    	GCLineStyle         = 5, 
    	GCCapStyle          = 6, 
    	GCJoinStyle         = 7, 
    	GCFillStyle         = 8, 
    	GCFillRule          = 9, 
    	GCTile              = 10, 
    	GCStipple           = 11, 
    	GCTileStipXOrigin   = 12, 
    	GCTileStipYOrigin   = 13, 
    	GCFont              = 14, 
    	GCSubwindowMode     = 15, 
    	GCGraphicsExposures = 16, 
    	GCClipXOrigin       = 17, 
    	GCClipYOrigin       = 18, 
    	GCClipMask          = 19, 
    	GCDashOffset        = 20, 
    	GCDashList          = 21, 
    	GCArcMode           = 22, 
    }

    GCFunction ¶

    GCFunction :: enum i32 {
    	GXclear        = 0,  // 0
    	GXand          = 1,  // src & dst
    	GXandReverse   = 2,  // src & ~dst
    	GXcopy         = 3,  // src
    	GXandInverted  = 4,  // ~src & dst
    	GXnoop         = 5,  // dst
    	GXxor          = 6,  // src ~ dst
    	GXor           = 7,  // src | dst
    	GXnor          = 8,  // ~src & ~dst
    	GXequiv        = 9,  // ~src ~ dst
    	GXinvert       = 10, // ~dst
    	GXorReverse    = 11, // src | ~dst
    	GXcopyInverted = 12, // ~src
    	GXorInverted   = 13, // ~src | dst
    	GXnand         = 14, // ~src | ~dst
    	GXset          = 15, // 1
    }
    Related Procedures With Parameters

    GContext ¶

    GContext :: XID

    GrabMode ¶

    GrabMode :: enum i32 {
    	GrabModeSync  = 0, 
    	GrabModeAsync = 1, 
    }
    Related Procedures With Parameters

    Gravity ¶

    Gravity :: enum i32 {
    	ForgetGravity    = 0, 
    	UnmapGravity     = 0, 
    	NorthWestGravity = 1, 
    	NorthGravity     = 2, 
    	NorthEastGravity = 3, 
    	WestGravity      = 4, 
    	CenterGravity    = 5, 
    	EastGravity      = 6, 
    	SouthWestGravity = 7, 
    	SouthGravity     = 8, 
    	SouthEastGravity = 9, 
    	StaticGravity    = 10, 
    }
    Related Procedures With Parameters

    ImageFormat ¶

    ImageFormat :: enum i32 {
    	XYBitmap = 0, 
    	XYPixmap = 1, 
    	ZPixmap  = 2, 
    }
    Related Procedures With Parameters

    InputMask ¶

    InputMask :: bit_set[InputMaskBits; i32]

    InputMaskBits ¶

    InputMaskBits :: enum int {
    	ShiftMask   = 0, 
    	LockMask    = 1, 
    	ControlMask = 2, 
    	Mod1Mask    = 3, 
    	Mod2Mask    = 4, 
    	Mod3Mask    = 5, 
    	Mod4Mask    = 6, 
    	Mod5Mask    = 7, 
    	Button1Mask = 8, 
    	Button2Mask = 9, 
    	Button3Mask = 10, 
    	Button4Mask = 11, 
    	Button5Mask = 12, 
    	AnyModifier = 15, 
    }

    JoinStyle ¶

    JoinStyle :: enum i32 {
    	JoinMiter = 0, 
    	JoinRound = 1, 
    	JoinBevel = 2, 
    }
    Related Procedures With Parameters

    KeyCode ¶

    KeyCode :: u8

    KeyMask ¶

    KeyMask :: enum u32 {
    	ShiftMask   = 0, 
    	LockMask    = 1, 
    	ControlMask = 2, 
    	Mod1Mask    = 3, 
    	Mod2Mask    = 4, 
    	Mod3Mask    = 5, 
    	Mod4Mask    = 6, 
    	Mod5Mask    = 7, 
    }
    Related Procedures With Parameters

    KeySym ¶

    KeySym :: enum u32 {
    	XK_BackSpace                   = 65288,    // Back space, back char
    	XK_Tab                         = 65289, 
    	XK_Linefeed                    = 65290,    // Linefeed, LF
    	XK_Clear                       = 65291, 
    	XK_Return                      = 65293,    // Return, enter
    	XK_Pause                       = 65299,    // Pause, hold
    	XK_Scroll_Lock                 = 65300, 
    	XK_Sys_Req                     = 65301, 
    	XK_Escape                      = 65307, 
    	XK_Delete                      = 65535,    // Delete, rubout
    	XK_Multi_key                   = 65312,    // Multi-key character compose
    	XK_Codeinput                   = 65335, 
    	XK_SingleCandidate             = 65340, 
    	XK_MultipleCandidate           = 65341, 
    	XK_PreviousCandidate           = 65342, 
    	XK_Kanji                       = 65313,    // Kanji, Kanji convert
    	XK_Muhenkan                    = 65314,    // Cancel Conversion
    	XK_Henkan_Mode                 = 65315,    // Start/Stop Conversion
    	XK_Henkan                      = 65315,    // Alias for Henkan_Mode
    	XK_Romaji                      = 65316,    // to Romaji
    	XK_Hiragana                    = 65317,    // to Hiragana
    	XK_Katakana                    = 65318,    // to Katakana
    	XK_Hiragana_Katakana           = 65319,    // Hiragana/Katakana toggle
    	XK_Zenkaku                     = 65320,    // to Zenkaku
    	XK_Hankaku                     = 65321,    // to Hankaku
    	XK_Zenkaku_Hankaku             = 65322,    // Zenkaku/Hankaku toggle
    	XK_Touroku                     = 65323,    // Add to Dictionary
    	XK_Massyo                      = 65324,    // Delete from Dictionary
    	XK_Kana_Lock                   = 65325,    // Kana Lock
    	XK_Kana_Shift                  = 65326,    // Kana Shift
    	XK_Eisu_Shift                  = 65327,    // Alphanumeric Shift
    	XK_Eisu_toggle                 = 65328,    // Alphanumeric toggle
    	XK_Kanji_Bangou                = 65335,    // Codeinput
    	XK_Zen_Koho                    = 65341,    // Multiple/All Candidate(s)
    	XK_Mae_Koho                    = 65342,    // Previous Candidate
    	XK_Home                        = 65360, 
    	XK_Left                        = 65361,    // Move left, left arrow
    	XK_Up                          = 65362,    // Move up, up arrow
    	XK_Right                       = 65363,    // Move right, right arrow
    	XK_Down                        = 65364,    // Move down, down arrow
    	XK_Prior                       = 65365,    // Prior, previous
    	XK_Page_Up                     = 65365, 
    	XK_Next                        = 65366,    // Next
    	XK_Page_Down                   = 65366, 
    	XK_End                         = 65367,    // EOL
    	XK_Begin                       = 65368,    // BOL
    	XK_Select                      = 65376,    // Select, mark
    	XK_Print                       = 65377, 
    	XK_Execute                     = 65378,    // Execute, run, do
    	XK_Insert                      = 65379,    // Insert, insert here
    	XK_Undo                        = 65381, 
    	XK_Redo                        = 65382,    // Redo, again
    	XK_Menu                        = 65383, 
    	XK_Find                        = 65384,    // Find, search
    	XK_Cancel                      = 65385,    // Cancel, stop, abort, exit
    	XK_Help                        = 65386,    // Help
    	XK_Break                       = 65387, 
    	XK_Mode_switch                 = 65406,    // Character set switch
    	XK_script_switch               = 65406,    // Alias for mode_switch
    	XK_Num_Lock                    = 65407, 
    	XK_KP_Space                    = 65408,    // Space
    	XK_KP_Tab                      = 65417, 
    	XK_KP_Enter                    = 65421,    // Enter
    	XK_KP_F1                       = 65425,    // PF1, KP_A, ...
    	XK_KP_F2                       = 65426, 
    	XK_KP_F3                       = 65427, 
    	XK_KP_F4                       = 65428, 
    	XK_KP_Home                     = 65429, 
    	XK_KP_Left                     = 65430, 
    	XK_KP_Up                       = 65431, 
    	XK_KP_Right                    = 65432, 
    	XK_KP_Down                     = 65433, 
    	XK_KP_Prior                    = 65434, 
    	XK_KP_Page_Up                  = 65434, 
    	XK_KP_Next                     = 65435, 
    	XK_KP_Page_Down                = 65435, 
    	XK_KP_End                      = 65436, 
    	XK_KP_Begin                    = 65437, 
    	XK_KP_Insert                   = 65438, 
    	XK_KP_Delete                   = 65439, 
    	XK_KP_Equal                    = 65469,    // Equals
    	XK_KP_Multiply                 = 65450, 
    	XK_KP_Add                      = 65451, 
    	XK_KP_Separator                = 65452,    // Separator, often comma
    	XK_KP_Subtract                 = 65453, 
    	XK_KP_Decimal                  = 65454, 
    	XK_KP_Divide                   = 65455, 
    	XK_KP_0                        = 65456, 
    	XK_KP_1                        = 65457, 
    	XK_KP_2                        = 65458, 
    	XK_KP_3                        = 65459, 
    	XK_KP_4                        = 65460, 
    	XK_KP_5                        = 65461, 
    	XK_KP_6                        = 65462, 
    	XK_KP_7                        = 65463, 
    	XK_KP_8                        = 65464, 
    	XK_KP_9                        = 65465, 
    	XK_F1                          = 65470, 
    	XK_F2                          = 65471, 
    	XK_F3                          = 65472, 
    	XK_F4                          = 65473, 
    	XK_F5                          = 65474, 
    	XK_F6                          = 65475, 
    	XK_F7                          = 65476, 
    	XK_F8                          = 65477, 
    	XK_F9                          = 65478, 
    	XK_F10                         = 65479, 
    	XK_F11                         = 65480, 
    	XK_L1                          = 65480, 
    	XK_F12                         = 65481, 
    	XK_L2                          = 65481, 
    	XK_F13                         = 65482, 
    	XK_L3                          = 65482, 
    	XK_F14                         = 65483, 
    	XK_L4                          = 65483, 
    	XK_F15                         = 65484, 
    	XK_L5                          = 65484, 
    	XK_F16                         = 65485, 
    	XK_L6                          = 65485, 
    	XK_F17                         = 65486, 
    	XK_L7                          = 65486, 
    	XK_F18                         = 65487, 
    	XK_L8                          = 65487, 
    	XK_F19                         = 65488, 
    	XK_L9                          = 65488, 
    	XK_F20                         = 65489, 
    	XK_L10                         = 65489, 
    	XK_F21                         = 65490, 
    	XK_R1                          = 65490, 
    	XK_F22                         = 65491, 
    	XK_R2                          = 65491, 
    	XK_F23                         = 65492, 
    	XK_R3                          = 65492, 
    	XK_F24                         = 65493, 
    	XK_R4                          = 65493, 
    	XK_F25                         = 65494, 
    	XK_R5                          = 65494, 
    	XK_F26                         = 65495, 
    	XK_R6                          = 65495, 
    	XK_F27                         = 65496, 
    	XK_R7                          = 65496, 
    	XK_F28                         = 65497, 
    	XK_R8                          = 65497, 
    	XK_F29                         = 65498, 
    	XK_R9                          = 65498, 
    	XK_F30                         = 65499, 
    	XK_R10                         = 65499, 
    	XK_F31                         = 65500, 
    	XK_R11                         = 65500, 
    	XK_F32                         = 65501, 
    	XK_R12                         = 65501, 
    	XK_F33                         = 65502, 
    	XK_R13                         = 65502, 
    	XK_F34                         = 65503, 
    	XK_R14                         = 65503, 
    	XK_F35                         = 65504, 
    	XK_R15                         = 65504, 
    	XK_Shift_L                     = 65505,    // Left shift
    	XK_Shift_R                     = 65506,    // Right shift
    	XK_Control_L                   = 65507,    // Left control
    	XK_Control_R                   = 65508,    // Right control
    	XK_Caps_Lock                   = 65509,    // Caps lock
    	XK_Shift_Lock                  = 65510,    // Shift lock
    	XK_Meta_L                      = 65511,    // Left meta
    	XK_Meta_R                      = 65512,    // Right meta
    	XK_Alt_L                       = 65513,    // Left alt
    	XK_Alt_R                       = 65514,    // Right alt
    	XK_Super_L                     = 65515,    // Left super
    	XK_Super_R                     = 65516,    // Right super
    	XK_Hyper_L                     = 65517,    // Left hyper
    	XK_Hyper_R                     = 65518,    // Right hyper
    	XK_ISO_Lock                    = 65025, 
    	XK_ISO_Level2_Latch            = 65026, 
    	XK_ISO_Level3_Shift            = 65027, 
    	XK_ISO_Level3_Latch            = 65028, 
    	XK_ISO_Level3_Lock             = 65029, 
    	XK_ISO_Group_Shift             = 65406,    // Alias for mode_switch
    	XK_ISO_Group_Latch             = 65030, 
    	XK_ISO_Group_Lock              = 65031, 
    	XK_ISO_Next_Group              = 65032, 
    	XK_ISO_Next_Group_Lock         = 65033, 
    	XK_ISO_Prev_Group              = 65034, 
    	XK_ISO_Prev_Group_Lock         = 65035, 
    	XK_ISO_First_Group             = 65036, 
    	XK_ISO_First_Group_Lock        = 65037, 
    	XK_ISO_Last_Group              = 65038, 
    	XK_ISO_Last_Group_Lock         = 65039, 
    	XK_ISO_Left_Tab                = 65056, 
    	XK_ISO_Move_Line_Up            = 65057, 
    	XK_ISO_Move_Line_Down          = 65058, 
    	XK_ISO_Partial_Line_Up         = 65059, 
    	XK_ISO_Partial_Line_Down       = 65060, 
    	XK_ISO_Partial_Space_Left      = 65061, 
    	XK_ISO_Partial_Space_Right     = 65062, 
    	XK_ISO_Set_Margin_Left         = 65063, 
    	XK_ISO_Set_Margin_Right        = 65064, 
    	XK_ISO_Release_Margin_Left     = 65065, 
    	XK_ISO_Release_Margin_Right    = 65066, 
    	XK_ISO_Release_Both_Margins    = 65067, 
    	XK_ISO_Fast_Cursor_Left        = 65068, 
    	XK_ISO_Fast_Cursor_Right       = 65069, 
    	XK_ISO_Fast_Cursor_Up          = 65070, 
    	XK_ISO_Fast_Cursor_Down        = 65071, 
    	XK_ISO_Continuous_Underline    = 65072, 
    	XK_ISO_Discontinuous_Underline = 65073, 
    	XK_ISO_Emphasize               = 65074, 
    	XK_ISO_Center_Object           = 65075, 
    	XK_ISO_Enter                   = 65076, 
    	XK_dead_grave                  = 65104, 
    	XK_dead_acute                  = 65105, 
    	XK_dead_circumflex             = 65106, 
    	XK_dead_tilde                  = 65107, 
    	XK_dead_macron                 = 65108, 
    	XK_dead_breve                  = 65109, 
    	XK_dead_abovedot               = 65110, 
    	XK_dead_diaeresis              = 65111, 
    	XK_dead_abovering              = 65112, 
    	XK_dead_doubleacute            = 65113, 
    	XK_dead_caron                  = 65114, 
    	XK_dead_cedilla                = 65115, 
    	XK_dead_ogonek                 = 65116, 
    	XK_dead_iota                   = 65117, 
    	XK_dead_voiced_sound           = 65118, 
    	XK_dead_semivoiced_sound       = 65119, 
    	XK_dead_belowdot               = 65120, 
    	XK_dead_hook                   = 65121, 
    	XK_dead_horn                   = 65122, 
    	XK_First_Virtual_Screen        = 65232, 
    	XK_Prev_Virtual_Screen         = 65233, 
    	XK_Next_Virtual_Screen         = 65234, 
    	XK_Last_Virtual_Screen         = 65236, 
    	XK_Terminate_Server            = 65237, 
    	XK_AccessX_Enable              = 65136, 
    	XK_AccessX_Feedback_Enable     = 65137, 
    	XK_RepeatKeys_Enable           = 65138, 
    	XK_SlowKeys_Enable             = 65139, 
    	XK_BounceKeys_Enable           = 65140, 
    	XK_StickyKeys_Enable           = 65141, 
    	XK_MouseKeys_Enable            = 65142, 
    	XK_MouseKeys_Accel_Enable      = 65143, 
    	XK_Overlay1_Enable             = 65144, 
    	XK_Overlay2_Enable             = 65145, 
    	XK_AudibleBell_Enable          = 65146, 
    	XK_Pointer_Left                = 65248, 
    	XK_Pointer_Right               = 65249, 
    	XK_Pointer_Up                  = 65250, 
    	XK_Pointer_Down                = 65251, 
    	XK_Pointer_UpLeft              = 65252, 
    	XK_Pointer_UpRight             = 65253, 
    	XK_Pointer_DownLeft            = 65254, 
    	XK_Pointer_DownRight           = 65255, 
    	XK_Pointer_Button_Dflt         = 65256, 
    	XK_Pointer_Button1             = 65257, 
    	XK_Pointer_Button2             = 65258, 
    	XK_Pointer_Button3             = 65259, 
    	XK_Pointer_Button4             = 65260, 
    	XK_Pointer_Button5             = 65261, 
    	XK_Pointer_DblClick_Dflt       = 65262, 
    	XK_Pointer_DblClick1           = 65263, 
    	XK_Pointer_DblClick2           = 65264, 
    	XK_Pointer_DblClick3           = 65265, 
    	XK_Pointer_DblClick4           = 65266, 
    	XK_Pointer_DblClick5           = 65267, 
    	XK_Pointer_Drag_Dflt           = 65268, 
    	XK_Pointer_Drag1               = 65269, 
    	XK_Pointer_Drag2               = 65270, 
    	XK_Pointer_Drag3               = 65271, 
    	XK_Pointer_Drag4               = 65272, 
    	XK_Pointer_Drag5               = 65277, 
    	XK_Pointer_EnableKeys          = 65273, 
    	XK_Pointer_Accelerate          = 65274, 
    	XK_Pointer_DfltBtnNext         = 65275, 
    	XK_Pointer_DfltBtnPrev         = 65276, 
    	XK_3270_Duplicate              = 64769, 
    	XK_3270_FieldMark              = 64770, 
    	XK_3270_Right2                 = 64771, 
    	XK_3270_Left2                  = 64772, 
    	XK_3270_BackTab                = 64773, 
    	XK_3270_EraseEOF               = 64774, 
    	XK_3270_EraseInput             = 64775, 
    	XK_3270_Reset                  = 64776, 
    	XK_3270_Quit                   = 64777, 
    	XK_3270_PA1                    = 64778, 
    	XK_3270_PA2                    = 64779, 
    	XK_3270_PA3                    = 64780, 
    	XK_3270_Test                   = 64781, 
    	XK_3270_Attn                   = 64782, 
    	XK_3270_CursorBlink            = 64783, 
    	XK_3270_AltCursor              = 64784, 
    	XK_3270_KeyClick               = 64785, 
    	XK_3270_Jump                   = 64786, 
    	XK_3270_Ident                  = 64787, 
    	XK_3270_Rule                   = 64788, 
    	XK_3270_Copy                   = 64789, 
    	XK_3270_Play                   = 64790, 
    	XK_3270_Setup                  = 64791, 
    	XK_3270_Record                 = 64792, 
    	XK_3270_ChangeScreen           = 64793, 
    	XK_3270_DeleteWord             = 64794, 
    	XK_3270_ExSelect               = 64795, 
    	XK_3270_CursorSelect           = 64796, 
    	XK_3270_PrintScreen            = 64797, 
    	XK_3270_Enter                  = 64798, 
    	XK_space                       = 32,       // U+0020 SPACE
    	XK_exclam                      = 33,       // U+0021 EXCLAMATION MARK
    	XK_quotedbl                    = 34,       // U+0022 QUOTATION MARK
    	XK_numbersign                  = 35,       // U+0023 NUMBER SIGN
    	XK_dollar                      = 36,       // U+0024 DOLLAR SIGN
    	XK_percent                     = 37,       // U+0025 PERCENT SIGN
    	XK_ampersand                   = 38,       // U+0026 AMPERSAND
    	XK_apostrophe                  = 39,       // U+0027 APOSTROPHE
    	XK_quoteright                  = 39,       // deprecated
    	XK_parenleft                   = 40,       // U+0028 LEFT PARENTHESIS
    	XK_parenright                  = 41,       // U+0029 RIGHT PARENTHESIS
    	XK_asterisk                    = 42,       // U+002A ASTERISK
    	XK_plus                        = 43,       // U+002B PLUS SIGN
    	XK_comma                       = 44,       // U+002C COMMA
    	XK_minus                       = 45,       // U+002D HYPHEN-MINUS
    	XK_period                      = 46,       // U+002E FULL STOP
    	XK_slash                       = 47,       // U+002F SOLIDUS
    	XK_0                           = 48,       // U+0030 DIGIT ZERO
    	XK_1                           = 49,       // U+0031 DIGIT ONE
    	XK_2                           = 50,       // U+0032 DIGIT TWO
    	XK_3                           = 51,       // U+0033 DIGIT THREE
    	XK_4                           = 52,       // U+0034 DIGIT FOUR
    	XK_5                           = 53,       // U+0035 DIGIT FIVE
    	XK_6                           = 54,       // U+0036 DIGIT SIX
    	XK_7                           = 55,       // U+0037 DIGIT SEVEN
    	XK_8                           = 56,       // U+0038 DIGIT EIGHT
    	XK_9                           = 57,       // U+0039 DIGIT NINE
    	XK_colon                       = 58,       // U+003A COLON
    	XK_semicolon                   = 59,       // U+003B SEMICOLON
    	XK_less                        = 60,       // U+003C LESS-THAN SIGN
    	XK_equal                       = 61,       // U+003D EQUALS SIGN
    	XK_greater                     = 62,       // U+003E GREATER-THAN SIGN
    	XK_question                    = 63,       // U+003F QUESTION MARK
    	XK_at                          = 64,       // U+0040 COMMERCIAL AT
    	XK_A                           = 65,       // U+0041 LATIN CAPITAL LETTER A
    	XK_B                           = 66,       // U+0042 LATIN CAPITAL LETTER B
    	XK_C                           = 67,       // U+0043 LATIN CAPITAL LETTER C
    	XK_D                           = 68,       // U+0044 LATIN CAPITAL LETTER D
    	XK_E                           = 69,       // U+0045 LATIN CAPITAL LETTER E
    	XK_F                           = 70,       // U+0046 LATIN CAPITAL LETTER F
    	XK_G                           = 71,       // U+0047 LATIN CAPITAL LETTER G
    	XK_H                           = 72,       // U+0048 LATIN CAPITAL LETTER H
    	XK_I                           = 73,       // U+0049 LATIN CAPITAL LETTER I
    	XK_J                           = 74,       // U+004A LATIN CAPITAL LETTER J
    	XK_K                           = 75,       // U+004B LATIN CAPITAL LETTER K
    	XK_L                           = 76,       // U+004C LATIN CAPITAL LETTER L
    	XK_M                           = 77,       // U+004D LATIN CAPITAL LETTER M
    	XK_N                           = 78,       // U+004E LATIN CAPITAL LETTER N
    	XK_O                           = 79,       // U+004F LATIN CAPITAL LETTER O
    	XK_P                           = 80,       // U+0050 LATIN CAPITAL LETTER P
    	XK_Q                           = 81,       // U+0051 LATIN CAPITAL LETTER Q
    	XK_R                           = 82,       // U+0052 LATIN CAPITAL LETTER R
    	XK_S                           = 83,       // U+0053 LATIN CAPITAL LETTER S
    	XK_T                           = 84,       // U+0054 LATIN CAPITAL LETTER T
    	XK_U                           = 85,       // U+0055 LATIN CAPITAL LETTER U
    	XK_V                           = 86,       // U+0056 LATIN CAPITAL LETTER V
    	XK_W                           = 87,       // U+0057 LATIN CAPITAL LETTER W
    	XK_X                           = 88,       // U+0058 LATIN CAPITAL LETTER X
    	XK_Y                           = 89,       // U+0059 LATIN CAPITAL LETTER Y
    	XK_Z                           = 90,       // U+005A LATIN CAPITAL LETTER Z
    	XK_bracketleft                 = 91,       // U+005B LEFT SQUARE BRACKET
    	XK_backslash                   = 92,       // U+005C REVERSE SOLIDUS
    	XK_bracketright                = 93,       // U+005D RIGHT SQUARE BRACKET
    	XK_asciicircum                 = 94,       // U+005E CIRCUMFLEX ACCENT
    	XK_underscore                  = 95,       // U+005F LOW LINE
    	XK_grave                       = 96,       // U+0060 GRAVE ACCENT
    	XK_quoteleft                   = 96,       // deprecated
    	XK_a                           = 97,       // U+0061 LATIN SMALL LETTER A
    	XK_b                           = 98,       // U+0062 LATIN SMALL LETTER B
    	XK_c                           = 99,       // U+0063 LATIN SMALL LETTER C
    	XK_d                           = 100,      // U+0064 LATIN SMALL LETTER D
    	XK_e                           = 101,      // U+0065 LATIN SMALL LETTER E
    	XK_f                           = 102,      // U+0066 LATIN SMALL LETTER F
    	XK_g                           = 103,      // U+0067 LATIN SMALL LETTER G
    	XK_h                           = 104,      // U+0068 LATIN SMALL LETTER H
    	XK_i                           = 105,      // U+0069 LATIN SMALL LETTER I
    	XK_j                           = 106,      // U+006A LATIN SMALL LETTER J
    	XK_k                           = 107,      // U+006B LATIN SMALL LETTER K
    	XK_l                           = 108,      // U+006C LATIN SMALL LETTER L
    	XK_m                           = 109,      // U+006D LATIN SMALL LETTER M
    	XK_n                           = 110,      // U+006E LATIN SMALL LETTER N
    	XK_o                           = 111,      // U+006F LATIN SMALL LETTER O
    	XK_p                           = 112,      // U+0070 LATIN SMALL LETTER P
    	XK_q                           = 113,      // U+0071 LATIN SMALL LETTER Q
    	XK_r                           = 114,      // U+0072 LATIN SMALL LETTER R
    	XK_s                           = 115,      // U+0073 LATIN SMALL LETTER S
    	XK_t                           = 116,      // U+0074 LATIN SMALL LETTER T
    	XK_u                           = 117,      // U+0075 LATIN SMALL LETTER U
    	XK_v                           = 118,      // U+0076 LATIN SMALL LETTER V
    	XK_w                           = 119,      // U+0077 LATIN SMALL LETTER W
    	XK_x                           = 120,      // U+0078 LATIN SMALL LETTER X
    	XK_y                           = 121,      // U+0079 LATIN SMALL LETTER Y
    	XK_z                           = 122,      // U+007A LATIN SMALL LETTER Z
    	XK_braceleft                   = 123,      // U+007B LEFT CURLY BRACKET
    	XK_bar                         = 124,      // U+007C VERTICAL LINE
    	XK_braceright                  = 125,      // U+007D RIGHT CURLY BRACKET
    	XK_asciitilde                  = 126,      // U+007E TILDE
    	XK_nobreakspace                = 160,      // U+00A0 NO-BREAK SPACE
    	XK_exclamdown                  = 161,      // U+00A1 INVERTED EXCLAMATION MARK
    	XK_cent                        = 162,      // U+00A2 CENT SIGN
    	XK_sterling                    = 163,      // U+00A3 POUND SIGN
    	XK_currency                    = 164,      // U+00A4 CURRENCY SIGN
    	XK_yen                         = 165,      // U+00A5 YEN SIGN
    	XK_brokenbar                   = 166,      // U+00A6 BROKEN BAR
    	XK_section                     = 167,      // U+00A7 SECTION SIGN
    	XK_diaeresis                   = 168,      // U+00A8 DIAERESIS
    	XK_copyright                   = 169,      // U+00A9 COPYRIGHT SIGN
    	XK_ordfeminine                 = 170,      // U+00AA FEMININE ORDINAL INDICATOR
    	XK_guillemotleft               = 171,      // U+00AB LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
    	XK_notsign                     = 172,      // U+00AC NOT SIGN
    	XK_hyphen                      = 173,      // U+00AD SOFT HYPHEN
    	XK_registered                  = 174,      // U+00AE REGISTERED SIGN
    	XK_macron                      = 175,      // U+00AF MACRON
    	XK_degree                      = 176,      // U+00B0 DEGREE SIGN
    	XK_plusminus                   = 177,      // U+00B1 PLUS-MINUS SIGN
    	XK_twosuperior                 = 178,      // U+00B2 SUPERSCRIPT TWO
    	XK_threesuperior               = 179,      // U+00B3 SUPERSCRIPT THREE
    	XK_acute                       = 180,      // U+00B4 ACUTE ACCENT
    	XK_mu                          = 181,      // U+00B5 MICRO SIGN
    	XK_paragraph                   = 182,      // U+00B6 PILCROW SIGN
    	XK_periodcentered              = 183,      // U+00B7 MIDDLE DOT
    	XK_cedilla                     = 184,      // U+00B8 CEDILLA
    	XK_onesuperior                 = 185,      // U+00B9 SUPERSCRIPT ONE
    	XK_masculine                   = 186,      // U+00BA MASCULINE ORDINAL INDICATOR
    	XK_guillemotright              = 187,      // U+00BB RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
    	XK_onequarter                  = 188,      // U+00BC VULGAR FRACTION ONE QUARTER
    	XK_onehalf                     = 189,      // U+00BD VULGAR FRACTION ONE HALF
    	XK_threequarters               = 190,      // U+00BE VULGAR FRACTION THREE QUARTERS
    	XK_questiondown                = 191,      // U+00BF INVERTED QUESTION MARK
    	XK_Agrave                      = 192,      // U+00C0 LATIN CAPITAL LETTER A WITH GRAVE
    	XK_Aacute                      = 193,      // U+00C1 LATIN CAPITAL LETTER A WITH ACUTE
    	XK_Acircumflex                 = 194,      // U+00C2 LATIN CAPITAL LETTER A WITH CIRCUMFLEX
    	XK_Atilde                      = 195,      // U+00C3 LATIN CAPITAL LETTER A WITH TILDE
    	XK_Adiaeresis                  = 196,      // U+00C4 LATIN CAPITAL LETTER A WITH DIAERESIS
    	XK_Aring                       = 197,      // U+00C5 LATIN CAPITAL LETTER A WITH RING ABOVE
    	XK_AE                          = 198,      // U+00C6 LATIN CAPITAL LETTER AE
    	XK_Ccedilla                    = 199,      // U+00C7 LATIN CAPITAL LETTER C WITH CEDILLA
    	XK_Egrave                      = 200,      // U+00C8 LATIN CAPITAL LETTER E WITH GRAVE
    	XK_Eacute                      = 201,      // U+00C9 LATIN CAPITAL LETTER E WITH ACUTE
    	XK_Ecircumflex                 = 202,      // U+00CA LATIN CAPITAL LETTER E WITH CIRCUMFLEX
    	XK_Ediaeresis                  = 203,      // U+00CB LATIN CAPITAL LETTER E WITH DIAERESIS
    	XK_Igrave                      = 204,      // U+00CC LATIN CAPITAL LETTER I WITH GRAVE
    	XK_Iacute                      = 205,      // U+00CD LATIN CAPITAL LETTER I WITH ACUTE
    	XK_Icircumflex                 = 206,      // U+00CE LATIN CAPITAL LETTER I WITH CIRCUMFLEX
    	XK_Idiaeresis                  = 207,      // U+00CF LATIN CAPITAL LETTER I WITH DIAERESIS
    	XK_ETH                         = 208,      // U+00D0 LATIN CAPITAL LETTER ETH
    	XK_Eth                         = 208,      // deprecated
    	XK_Ntilde                      = 209,      // U+00D1 LATIN CAPITAL LETTER N WITH TILDE
    	XK_Ograve                      = 210,      // U+00D2 LATIN CAPITAL LETTER O WITH GRAVE
    	XK_Oacute                      = 211,      // U+00D3 LATIN CAPITAL LETTER O WITH ACUTE
    	XK_Ocircumflex                 = 212,      // U+00D4 LATIN CAPITAL LETTER O WITH CIRCUMFLEX
    	XK_Otilde                      = 213,      // U+00D5 LATIN CAPITAL LETTER O WITH TILDE
    	XK_Odiaeresis                  = 214,      // U+00D6 LATIN CAPITAL LETTER O WITH DIAERESIS
    	XK_multiply                    = 215,      // U+00D7 MULTIPLICATION SIGN
    	XK_Oslash                      = 216,      // U+00D8 LATIN CAPITAL LETTER O WITH STROKE
    	XK_Ooblique                    = 216,      // U+00D8 LATIN CAPITAL LETTER O WITH STROKE
    	XK_Ugrave                      = 217,      // U+00D9 LATIN CAPITAL LETTER U WITH GRAVE
    	XK_Uacute                      = 218,      // U+00DA LATIN CAPITAL LETTER U WITH ACUTE
    	XK_Ucircumflex                 = 219,      // U+00DB LATIN CAPITAL LETTER U WITH CIRCUMFLEX
    	XK_Udiaeresis                  = 220,      // U+00DC LATIN CAPITAL LETTER U WITH DIAERESIS
    	XK_Yacute                      = 221,      // U+00DD LATIN CAPITAL LETTER Y WITH ACUTE
    	XK_THORN                       = 222,      // U+00DE LATIN CAPITAL LETTER THORN
    	XK_Thorn                       = 222,      // deprecated
    	XK_ssharp                      = 223,      // U+00DF LATIN SMALL LETTER SHARP S
    	XK_agrave                      = 224,      // U+00E0 LATIN SMALL LETTER A WITH GRAVE
    	XK_aacute                      = 225,      // U+00E1 LATIN SMALL LETTER A WITH ACUTE
    	XK_acircumflex                 = 226,      // U+00E2 LATIN SMALL LETTER A WITH CIRCUMFLEX
    	XK_atilde                      = 227,      // U+00E3 LATIN SMALL LETTER A WITH TILDE
    	XK_adiaeresis                  = 228,      // U+00E4 LATIN SMALL LETTER A WITH DIAERESIS
    	XK_aring                       = 229,      // U+00E5 LATIN SMALL LETTER A WITH RING ABOVE
    	XK_ae                          = 230,      // U+00E6 LATIN SMALL LETTER AE
    	XK_ccedilla                    = 231,      // U+00E7 LATIN SMALL LETTER C WITH CEDILLA
    	XK_egrave                      = 232,      // U+00E8 LATIN SMALL LETTER E WITH GRAVE
    	XK_eacute                      = 233,      // U+00E9 LATIN SMALL LETTER E WITH ACUTE
    	XK_ecircumflex                 = 234,      // U+00EA LATIN SMALL LETTER E WITH CIRCUMFLEX
    	XK_ediaeresis                  = 235,      // U+00EB LATIN SMALL LETTER E WITH DIAERESIS
    	XK_igrave                      = 236,      // U+00EC LATIN SMALL LETTER I WITH GRAVE
    	XK_iacute                      = 237,      // U+00ED LATIN SMALL LETTER I WITH ACUTE
    	XK_icircumflex                 = 238,      // U+00EE LATIN SMALL LETTER I WITH CIRCUMFLEX
    	XK_idiaeresis                  = 239,      // U+00EF LATIN SMALL LETTER I WITH DIAERESIS
    	XK_eth                         = 240,      // U+00F0 LATIN SMALL LETTER ETH
    	XK_ntilde                      = 241,      // U+00F1 LATIN SMALL LETTER N WITH TILDE
    	XK_ograve                      = 242,      // U+00F2 LATIN SMALL LETTER O WITH GRAVE
    	XK_oacute                      = 243,      // U+00F3 LATIN SMALL LETTER O WITH ACUTE
    	XK_ocircumflex                 = 244,      // U+00F4 LATIN SMALL LETTER O WITH CIRCUMFLEX
    	XK_otilde                      = 245,      // U+00F5 LATIN SMALL LETTER O WITH TILDE
    	XK_odiaeresis                  = 246,      // U+00F6 LATIN SMALL LETTER O WITH DIAERESIS
    	XK_division                    = 247,      // U+00F7 DIVISION SIGN
    	XK_oslash                      = 248,      // U+00F8 LATIN SMALL LETTER O WITH STROKE
    	XK_ooblique                    = 248,      // U+00F8 LATIN SMALL LETTER O WITH STROKE
    	XK_ugrave                      = 249,      // U+00F9 LATIN SMALL LETTER U WITH GRAVE
    	XK_uacute                      = 250,      // U+00FA LATIN SMALL LETTER U WITH ACUTE
    	XK_ucircumflex                 = 251,      // U+00FB LATIN SMALL LETTER U WITH CIRCUMFLEX
    	XK_udiaeresis                  = 252,      // U+00FC LATIN SMALL LETTER U WITH DIAERESIS
    	XK_yacute                      = 253,      // U+00FD LATIN SMALL LETTER Y WITH ACUTE
    	XK_thorn                       = 254,      // U+00FE LATIN SMALL LETTER THORN
    	XK_ydiaeresis                  = 255,      // U+00FF LATIN SMALL LETTER Y WITH DIAERESIS
    	XK_Aogonek                     = 417,      // U+0104 LATIN CAPITAL LETTER A WITH OGONEK
    	XK_breve                       = 418,      // U+02D8 BREVE
    	XK_Lstroke                     = 419,      // U+0141 LATIN CAPITAL LETTER L WITH STROKE
    	XK_Lcaron                      = 421,      // U+013D LATIN CAPITAL LETTER L WITH CARON
    	XK_Sacute                      = 422,      // U+015A LATIN CAPITAL LETTER S WITH ACUTE
    	XK_Scaron                      = 425,      // U+0160 LATIN CAPITAL LETTER S WITH CARON
    	XK_Scedilla                    = 426,      // U+015E LATIN CAPITAL LETTER S WITH CEDILLA
    	XK_Tcaron                      = 427,      // U+0164 LATIN CAPITAL LETTER T WITH CARON
    	XK_Zacute                      = 428,      // U+0179 LATIN CAPITAL LETTER Z WITH ACUTE
    	XK_Zcaron                      = 430,      // U+017D LATIN CAPITAL LETTER Z WITH CARON
    	XK_Zabovedot                   = 431,      // U+017B LATIN CAPITAL LETTER Z WITH DOT ABOVE
    	XK_aogonek                     = 433,      // U+0105 LATIN SMALL LETTER A WITH OGONEK
    	XK_ogonek                      = 434,      // U+02DB OGONEK
    	XK_lstroke                     = 435,      // U+0142 LATIN SMALL LETTER L WITH STROKE
    	XK_lcaron                      = 437,      // U+013E LATIN SMALL LETTER L WITH CARON
    	XK_sacute                      = 438,      // U+015B LATIN SMALL LETTER S WITH ACUTE
    	XK_caron                       = 439,      // U+02C7 CARON
    	XK_scaron                      = 441,      // U+0161 LATIN SMALL LETTER S WITH CARON
    	XK_scedilla                    = 442,      // U+015F LATIN SMALL LETTER S WITH CEDILLA
    	XK_tcaron                      = 443,      // U+0165 LATIN SMALL LETTER T WITH CARON
    	XK_zacute                      = 444,      // U+017A LATIN SMALL LETTER Z WITH ACUTE
    	XK_doubleacute                 = 445,      // U+02DD DOUBLE ACUTE ACCENT
    	XK_zcaron                      = 446,      // U+017E LATIN SMALL LETTER Z WITH CARON
    	XK_zabovedot                   = 447,      // U+017C LATIN SMALL LETTER Z WITH DOT ABOVE
    	XK_Racute                      = 448,      // U+0154 LATIN CAPITAL LETTER R WITH ACUTE
    	XK_Abreve                      = 451,      // U+0102 LATIN CAPITAL LETTER A WITH BREVE
    	XK_Lacute                      = 453,      // U+0139 LATIN CAPITAL LETTER L WITH ACUTE
    	XK_Cacute                      = 454,      // U+0106 LATIN CAPITAL LETTER C WITH ACUTE
    	XK_Ccaron                      = 456,      // U+010C LATIN CAPITAL LETTER C WITH CARON
    	XK_Eogonek                     = 458,      // U+0118 LATIN CAPITAL LETTER E WITH OGONEK
    	XK_Ecaron                      = 460,      // U+011A LATIN CAPITAL LETTER E WITH CARON
    	XK_Dcaron                      = 463,      // U+010E LATIN CAPITAL LETTER D WITH CARON
    	XK_Dstroke                     = 464,      // U+0110 LATIN CAPITAL LETTER D WITH STROKE
    	XK_Nacute                      = 465,      // U+0143 LATIN CAPITAL LETTER N WITH ACUTE
    	XK_Ncaron                      = 466,      // U+0147 LATIN CAPITAL LETTER N WITH CARON
    	XK_Odoubleacute                = 469,      // U+0150 LATIN CAPITAL LETTER O WITH DOUBLE ACUTE
    	XK_Rcaron                      = 472,      // U+0158 LATIN CAPITAL LETTER R WITH CARON
    	XK_Uring                       = 473,      // U+016E LATIN CAPITAL LETTER U WITH RING ABOVE
    	XK_Udoubleacute                = 475,      // U+0170 LATIN CAPITAL LETTER U WITH DOUBLE ACUTE
    	XK_Tcedilla                    = 478,      // U+0162 LATIN CAPITAL LETTER T WITH CEDILLA
    	XK_racute                      = 480,      // U+0155 LATIN SMALL LETTER R WITH ACUTE
    	XK_abreve                      = 483,      // U+0103 LATIN SMALL LETTER A WITH BREVE
    	XK_lacute                      = 485,      // U+013A LATIN SMALL LETTER L WITH ACUTE
    	XK_cacute                      = 486,      // U+0107 LATIN SMALL LETTER C WITH ACUTE
    	XK_ccaron                      = 488,      // U+010D LATIN SMALL LETTER C WITH CARON
    	XK_eogonek                     = 490,      // U+0119 LATIN SMALL LETTER E WITH OGONEK
    	XK_ecaron                      = 492,      // U+011B LATIN SMALL LETTER E WITH CARON
    	XK_dcaron                      = 495,      // U+010F LATIN SMALL LETTER D WITH CARON
    	XK_dstroke                     = 496,      // U+0111 LATIN SMALL LETTER D WITH STROKE
    	XK_nacute                      = 497,      // U+0144 LATIN SMALL LETTER N WITH ACUTE
    	XK_ncaron                      = 498,      // U+0148 LATIN SMALL LETTER N WITH CARON
    	XK_odoubleacute                = 501,      // U+0151 LATIN SMALL LETTER O WITH DOUBLE ACUTE
    	XK_udoubleacute                = 507,      // U+0171 LATIN SMALL LETTER U WITH DOUBLE ACUTE
    	XK_rcaron                      = 504,      // U+0159 LATIN SMALL LETTER R WITH CARON
    	XK_uring                       = 505,      // U+016F LATIN SMALL LETTER U WITH RING ABOVE
    	XK_tcedilla                    = 510,      // U+0163 LATIN SMALL LETTER T WITH CEDILLA
    	XK_abovedot                    = 511,      // U+02D9 DOT ABOVE
    	XK_Hstroke                     = 673,      // U+0126 LATIN CAPITAL LETTER H WITH STROKE
    	XK_Hcircumflex                 = 678,      // U+0124 LATIN CAPITAL LETTER H WITH CIRCUMFLEX
    	XK_Iabovedot                   = 681,      // U+0130 LATIN CAPITAL LETTER I WITH DOT ABOVE
    	XK_Gbreve                      = 683,      // U+011E LATIN CAPITAL LETTER G WITH BREVE
    	XK_Jcircumflex                 = 684,      // U+0134 LATIN CAPITAL LETTER J WITH CIRCUMFLEX
    	XK_hstroke                     = 689,      // U+0127 LATIN SMALL LETTER H WITH STROKE
    	XK_hcircumflex                 = 694,      // U+0125 LATIN SMALL LETTER H WITH CIRCUMFLEX
    	XK_idotless                    = 697,      // U+0131 LATIN SMALL LETTER DOTLESS I
    	XK_gbreve                      = 699,      // U+011F LATIN SMALL LETTER G WITH BREVE
    	XK_jcircumflex                 = 700,      // U+0135 LATIN SMALL LETTER J WITH CIRCUMFLEX
    	XK_Cabovedot                   = 709,      // U+010A LATIN CAPITAL LETTER C WITH DOT ABOVE
    	XK_Ccircumflex                 = 710,      // U+0108 LATIN CAPITAL LETTER C WITH CIRCUMFLEX
    	XK_Gabovedot                   = 725,      // U+0120 LATIN CAPITAL LETTER G WITH DOT ABOVE
    	XK_Gcircumflex                 = 728,      // U+011C LATIN CAPITAL LETTER G WITH CIRCUMFLEX
    	XK_Ubreve                      = 733,      // U+016C LATIN CAPITAL LETTER U WITH BREVE
    	XK_Scircumflex                 = 734,      // U+015C LATIN CAPITAL LETTER S WITH CIRCUMFLEX
    	XK_cabovedot                   = 741,      // U+010B LATIN SMALL LETTER C WITH DOT ABOVE
    	XK_ccircumflex                 = 742,      // U+0109 LATIN SMALL LETTER C WITH CIRCUMFLEX
    	XK_gabovedot                   = 757,      // U+0121 LATIN SMALL LETTER G WITH DOT ABOVE
    	XK_gcircumflex                 = 760,      // U+011D LATIN SMALL LETTER G WITH CIRCUMFLEX
    	XK_ubreve                      = 765,      // U+016D LATIN SMALL LETTER U WITH BREVE
    	XK_scircumflex                 = 766,      // U+015D LATIN SMALL LETTER S WITH CIRCUMFLEX
    	XK_kra                         = 930,      // U+0138 LATIN SMALL LETTER KRA
    	XK_kappa                       = 930,      // deprecated
    	XK_Rcedilla                    = 931,      // U+0156 LATIN CAPITAL LETTER R WITH CEDILLA
    	XK_Itilde                      = 933,      // U+0128 LATIN CAPITAL LETTER I WITH TILDE
    	XK_Lcedilla                    = 934,      // U+013B LATIN CAPITAL LETTER L WITH CEDILLA
    	XK_Emacron                     = 938,      // U+0112 LATIN CAPITAL LETTER E WITH MACRON
    	XK_Gcedilla                    = 939,      // U+0122 LATIN CAPITAL LETTER G WITH CEDILLA
    	XK_Tslash                      = 940,      // U+0166 LATIN CAPITAL LETTER T WITH STROKE
    	XK_rcedilla                    = 947,      // U+0157 LATIN SMALL LETTER R WITH CEDILLA
    	XK_itilde                      = 949,      // U+0129 LATIN SMALL LETTER I WITH TILDE
    	XK_lcedilla                    = 950,      // U+013C LATIN SMALL LETTER L WITH CEDILLA
    	XK_emacron                     = 954,      // U+0113 LATIN SMALL LETTER E WITH MACRON
    	XK_gcedilla                    = 955,      // U+0123 LATIN SMALL LETTER G WITH CEDILLA
    	XK_tslash                      = 956,      // U+0167 LATIN SMALL LETTER T WITH STROKE
    	XK_ENG                         = 957,      // U+014A LATIN CAPITAL LETTER ENG
    	XK_eng                         = 959,      // U+014B LATIN SMALL LETTER ENG
    	XK_Amacron                     = 960,      // U+0100 LATIN CAPITAL LETTER A WITH MACRON
    	XK_Iogonek                     = 967,      // U+012E LATIN CAPITAL LETTER I WITH OGONEK
    	XK_Eabovedot                   = 972,      // U+0116 LATIN CAPITAL LETTER E WITH DOT ABOVE
    	XK_Imacron                     = 975,      // U+012A LATIN CAPITAL LETTER I WITH MACRON
    	XK_Ncedilla                    = 977,      // U+0145 LATIN CAPITAL LETTER N WITH CEDILLA
    	XK_Omacron                     = 978,      // U+014C LATIN CAPITAL LETTER O WITH MACRON
    	XK_Kcedilla                    = 979,      // U+0136 LATIN CAPITAL LETTER K WITH CEDILLA
    	XK_Uogonek                     = 985,      // U+0172 LATIN CAPITAL LETTER U WITH OGONEK
    	XK_Utilde                      = 989,      // U+0168 LATIN CAPITAL LETTER U WITH TILDE
    	XK_Umacron                     = 990,      // U+016A LATIN CAPITAL LETTER U WITH MACRON
    	XK_amacron                     = 992,      // U+0101 LATIN SMALL LETTER A WITH MACRON
    	XK_iogonek                     = 999,      // U+012F LATIN SMALL LETTER I WITH OGONEK
    	XK_eabovedot                   = 1004,     // U+0117 LATIN SMALL LETTER E WITH DOT ABOVE
    	XK_imacron                     = 1007,     // U+012B LATIN SMALL LETTER I WITH MACRON
    	XK_ncedilla                    = 1009,     // U+0146 LATIN SMALL LETTER N WITH CEDILLA
    	XK_omacron                     = 1010,     // U+014D LATIN SMALL LETTER O WITH MACRON
    	XK_kcedilla                    = 1011,     // U+0137 LATIN SMALL LETTER K WITH CEDILLA
    	XK_uogonek                     = 1017,     // U+0173 LATIN SMALL LETTER U WITH OGONEK
    	XK_utilde                      = 1021,     // U+0169 LATIN SMALL LETTER U WITH TILDE
    	XK_umacron                     = 1022,     // U+016B LATIN SMALL LETTER U WITH MACRON
    	XK_Babovedot                   = 16784898, // U+1E02 LATIN CAPITAL LETTER B WITH DOT ABOVE
    	XK_babovedot                   = 16784899, // U+1E03 LATIN SMALL LETTER B WITH DOT ABOVE
    	XK_Dabovedot                   = 16784906, // U+1E0A LATIN CAPITAL LETTER D WITH DOT ABOVE
    	XK_Wgrave                      = 16785024, // U+1E80 LATIN CAPITAL LETTER W WITH GRAVE
    	XK_Wacute                      = 16785026, // U+1E82 LATIN CAPITAL LETTER W WITH ACUTE
    	XK_dabovedot                   = 16784907, // U+1E0B LATIN SMALL LETTER D WITH DOT ABOVE
    	XK_Ygrave                      = 16785138, // U+1EF2 LATIN CAPITAL LETTER Y WITH GRAVE
    	XK_Fabovedot                   = 16784926, // U+1E1E LATIN CAPITAL LETTER F WITH DOT ABOVE
    	XK_fabovedot                   = 16784927, // U+1E1F LATIN SMALL LETTER F WITH DOT ABOVE
    	XK_Mabovedot                   = 16784960, // U+1E40 LATIN CAPITAL LETTER M WITH DOT ABOVE
    	XK_mabovedot                   = 16784961, // U+1E41 LATIN SMALL LETTER M WITH DOT ABOVE
    	XK_Pabovedot                   = 16784982, // U+1E56 LATIN CAPITAL LETTER P WITH DOT ABOVE
    	XK_wgrave                      = 16785025, // U+1E81 LATIN SMALL LETTER W WITH GRAVE
    	XK_pabovedot                   = 16784983, // U+1E57 LATIN SMALL LETTER P WITH DOT ABOVE
    	XK_wacute                      = 16785027, // U+1E83 LATIN SMALL LETTER W WITH ACUTE
    	XK_Sabovedot                   = 16784992, // U+1E60 LATIN CAPITAL LETTER S WITH DOT ABOVE
    	XK_ygrave                      = 16785139, // U+1EF3 LATIN SMALL LETTER Y WITH GRAVE
    	XK_Wdiaeresis                  = 16785028, // U+1E84 LATIN CAPITAL LETTER W WITH DIAERESIS
    	XK_wdiaeresis                  = 16785029, // U+1E85 LATIN SMALL LETTER W WITH DIAERESIS
    	XK_sabovedot                   = 16784993, // U+1E61 LATIN SMALL LETTER S WITH DOT ABOVE
    	XK_Wcircumflex                 = 16777588, // U+0174 LATIN CAPITAL LETTER W WITH CIRCUMFLEX
    	XK_Tabovedot                   = 16785002, // U+1E6A LATIN CAPITAL LETTER T WITH DOT ABOVE
    	XK_Ycircumflex                 = 16777590, // U+0176 LATIN CAPITAL LETTER Y WITH CIRCUMFLEX
    	XK_wcircumflex                 = 16777589, // U+0175 LATIN SMALL LETTER W WITH CIRCUMFLEX
    	XK_tabovedot                   = 16785003, // U+1E6B LATIN SMALL LETTER T WITH DOT ABOVE
    	XK_ycircumflex                 = 16777591, // U+0177 LATIN SMALL LETTER Y WITH CIRCUMFLEX
    	XK_OE                          = 5052,     // U+0152 LATIN CAPITAL LIGATURE OE
    	XK_oe                          = 5053,     // U+0153 LATIN SMALL LIGATURE OE
    	XK_Ydiaeresis                  = 5054,     // U+0178 LATIN CAPITAL LETTER Y WITH DIAERESIS
    	XK_overline                    = 1150,     // U+203E OVERLINE
    	XK_kana_fullstop               = 1185,     // U+3002 IDEOGRAPHIC FULL STOP
    	XK_kana_openingbracket         = 1186,     // U+300C LEFT CORNER BRACKET
    	XK_kana_closingbracket         = 1187,     // U+300D RIGHT CORNER BRACKET
    	XK_kana_comma                  = 1188,     // U+3001 IDEOGRAPHIC COMMA
    	XK_kana_conjunctive            = 1189,     // U+30FB KATAKANA MIDDLE DOT
    	XK_kana_middledot              = 1189,     // deprecated
    	XK_kana_WO                     = 1190,     // U+30F2 KATAKANA LETTER WO
    	XK_kana_a                      = 1191,     // U+30A1 KATAKANA LETTER SMALL A
    	XK_kana_i                      = 1192,     // U+30A3 KATAKANA LETTER SMALL I
    	XK_kana_u                      = 1193,     // U+30A5 KATAKANA LETTER SMALL U
    	XK_kana_e                      = 1194,     // U+30A7 KATAKANA LETTER SMALL E
    	XK_kana_o                      = 1195,     // U+30A9 KATAKANA LETTER SMALL O
    	XK_kana_ya                     = 1196,     // U+30E3 KATAKANA LETTER SMALL YA
    	XK_kana_yu                     = 1197,     // U+30E5 KATAKANA LETTER SMALL YU
    	XK_kana_yo                     = 1198,     // U+30E7 KATAKANA LETTER SMALL YO
    	XK_kana_tsu                    = 1199,     // U+30C3 KATAKANA LETTER SMALL TU
    	XK_kana_tu                     = 1199,     // deprecated
    	XK_prolongedsound              = 1200,     // U+30FC KATAKANA-HIRAGANA PROLONGED SOUND MARK
    	XK_kana_A                      = 1201,     // U+30A2 KATAKANA LETTER A
    	XK_kana_I                      = 1202,     // U+30A4 KATAKANA LETTER I
    	XK_kana_U                      = 1203,     // U+30A6 KATAKANA LETTER U
    	XK_kana_E                      = 1204,     // U+30A8 KATAKANA LETTER E
    	XK_kana_O                      = 1205,     // U+30AA KATAKANA LETTER O
    	XK_kana_KA                     = 1206,     // U+30AB KATAKANA LETTER KA
    	XK_kana_KI                     = 1207,     // U+30AD KATAKANA LETTER KI
    	XK_kana_KU                     = 1208,     // U+30AF KATAKANA LETTER KU
    	XK_kana_KE                     = 1209,     // U+30B1 KATAKANA LETTER KE
    	XK_kana_KO                     = 1210,     // U+30B3 KATAKANA LETTER KO
    	XK_kana_SA                     = 1211,     // U+30B5 KATAKANA LETTER SA
    	XK_kana_SHI                    = 1212,     // U+30B7 KATAKANA LETTER SI
    	XK_kana_SU                     = 1213,     // U+30B9 KATAKANA LETTER SU
    	XK_kana_SE                     = 1214,     // U+30BB KATAKANA LETTER SE
    	XK_kana_SO                     = 1215,     // U+30BD KATAKANA LETTER SO
    	XK_kana_TA                     = 1216,     // U+30BF KATAKANA LETTER TA
    	XK_kana_CHI                    = 1217,     // U+30C1 KATAKANA LETTER TI
    	XK_kana_TI                     = 1217,     // deprecated
    	XK_kana_TSU                    = 1218,     // U+30C4 KATAKANA LETTER TU
    	XK_kana_TU                     = 1218,     // deprecated
    	XK_kana_TE                     = 1219,     // U+30C6 KATAKANA LETTER TE
    	XK_kana_TO                     = 1220,     // U+30C8 KATAKANA LETTER TO
    	XK_kana_NA                     = 1221,     // U+30CA KATAKANA LETTER NA
    	XK_kana_NI                     = 1222,     // U+30CB KATAKANA LETTER NI
    	XK_kana_NU                     = 1223,     // U+30CC KATAKANA LETTER NU
    	XK_kana_NE                     = 1224,     // U+30CD KATAKANA LETTER NE
    	XK_kana_NO                     = 1225,     // U+30CE KATAKANA LETTER NO
    	XK_kana_HA                     = 1226,     // U+30CF KATAKANA LETTER HA
    	XK_kana_HI                     = 1227,     // U+30D2 KATAKANA LETTER HI
    	XK_kana_FU                     = 1228,     // U+30D5 KATAKANA LETTER HU
    	XK_kana_HU                     = 1228,     // deprecated
    	XK_kana_HE                     = 1229,     // U+30D8 KATAKANA LETTER HE
    	XK_kana_HO                     = 1230,     // U+30DB KATAKANA LETTER HO
    	XK_kana_MA                     = 1231,     // U+30DE KATAKANA LETTER MA
    	XK_kana_MI                     = 1232,     // U+30DF KATAKANA LETTER MI
    	XK_kana_MU                     = 1233,     // U+30E0 KATAKANA LETTER MU
    	XK_kana_ME                     = 1234,     // U+30E1 KATAKANA LETTER ME
    	XK_kana_MO                     = 1235,     // U+30E2 KATAKANA LETTER MO
    	XK_kana_YA                     = 1236,     // U+30E4 KATAKANA LETTER YA
    	XK_kana_YU                     = 1237,     // U+30E6 KATAKANA LETTER YU
    	XK_kana_YO                     = 1238,     // U+30E8 KATAKANA LETTER YO
    	XK_kana_RA                     = 1239,     // U+30E9 KATAKANA LETTER RA
    	XK_kana_RI                     = 1240,     // U+30EA KATAKANA LETTER RI
    	XK_kana_RU                     = 1241,     // U+30EB KATAKANA LETTER RU
    	XK_kana_RE                     = 1242,     // U+30EC KATAKANA LETTER RE
    	XK_kana_RO                     = 1243,     // U+30ED KATAKANA LETTER RO
    	XK_kana_WA                     = 1244,     // U+30EF KATAKANA LETTER WA
    	XK_kana_N                      = 1245,     // U+30F3 KATAKANA LETTER N
    	XK_voicedsound                 = 1246,     // U+309B KATAKANA-HIRAGANA VOICED SOUND MARK
    	XK_semivoicedsound             = 1247,     // U+309C KATAKANA-HIRAGANA SEMI-VOICED SOUND MARK
    	XK_kana_switch                 = 65406,    // Alias for mode_switch
    	XK_Farsi_0                     = 16778992, // U+06F0 EXTENDED ARABIC-INDIC DIGIT ZERO
    	XK_Farsi_1                     = 16778993, // U+06F1 EXTENDED ARABIC-INDIC DIGIT ONE
    	XK_Farsi_2                     = 16778994, // U+06F2 EXTENDED ARABIC-INDIC DIGIT TWO
    	XK_Farsi_3                     = 16778995, // U+06F3 EXTENDED ARABIC-INDIC DIGIT THREE
    	XK_Farsi_4                     = 16778996, // U+06F4 EXTENDED ARABIC-INDIC DIGIT FOUR
    	XK_Farsi_5                     = 16778997, // U+06F5 EXTENDED ARABIC-INDIC DIGIT FIVE
    	XK_Farsi_6                     = 16778998, // U+06F6 EXTENDED ARABIC-INDIC DIGIT SIX
    	XK_Farsi_7                     = 16778999, // U+06F7 EXTENDED ARABIC-INDIC DIGIT SEVEN
    	XK_Farsi_8                     = 16779000, // U+06F8 EXTENDED ARABIC-INDIC DIGIT EIGHT
    	XK_Farsi_9                     = 16779001, // U+06F9 EXTENDED ARABIC-INDIC DIGIT NINE
    	XK_Arabic_percent              = 16778858, // U+066A ARABIC PERCENT SIGN
    	XK_Arabic_superscript_alef     = 16778864, // U+0670 ARABIC LETTER SUPERSCRIPT ALEF
    	XK_Arabic_tteh                 = 16778873, // U+0679 ARABIC LETTER TTEH
    	XK_Arabic_peh                  = 16778878, // U+067E ARABIC LETTER PEH
    	XK_Arabic_tcheh                = 16778886, // U+0686 ARABIC LETTER TCHEH
    	XK_Arabic_ddal                 = 16778888, // U+0688 ARABIC LETTER DDAL
    	XK_Arabic_rreh                 = 16778897, // U+0691 ARABIC LETTER RREH
    	XK_Arabic_comma                = 1452,     // U+060C ARABIC COMMA
    	XK_Arabic_fullstop             = 16778964, // U+06D4 ARABIC FULL STOP
    	XK_Arabic_0                    = 16778848, // U+0660 ARABIC-INDIC DIGIT ZERO
    	XK_Arabic_1                    = 16778849, // U+0661 ARABIC-INDIC DIGIT ONE
    	XK_Arabic_2                    = 16778850, // U+0662 ARABIC-INDIC DIGIT TWO
    	XK_Arabic_3                    = 16778851, // U+0663 ARABIC-INDIC DIGIT THREE
    	XK_Arabic_4                    = 16778852, // U+0664 ARABIC-INDIC DIGIT FOUR
    	XK_Arabic_5                    = 16778853, // U+0665 ARABIC-INDIC DIGIT FIVE
    	XK_Arabic_6                    = 16778854, // U+0666 ARABIC-INDIC DIGIT SIX
    	XK_Arabic_7                    = 16778855, // U+0667 ARABIC-INDIC DIGIT SEVEN
    	XK_Arabic_8                    = 16778856, // U+0668 ARABIC-INDIC DIGIT EIGHT
    	XK_Arabic_9                    = 16778857, // U+0669 ARABIC-INDIC DIGIT NINE
    	XK_Arabic_semicolon            = 1467,     // U+061B ARABIC SEMICOLON
    	XK_Arabic_question_mark        = 1471,     // U+061F ARABIC QUESTION MARK
    	XK_Arabic_hamza                = 1473,     // U+0621 ARABIC LETTER HAMZA
    	XK_Arabic_maddaonalef          = 1474,     // U+0622 ARABIC LETTER ALEF WITH MADDA ABOVE
    	XK_Arabic_hamzaonalef          = 1475,     // U+0623 ARABIC LETTER ALEF WITH HAMZA ABOVE
    	XK_Arabic_hamzaonwaw           = 1476,     // U+0624 ARABIC LETTER WAW WITH HAMZA ABOVE
    	XK_Arabic_hamzaunderalef       = 1477,     // U+0625 ARABIC LETTER ALEF WITH HAMZA BELOW
    	XK_Arabic_hamzaonyeh           = 1478,     // U+0626 ARABIC LETTER YEH WITH HAMZA ABOVE
    	XK_Arabic_alef                 = 1479,     // U+0627 ARABIC LETTER ALEF
    	XK_Arabic_beh                  = 1480,     // U+0628 ARABIC LETTER BEH
    	XK_Arabic_tehmarbuta           = 1481,     // U+0629 ARABIC LETTER TEH MARBUTA
    	XK_Arabic_teh                  = 1482,     // U+062A ARABIC LETTER TEH
    	XK_Arabic_theh                 = 1483,     // U+062B ARABIC LETTER THEH
    	XK_Arabic_jeem                 = 1484,     // U+062C ARABIC LETTER JEEM
    	XK_Arabic_hah                  = 1485,     // U+062D ARABIC LETTER HAH
    	XK_Arabic_khah                 = 1486,     // U+062E ARABIC LETTER KHAH
    	XK_Arabic_dal                  = 1487,     // U+062F ARABIC LETTER DAL
    	XK_Arabic_thal                 = 1488,     // U+0630 ARABIC LETTER THAL
    	XK_Arabic_ra                   = 1489,     // U+0631 ARABIC LETTER REH
    	XK_Arabic_zain                 = 1490,     // U+0632 ARABIC LETTER ZAIN
    	XK_Arabic_seen                 = 1491,     // U+0633 ARABIC LETTER SEEN
    	XK_Arabic_sheen                = 1492,     // U+0634 ARABIC LETTER SHEEN
    	XK_Arabic_sad                  = 1493,     // U+0635 ARABIC LETTER SAD
    	XK_Arabic_dad                  = 1494,     // U+0636 ARABIC LETTER DAD
    	XK_Arabic_tah                  = 1495,     // U+0637 ARABIC LETTER TAH
    	XK_Arabic_zah                  = 1496,     // U+0638 ARABIC LETTER ZAH
    	XK_Arabic_ain                  = 1497,     // U+0639 ARABIC LETTER AIN
    	XK_Arabic_ghain                = 1498,     // U+063A ARABIC LETTER GHAIN
    	XK_Arabic_tatweel              = 1504,     // U+0640 ARABIC TATWEEL
    	XK_Arabic_feh                  = 1505,     // U+0641 ARABIC LETTER FEH
    	XK_Arabic_qaf                  = 1506,     // U+0642 ARABIC LETTER QAF
    	XK_Arabic_kaf                  = 1507,     // U+0643 ARABIC LETTER KAF
    	XK_Arabic_lam                  = 1508,     // U+0644 ARABIC LETTER LAM
    	XK_Arabic_meem                 = 1509,     // U+0645 ARABIC LETTER MEEM
    	XK_Arabic_noon                 = 1510,     // U+0646 ARABIC LETTER NOON
    	XK_Arabic_ha                   = 1511,     // U+0647 ARABIC LETTER HEH
    	XK_Arabic_heh                  = 1511,     // deprecated
    	XK_Arabic_waw                  = 1512,     // U+0648 ARABIC LETTER WAW
    	XK_Arabic_alefmaksura          = 1513,     // U+0649 ARABIC LETTER ALEF MAKSURA
    	XK_Arabic_yeh                  = 1514,     // U+064A ARABIC LETTER YEH
    	XK_Arabic_fathatan             = 1515,     // U+064B ARABIC FATHATAN
    	XK_Arabic_dammatan             = 1516,     // U+064C ARABIC DAMMATAN
    	XK_Arabic_kasratan             = 1517,     // U+064D ARABIC KASRATAN
    	XK_Arabic_fatha                = 1518,     // U+064E ARABIC FATHA
    	XK_Arabic_damma                = 1519,     // U+064F ARABIC DAMMA
    	XK_Arabic_kasra                = 1520,     // U+0650 ARABIC KASRA
    	XK_Arabic_shadda               = 1521,     // U+0651 ARABIC SHADDA
    	XK_Arabic_sukun                = 1522,     // U+0652 ARABIC SUKUN
    	XK_Arabic_madda_above          = 16778835, // U+0653 ARABIC MADDAH ABOVE
    	XK_Arabic_hamza_above          = 16778836, // U+0654 ARABIC HAMZA ABOVE
    	XK_Arabic_hamza_below          = 16778837, // U+0655 ARABIC HAMZA BELOW
    	XK_Arabic_jeh                  = 16778904, // U+0698 ARABIC LETTER JEH
    	XK_Arabic_veh                  = 16778916, // U+06A4 ARABIC LETTER VEH
    	XK_Arabic_keheh                = 16778921, // U+06A9 ARABIC LETTER KEHEH
    	XK_Arabic_gaf                  = 16778927, // U+06AF ARABIC LETTER GAF
    	XK_Arabic_noon_ghunna          = 16778938, // U+06BA ARABIC LETTER NOON GHUNNA
    	XK_Arabic_heh_doachashmee      = 16778942, // U+06BE ARABIC LETTER HEH DOACHASHMEE
    	XK_Farsi_yeh                   = 16778956, // U+06CC ARABIC LETTER FARSI YEH
    	XK_Arabic_farsi_yeh            = 16778956, // U+06CC ARABIC LETTER FARSI YEH
    	XK_Arabic_yeh_baree            = 16778962, // U+06D2 ARABIC LETTER YEH BARREE
    	XK_Arabic_heh_goal             = 16778945, // U+06C1 ARABIC LETTER HEH GOAL
    	XK_Arabic_switch               = 65406,    // Alias for mode_switch
    	XK_Cyrillic_GHE_bar            = 16778386, // U+0492 CYRILLIC CAPITAL LETTER GHE WITH STROKE
    	XK_Cyrillic_ghe_bar            = 16778387, // U+0493 CYRILLIC SMALL LETTER GHE WITH STROKE
    	XK_Cyrillic_ZHE_descender      = 16778390, // U+0496 CYRILLIC CAPITAL LETTER ZHE WITH DESCENDER
    	XK_Cyrillic_zhe_descender      = 16778391, // U+0497 CYRILLIC SMALL LETTER ZHE WITH DESCENDER
    	XK_Cyrillic_KA_descender       = 16778394, // U+049A CYRILLIC CAPITAL LETTER KA WITH DESCENDER
    	XK_Cyrillic_ka_descender       = 16778395, // U+049B CYRILLIC SMALL LETTER KA WITH DESCENDER
    	XK_Cyrillic_KA_vertstroke      = 16778396, // U+049C CYRILLIC CAPITAL LETTER KA WITH VERTICAL STROKE
    	XK_Cyrillic_ka_vertstroke      = 16778397, // U+049D CYRILLIC SMALL LETTER KA WITH VERTICAL STROKE
    	XK_Cyrillic_EN_descender       = 16778402, // U+04A2 CYRILLIC CAPITAL LETTER EN WITH DESCENDER
    	XK_Cyrillic_en_descender       = 16778403, // U+04A3 CYRILLIC SMALL LETTER EN WITH DESCENDER
    	XK_Cyrillic_U_straight         = 16778414, // U+04AE CYRILLIC CAPITAL LETTER STRAIGHT U
    	XK_Cyrillic_u_straight         = 16778415, // U+04AF CYRILLIC SMALL LETTER STRAIGHT U
    	XK_Cyrillic_U_straight_bar     = 16778416, // U+04B0 CYRILLIC CAPITAL LETTER STRAIGHT U WITH STROKE
    	XK_Cyrillic_u_straight_bar     = 16778417, // U+04B1 CYRILLIC SMALL LETTER STRAIGHT U WITH STROKE
    	XK_Cyrillic_HA_descender       = 16778418, // U+04B2 CYRILLIC CAPITAL LETTER HA WITH DESCENDER
    	XK_Cyrillic_ha_descender       = 16778419, // U+04B3 CYRILLIC SMALL LETTER HA WITH DESCENDER
    	XK_Cyrillic_CHE_descender      = 16778422, // U+04B6 CYRILLIC CAPITAL LETTER CHE WITH DESCENDER
    	XK_Cyrillic_che_descender      = 16778423, // U+04B7 CYRILLIC SMALL LETTER CHE WITH DESCENDER
    	XK_Cyrillic_CHE_vertstroke     = 16778424, // U+04B8 CYRILLIC CAPITAL LETTER CHE WITH VERTICAL STROKE
    	XK_Cyrillic_che_vertstroke     = 16778425, // U+04B9 CYRILLIC SMALL LETTER CHE WITH VERTICAL STROKE
    	XK_Cyrillic_SHHA               = 16778426, // U+04BA CYRILLIC CAPITAL LETTER SHHA
    	XK_Cyrillic_shha               = 16778427, // U+04BB CYRILLIC SMALL LETTER SHHA
    	XK_Cyrillic_SCHWA              = 16778456, // U+04D8 CYRILLIC CAPITAL LETTER SCHWA
    	XK_Cyrillic_schwa              = 16778457, // U+04D9 CYRILLIC SMALL LETTER SCHWA
    	XK_Cyrillic_I_macron           = 16778466, // U+04E2 CYRILLIC CAPITAL LETTER I WITH MACRON
    	XK_Cyrillic_i_macron           = 16778467, // U+04E3 CYRILLIC SMALL LETTER I WITH MACRON
    	XK_Cyrillic_O_bar              = 16778472, // U+04E8 CYRILLIC CAPITAL LETTER BARRED O
    	XK_Cyrillic_o_bar              = 16778473, // U+04E9 CYRILLIC SMALL LETTER BARRED O
    	XK_Cyrillic_U_macron           = 16778478, // U+04EE CYRILLIC CAPITAL LETTER U WITH MACRON
    	XK_Cyrillic_u_macron           = 16778479, // U+04EF CYRILLIC SMALL LETTER U WITH MACRON
    	XK_Serbian_dje                 = 1697,     // U+0452 CYRILLIC SMALL LETTER DJE
    	XK_Macedonia_gje               = 1698,     // U+0453 CYRILLIC SMALL LETTER GJE
    	XK_Cyrillic_io                 = 1699,     // U+0451 CYRILLIC SMALL LETTER IO
    	XK_Ukrainian_ie                = 1700,     // U+0454 CYRILLIC SMALL LETTER UKRAINIAN IE
    	XK_Ukranian_je                 = 1700,     // deprecated
    	XK_Macedonia_dse               = 1701,     // U+0455 CYRILLIC SMALL LETTER DZE
    	XK_Ukrainian_i                 = 1702,     // U+0456 CYRILLIC SMALL LETTER BYELORUSSIAN-UKRAINIAN I
    	XK_Ukranian_i                  = 1702,     // deprecated
    	XK_Ukrainian_yi                = 1703,     // U+0457 CYRILLIC SMALL LETTER YI
    	XK_Ukranian_yi                 = 1703,     // deprecated
    	XK_Cyrillic_je                 = 1704,     // U+0458 CYRILLIC SMALL LETTER JE
    	XK_Serbian_je                  = 1704,     // deprecated
    	XK_Cyrillic_lje                = 1705,     // U+0459 CYRILLIC SMALL LETTER LJE
    	XK_Serbian_lje                 = 1705,     // deprecated
    	XK_Cyrillic_nje                = 1706,     // U+045A CYRILLIC SMALL LETTER NJE
    	XK_Serbian_nje                 = 1706,     // deprecated
    	XK_Serbian_tshe                = 1707,     // U+045B CYRILLIC SMALL LETTER TSHE
    	XK_Macedonia_kje               = 1708,     // U+045C CYRILLIC SMALL LETTER KJE
    	XK_Ukrainian_ghe_with_upturn   = 1709,     // U+0491 CYRILLIC SMALL LETTER GHE WITH UPTURN
    	XK_Byelorussian_shortu         = 1710,     // U+045E CYRILLIC SMALL LETTER SHORT U
    	XK_Cyrillic_dzhe               = 1711,     // U+045F CYRILLIC SMALL LETTER DZHE
    	XK_Serbian_dze                 = 1711,     // deprecated
    	XK_numerosign                  = 1712,     // U+2116 NUMERO SIGN
    	XK_Serbian_DJE                 = 1713,     // U+0402 CYRILLIC CAPITAL LETTER DJE
    	XK_Macedonia_GJE               = 1714,     // U+0403 CYRILLIC CAPITAL LETTER GJE
    	XK_Cyrillic_IO                 = 1715,     // U+0401 CYRILLIC CAPITAL LETTER IO
    	XK_Ukrainian_IE                = 1716,     // U+0404 CYRILLIC CAPITAL LETTER UKRAINIAN IE
    	XK_Ukranian_JE                 = 1716,     // deprecated
    	XK_Macedonia_DSE               = 1717,     // U+0405 CYRILLIC CAPITAL LETTER DZE
    	XK_Ukrainian_I                 = 1718,     // U+0406 CYRILLIC CAPITAL LETTER BYELORUSSIAN-UKRAINIAN I
    	XK_Ukranian_I                  = 1718,     // deprecated
    	XK_Ukrainian_YI                = 1719,     // U+0407 CYRILLIC CAPITAL LETTER YI
    	XK_Ukranian_YI                 = 1719,     // deprecated
    	XK_Cyrillic_JE                 = 1720,     // U+0408 CYRILLIC CAPITAL LETTER JE
    	XK_Serbian_JE                  = 1720,     // deprecated
    	XK_Cyrillic_LJE                = 1721,     // U+0409 CYRILLIC CAPITAL LETTER LJE
    	XK_Serbian_LJE                 = 1721,     // deprecated
    	XK_Cyrillic_NJE                = 1722,     // U+040A CYRILLIC CAPITAL LETTER NJE
    	XK_Serbian_NJE                 = 1722,     // deprecated
    	XK_Serbian_TSHE                = 1723,     // U+040B CYRILLIC CAPITAL LETTER TSHE
    	XK_Macedonia_KJE               = 1724,     // U+040C CYRILLIC CAPITAL LETTER KJE
    	XK_Ukrainian_GHE_WITH_UPTURN   = 1725,     // U+0490 CYRILLIC CAPITAL LETTER GHE WITH UPTURN
    	XK_Byelorussian_SHORTU         = 1726,     // U+040E CYRILLIC CAPITAL LETTER SHORT U
    	XK_Cyrillic_DZHE               = 1727,     // U+040F CYRILLIC CAPITAL LETTER DZHE
    	XK_Serbian_DZE                 = 1727,     // deprecated
    	XK_Cyrillic_yu                 = 1728,     // U+044E CYRILLIC SMALL LETTER YU
    	XK_Cyrillic_a                  = 1729,     // U+0430 CYRILLIC SMALL LETTER A
    	XK_Cyrillic_be                 = 1730,     // U+0431 CYRILLIC SMALL LETTER BE
    	XK_Cyrillic_tse                = 1731,     // U+0446 CYRILLIC SMALL LETTER TSE
    	XK_Cyrillic_de                 = 1732,     // U+0434 CYRILLIC SMALL LETTER DE
    	XK_Cyrillic_ie                 = 1733,     // U+0435 CYRILLIC SMALL LETTER IE
    	XK_Cyrillic_ef                 = 1734,     // U+0444 CYRILLIC SMALL LETTER EF
    	XK_Cyrillic_ghe                = 1735,     // U+0433 CYRILLIC SMALL LETTER GHE
    	XK_Cyrillic_ha                 = 1736,     // U+0445 CYRILLIC SMALL LETTER HA
    	XK_Cyrillic_i                  = 1737,     // U+0438 CYRILLIC SMALL LETTER I
    	XK_Cyrillic_shorti             = 1738,     // U+0439 CYRILLIC SMALL LETTER SHORT I
    	XK_Cyrillic_ka                 = 1739,     // U+043A CYRILLIC SMALL LETTER KA
    	XK_Cyrillic_el                 = 1740,     // U+043B CYRILLIC SMALL LETTER EL
    	XK_Cyrillic_em                 = 1741,     // U+043C CYRILLIC SMALL LETTER EM
    	XK_Cyrillic_en                 = 1742,     // U+043D CYRILLIC SMALL LETTER EN
    	XK_Cyrillic_o                  = 1743,     // U+043E CYRILLIC SMALL LETTER O
    	XK_Cyrillic_pe                 = 1744,     // U+043F CYRILLIC SMALL LETTER PE
    	XK_Cyrillic_ya                 = 1745,     // U+044F CYRILLIC SMALL LETTER YA
    	XK_Cyrillic_er                 = 1746,     // U+0440 CYRILLIC SMALL LETTER ER
    	XK_Cyrillic_es                 = 1747,     // U+0441 CYRILLIC SMALL LETTER ES
    	XK_Cyrillic_te                 = 1748,     // U+0442 CYRILLIC SMALL LETTER TE
    	XK_Cyrillic_u                  = 1749,     // U+0443 CYRILLIC SMALL LETTER U
    	XK_Cyrillic_zhe                = 1750,     // U+0436 CYRILLIC SMALL LETTER ZHE
    	XK_Cyrillic_ve                 = 1751,     // U+0432 CYRILLIC SMALL LETTER VE
    	XK_Cyrillic_softsign           = 1752,     // U+044C CYRILLIC SMALL LETTER SOFT SIGN
    	XK_Cyrillic_yeru               = 1753,     // U+044B CYRILLIC SMALL LETTER YERU
    	XK_Cyrillic_ze                 = 1754,     // U+0437 CYRILLIC SMALL LETTER ZE
    	XK_Cyrillic_sha                = 1755,     // U+0448 CYRILLIC SMALL LETTER SHA
    	XK_Cyrillic_e                  = 1756,     // U+044D CYRILLIC SMALL LETTER E
    	XK_Cyrillic_shcha              = 1757,     // U+0449 CYRILLIC SMALL LETTER SHCHA
    	XK_Cyrillic_che                = 1758,     // U+0447 CYRILLIC SMALL LETTER CHE
    	XK_Cyrillic_hardsign           = 1759,     // U+044A CYRILLIC SMALL LETTER HARD SIGN
    	XK_Cyrillic_YU                 = 1760,     // U+042E CYRILLIC CAPITAL LETTER YU
    	XK_Cyrillic_A                  = 1761,     // U+0410 CYRILLIC CAPITAL LETTER A
    	XK_Cyrillic_BE                 = 1762,     // U+0411 CYRILLIC CAPITAL LETTER BE
    	XK_Cyrillic_TSE                = 1763,     // U+0426 CYRILLIC CAPITAL LETTER TSE
    	XK_Cyrillic_DE                 = 1764,     // U+0414 CYRILLIC CAPITAL LETTER DE
    	XK_Cyrillic_IE                 = 1765,     // U+0415 CYRILLIC CAPITAL LETTER IE
    	XK_Cyrillic_EF                 = 1766,     // U+0424 CYRILLIC CAPITAL LETTER EF
    	XK_Cyrillic_GHE                = 1767,     // U+0413 CYRILLIC CAPITAL LETTER GHE
    	XK_Cyrillic_HA                 = 1768,     // U+0425 CYRILLIC CAPITAL LETTER HA
    	XK_Cyrillic_I                  = 1769,     // U+0418 CYRILLIC CAPITAL LETTER I
    	XK_Cyrillic_SHORTI             = 1770,     // U+0419 CYRILLIC CAPITAL LETTER SHORT I
    	XK_Cyrillic_KA                 = 1771,     // U+041A CYRILLIC CAPITAL LETTER KA
    	XK_Cyrillic_EL                 = 1772,     // U+041B CYRILLIC CAPITAL LETTER EL
    	XK_Cyrillic_EM                 = 1773,     // U+041C CYRILLIC CAPITAL LETTER EM
    	XK_Cyrillic_EN                 = 1774,     // U+041D CYRILLIC CAPITAL LETTER EN
    	XK_Cyrillic_O                  = 1775,     // U+041E CYRILLIC CAPITAL LETTER O
    	XK_Cyrillic_PE                 = 1776,     // U+041F CYRILLIC CAPITAL LETTER PE
    	XK_Cyrillic_YA                 = 1777,     // U+042F CYRILLIC CAPITAL LETTER YA
    	XK_Cyrillic_ER                 = 1778,     // U+0420 CYRILLIC CAPITAL LETTER ER
    	XK_Cyrillic_ES                 = 1779,     // U+0421 CYRILLIC CAPITAL LETTER ES
    	XK_Cyrillic_TE                 = 1780,     // U+0422 CYRILLIC CAPITAL LETTER TE
    	XK_Cyrillic_U                  = 1781,     // U+0423 CYRILLIC CAPITAL LETTER U
    	XK_Cyrillic_ZHE                = 1782,     // U+0416 CYRILLIC CAPITAL LETTER ZHE
    	XK_Cyrillic_VE                 = 1783,     // U+0412 CYRILLIC CAPITAL LETTER VE
    	XK_Cyrillic_SOFTSIGN           = 1784,     // U+042C CYRILLIC CAPITAL LETTER SOFT SIGN
    	XK_Cyrillic_YERU               = 1785,     // U+042B CYRILLIC CAPITAL LETTER YERU
    	XK_Cyrillic_ZE                 = 1786,     // U+0417 CYRILLIC CAPITAL LETTER ZE
    	XK_Cyrillic_SHA                = 1787,     // U+0428 CYRILLIC CAPITAL LETTER SHA
    	XK_Cyrillic_E                  = 1788,     // U+042D CYRILLIC CAPITAL LETTER E
    	XK_Cyrillic_SHCHA              = 1789,     // U+0429 CYRILLIC CAPITAL LETTER SHCHA
    	XK_Cyrillic_CHE                = 1790,     // U+0427 CYRILLIC CAPITAL LETTER CHE
    	XK_Cyrillic_HARDSIGN           = 1791,     // U+042A CYRILLIC CAPITAL LETTER HARD SIGN
    	XK_Greek_ALPHAaccent           = 1953,     // U+0386 GREEK CAPITAL LETTER ALPHA WITH TONOS
    	XK_Greek_EPSILONaccent         = 1954,     // U+0388 GREEK CAPITAL LETTER EPSILON WITH TONOS
    	XK_Greek_ETAaccent             = 1955,     // U+0389 GREEK CAPITAL LETTER ETA WITH TONOS
    	XK_Greek_IOTAaccent            = 1956,     // U+038A GREEK CAPITAL LETTER IOTA WITH TONOS
    	XK_Greek_IOTAdieresis          = 1957,     // U+03AA GREEK CAPITAL LETTER IOTA WITH DIALYTIKA
    	XK_Greek_IOTAdiaeresis         = 1957,     // old typo
    	XK_Greek_OMICRONaccent         = 1959,     // U+038C GREEK CAPITAL LETTER OMICRON WITH TONOS
    	XK_Greek_UPSILONaccent         = 1960,     // U+038E GREEK CAPITAL LETTER UPSILON WITH TONOS
    	XK_Greek_UPSILONdieresis       = 1961,     // U+03AB GREEK CAPITAL LETTER UPSILON WITH DIALYTIKA
    	XK_Greek_OMEGAaccent           = 1963,     // U+038F GREEK CAPITAL LETTER OMEGA WITH TONOS
    	XK_Greek_accentdieresis        = 1966,     // U+0385 GREEK DIALYTIKA TONOS
    	XK_Greek_horizbar              = 1967,     // U+2015 HORIZONTAL BAR
    	XK_Greek_alphaaccent           = 1969,     // U+03AC GREEK SMALL LETTER ALPHA WITH TONOS
    	XK_Greek_epsilonaccent         = 1970,     // U+03AD GREEK SMALL LETTER EPSILON WITH TONOS
    	XK_Greek_etaaccent             = 1971,     // U+03AE GREEK SMALL LETTER ETA WITH TONOS
    	XK_Greek_iotaaccent            = 1972,     // U+03AF GREEK SMALL LETTER IOTA WITH TONOS
    	XK_Greek_iotadieresis          = 1973,     // U+03CA GREEK SMALL LETTER IOTA WITH DIALYTIKA
    	XK_Greek_iotaaccentdieresis    = 1974,     // U+0390 GREEK SMALL LETTER IOTA WITH DIALYTIKA AND TONOS
    	XK_Greek_omicronaccent         = 1975,     // U+03CC GREEK SMALL LETTER OMICRON WITH TONOS
    	XK_Greek_upsilonaccent         = 1976,     // U+03CD GREEK SMALL LETTER UPSILON WITH TONOS
    	XK_Greek_upsilondieresis       = 1977,     // U+03CB GREEK SMALL LETTER UPSILON WITH DIALYTIKA
    	XK_Greek_upsilonaccentdieresis = 1978,     // U+03B0 GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND TONOS
    	XK_Greek_omegaaccent           = 1979,     // U+03CE GREEK SMALL LETTER OMEGA WITH TONOS
    	XK_Greek_ALPHA                 = 1985,     // U+0391 GREEK CAPITAL LETTER ALPHA
    	XK_Greek_BETA                  = 1986,     // U+0392 GREEK CAPITAL LETTER BETA
    	XK_Greek_GAMMA                 = 1987,     // U+0393 GREEK CAPITAL LETTER GAMMA
    	XK_Greek_DELTA                 = 1988,     // U+0394 GREEK CAPITAL LETTER DELTA
    	XK_Greek_EPSILON               = 1989,     // U+0395 GREEK CAPITAL LETTER EPSILON
    	XK_Greek_ZETA                  = 1990,     // U+0396 GREEK CAPITAL LETTER ZETA
    	XK_Greek_ETA                   = 1991,     // U+0397 GREEK CAPITAL LETTER ETA
    	XK_Greek_THETA                 = 1992,     // U+0398 GREEK CAPITAL LETTER THETA
    	XK_Greek_IOTA                  = 1993,     // U+0399 GREEK CAPITAL LETTER IOTA
    	XK_Greek_KAPPA                 = 1994,     // U+039A GREEK CAPITAL LETTER KAPPA
    	XK_Greek_LAMDA                 = 1995,     // U+039B GREEK CAPITAL LETTER LAMDA
    	XK_Greek_LAMBDA                = 1995,     // U+039B GREEK CAPITAL LETTER LAMDA
    	XK_Greek_MU                    = 1996,     // U+039C GREEK CAPITAL LETTER MU
    	XK_Greek_NU                    = 1997,     // U+039D GREEK CAPITAL LETTER NU
    	XK_Greek_XI                    = 1998,     // U+039E GREEK CAPITAL LETTER XI
    	XK_Greek_OMICRON               = 1999,     // U+039F GREEK CAPITAL LETTER OMICRON
    	XK_Greek_PI                    = 2000,     // U+03A0 GREEK CAPITAL LETTER PI
    	XK_Greek_RHO                   = 2001,     // U+03A1 GREEK CAPITAL LETTER RHO
    	XK_Greek_SIGMA                 = 2002,     // U+03A3 GREEK CAPITAL LETTER SIGMA
    	XK_Greek_TAU                   = 2004,     // U+03A4 GREEK CAPITAL LETTER TAU
    	XK_Greek_UPSILON               = 2005,     // U+03A5 GREEK CAPITAL LETTER UPSILON
    	XK_Greek_PHI                   = 2006,     // U+03A6 GREEK CAPITAL LETTER PHI
    	XK_Greek_CHI                   = 2007,     // U+03A7 GREEK CAPITAL LETTER CHI
    	XK_Greek_PSI                   = 2008,     // U+03A8 GREEK CAPITAL LETTER PSI
    	XK_Greek_OMEGA                 = 2009,     // U+03A9 GREEK CAPITAL LETTER OMEGA
    	XK_Greek_alpha                 = 2017,     // U+03B1 GREEK SMALL LETTER ALPHA
    	XK_Greek_beta                  = 2018,     // U+03B2 GREEK SMALL LETTER BETA
    	XK_Greek_gamma                 = 2019,     // U+03B3 GREEK SMALL LETTER GAMMA
    	XK_Greek_delta                 = 2020,     // U+03B4 GREEK SMALL LETTER DELTA
    	XK_Greek_epsilon               = 2021,     // U+03B5 GREEK SMALL LETTER EPSILON
    	XK_Greek_zeta                  = 2022,     // U+03B6 GREEK SMALL LETTER ZETA
    	XK_Greek_eta                   = 2023,     // U+03B7 GREEK SMALL LETTER ETA
    	XK_Greek_theta                 = 2024,     // U+03B8 GREEK SMALL LETTER THETA
    	XK_Greek_iota                  = 2025,     // U+03B9 GREEK SMALL LETTER IOTA
    	XK_Greek_kappa                 = 2026,     // U+03BA GREEK SMALL LETTER KAPPA
    	XK_Greek_lamda                 = 2027,     // U+03BB GREEK SMALL LETTER LAMDA
    	XK_Greek_lambda                = 2027,     // U+03BB GREEK SMALL LETTER LAMDA
    	XK_Greek_mu                    = 2028,     // U+03BC GREEK SMALL LETTER MU
    	XK_Greek_nu                    = 2029,     // U+03BD GREEK SMALL LETTER NU
    	XK_Greek_xi                    = 2030,     // U+03BE GREEK SMALL LETTER XI
    	XK_Greek_omicron               = 2031,     // U+03BF GREEK SMALL LETTER OMICRON
    	XK_Greek_pi                    = 2032,     // U+03C0 GREEK SMALL LETTER PI
    	XK_Greek_rho                   = 2033,     // U+03C1 GREEK SMALL LETTER RHO
    	XK_Greek_sigma                 = 2034,     // U+03C3 GREEK SMALL LETTER SIGMA
    	XK_Greek_finalsmallsigma       = 2035,     // U+03C2 GREEK SMALL LETTER FINAL SIGMA
    	XK_Greek_tau                   = 2036,     // U+03C4 GREEK SMALL LETTER TAU
    	XK_Greek_upsilon               = 2037,     // U+03C5 GREEK SMALL LETTER UPSILON
    	XK_Greek_phi                   = 2038,     // U+03C6 GREEK SMALL LETTER PHI
    	XK_Greek_chi                   = 2039,     // U+03C7 GREEK SMALL LETTER CHI
    	XK_Greek_psi                   = 2040,     // U+03C8 GREEK SMALL LETTER PSI
    	XK_Greek_omega                 = 2041,     // U+03C9 GREEK SMALL LETTER OMEGA
    	XK_Greek_switch                = 65406,    // Alias for mode_switch
    	XK_leftradical                 = 2209,     // U+23B7 RADICAL SYMBOL BOTTOM
    	XK_topleftradical              = 2210,     // (U+250C BOX DRAWINGS LIGHT DOWN AND RIGHT)
    	XK_horizconnector              = 2211,     // (U+2500 BOX DRAWINGS LIGHT HORIZONTAL)
    	XK_topintegral                 = 2212,     // U+2320 TOP HALF INTEGRAL
    	XK_botintegral                 = 2213,     // U+2321 BOTTOM HALF INTEGRAL
    	XK_vertconnector               = 2214,     // (U+2502 BOX DRAWINGS LIGHT VERTICAL)
    	XK_topleftsqbracket            = 2215,     // U+23A1 LEFT SQUARE BRACKET UPPER CORNER
    	XK_botleftsqbracket            = 2216,     // U+23A3 LEFT SQUARE BRACKET LOWER CORNER
    	XK_toprightsqbracket           = 2217,     // U+23A4 RIGHT SQUARE BRACKET UPPER CORNER
    	XK_botrightsqbracket           = 2218,     // U+23A6 RIGHT SQUARE BRACKET LOWER CORNER
    	XK_topleftparens               = 2219,     // U+239B LEFT PARENTHESIS UPPER HOOK
    	XK_botleftparens               = 2220,     // U+239D LEFT PARENTHESIS LOWER HOOK
    	XK_toprightparens              = 2221,     // U+239E RIGHT PARENTHESIS UPPER HOOK
    	XK_botrightparens              = 2222,     // U+23A0 RIGHT PARENTHESIS LOWER HOOK
    	XK_leftmiddlecurlybrace        = 2223,     // U+23A8 LEFT CURLY BRACKET MIDDLE PIECE
    	XK_rightmiddlecurlybrace       = 2224,     // U+23AC RIGHT CURLY BRACKET MIDDLE PIECE
    	XK_topleftsummation            = 2225, 
    	XK_botleftsummation            = 2226, 
    	XK_topvertsummationconnector   = 2227, 
    	XK_botvertsummationconnector   = 2228, 
    	XK_toprightsummation           = 2229, 
    	XK_botrightsummation           = 2230, 
    	XK_rightmiddlesummation        = 2231, 
    	XK_lessthanequal               = 2236,     // U+2264 LESS-THAN OR EQUAL TO
    	XK_notequal                    = 2237,     // U+2260 NOT EQUAL TO
    	XK_greaterthanequal            = 2238,     // U+2265 GREATER-THAN OR EQUAL TO
    	XK_integral                    = 2239,     // U+222B INTEGRAL
    	XK_therefore                   = 2240,     // U+2234 THEREFORE
    	XK_variation                   = 2241,     // U+221D PROPORTIONAL TO
    	XK_infinity                    = 2242,     // U+221E INFINITY
    	XK_nabla                       = 2245,     // U+2207 NABLA
    	XK_approximate                 = 2248,     // U+223C TILDE OPERATOR
    	XK_similarequal                = 2249,     // U+2243 ASYMPTOTICALLY EQUAL TO
    	XK_ifonlyif                    = 2253,     // U+21D4 LEFT RIGHT DOUBLE ARROW
    	XK_implies                     = 2254,     // U+21D2 RIGHTWARDS DOUBLE ARROW
    	XK_identical                   = 2255,     // U+2261 IDENTICAL TO
    	XK_radical                     = 2262,     // U+221A SQUARE ROOT
    	XK_includedin                  = 2266,     // U+2282 SUBSET OF
    	XK_includes                    = 2267,     // U+2283 SUPERSET OF
    	XK_intersection                = 2268,     // U+2229 INTERSECTION
    	XK_union                       = 2269,     // U+222A UNION
    	XK_logicaland                  = 2270,     // U+2227 LOGICAL AND
    	XK_logicalor                   = 2271,     // U+2228 LOGICAL OR
    	XK_partialderivative           = 2287,     // U+2202 PARTIAL DIFFERENTIAL
    	XK_function                    = 2294,     // U+0192 LATIN SMALL LETTER F WITH HOOK
    	XK_leftarrow                   = 2299,     // U+2190 LEFTWARDS ARROW
    	XK_uparrow                     = 2300,     // U+2191 UPWARDS ARROW
    	XK_rightarrow                  = 2301,     // U+2192 RIGHTWARDS ARROW
    	XK_downarrow                   = 2302,     // U+2193 DOWNWARDS ARROW
    	XK_blank                       = 2527, 
    	XK_soliddiamond                = 2528,     // U+25C6 BLACK DIAMOND
    	XK_checkerboard                = 2529,     // U+2592 MEDIUM SHADE
    	XK_ht                          = 2530,     // U+2409 SYMBOL FOR HORIZONTAL TABULATION
    	XK_ff                          = 2531,     // U+240C SYMBOL FOR FORM FEED
    	XK_cr                          = 2532,     // U+240D SYMBOL FOR CARRIAGE RETURN
    	XK_lf                          = 2533,     // U+240A SYMBOL FOR LINE FEED
    	XK_nl                          = 2536,     // U+2424 SYMBOL FOR NEWLINE
    	XK_vt                          = 2537,     // U+240B SYMBOL FOR VERTICAL TABULATION
    	XK_lowrightcorner              = 2538,     // U+2518 BOX DRAWINGS LIGHT UP AND LEFT
    	XK_uprightcorner               = 2539,     // U+2510 BOX DRAWINGS LIGHT DOWN AND LEFT
    	XK_upleftcorner                = 2540,     // U+250C BOX DRAWINGS LIGHT DOWN AND RIGHT
    	XK_lowleftcorner               = 2541,     // U+2514 BOX DRAWINGS LIGHT UP AND RIGHT
    	XK_crossinglines               = 2542,     // U+253C BOX DRAWINGS LIGHT VERTICAL AND HORIZONTAL
    	XK_horizlinescan1              = 2543,     // U+23BA HORIZONTAL SCAN LINE-1
    	XK_horizlinescan3              = 2544,     // U+23BB HORIZONTAL SCAN LINE-3
    	XK_horizlinescan5              = 2545,     // U+2500 BOX DRAWINGS LIGHT HORIZONTAL
    	XK_horizlinescan7              = 2546,     // U+23BC HORIZONTAL SCAN LINE-7
    	XK_horizlinescan9              = 2547,     // U+23BD HORIZONTAL SCAN LINE-9
    	XK_leftt                       = 2548,     // U+251C BOX DRAWINGS LIGHT VERTICAL AND RIGHT
    	XK_rightt                      = 2549,     // U+2524 BOX DRAWINGS LIGHT VERTICAL AND LEFT
    	XK_bott                        = 2550,     // U+2534 BOX DRAWINGS LIGHT UP AND HORIZONTAL
    	XK_topt                        = 2551,     // U+252C BOX DRAWINGS LIGHT DOWN AND HORIZONTAL
    	XK_vertbar                     = 2552,     // U+2502 BOX DRAWINGS LIGHT VERTICAL
    	XK_emspace                     = 2721,     // U+2003 EM SPACE
    	XK_enspace                     = 2722,     // U+2002 EN SPACE
    	XK_em3space                    = 2723,     // U+2004 THREE-PER-EM SPACE
    	XK_em4space                    = 2724,     // U+2005 FOUR-PER-EM SPACE
    	XK_digitspace                  = 2725,     // U+2007 FIGURE SPACE
    	XK_punctspace                  = 2726,     // U+2008 PUNCTUATION SPACE
    	XK_thinspace                   = 2727,     // U+2009 THIN SPACE
    	XK_hairspace                   = 2728,     // U+200A HAIR SPACE
    	XK_emdash                      = 2729,     // U+2014 EM DASH
    	XK_endash                      = 2730,     // U+2013 EN DASH
    	XK_signifblank                 = 2732,     // (U+2423 OPEN BOX)
    	XK_ellipsis                    = 2734,     // U+2026 HORIZONTAL ELLIPSIS
    	XK_doubbaselinedot             = 2735,     // U+2025 TWO DOT LEADER
    	XK_onethird                    = 2736,     // U+2153 VULGAR FRACTION ONE THIRD
    	XK_twothirds                   = 2737,     // U+2154 VULGAR FRACTION TWO THIRDS
    	XK_onefifth                    = 2738,     // U+2155 VULGAR FRACTION ONE FIFTH
    	XK_twofifths                   = 2739,     // U+2156 VULGAR FRACTION TWO FIFTHS
    	XK_threefifths                 = 2740,     // U+2157 VULGAR FRACTION THREE FIFTHS
    	XK_fourfifths                  = 2741,     // U+2158 VULGAR FRACTION FOUR FIFTHS
    	XK_onesixth                    = 2742,     // U+2159 VULGAR FRACTION ONE SIXTH
    	XK_fivesixths                  = 2743,     // U+215A VULGAR FRACTION FIVE SIXTHS
    	XK_careof                      = 2744,     // U+2105 CARE OF
    	XK_figdash                     = 2747,     // U+2012 FIGURE DASH
    	XK_leftanglebracket            = 2748,     // (U+27E8 MATHEMATICAL LEFT ANGLE BRACKET)
    	XK_decimalpoint                = 2749,     // (U+002E FULL STOP)
    	XK_rightanglebracket           = 2750,     // (U+27E9 MATHEMATICAL RIGHT ANGLE BRACKET)
    	XK_marker                      = 2751, 
    	XK_oneeighth                   = 2755,     // U+215B VULGAR FRACTION ONE EIGHTH
    	XK_threeeighths                = 2756,     // U+215C VULGAR FRACTION THREE EIGHTHS
    	XK_fiveeighths                 = 2757,     // U+215D VULGAR FRACTION FIVE EIGHTHS
    	XK_seveneighths                = 2758,     // U+215E VULGAR FRACTION SEVEN EIGHTHS
    	XK_trademark                   = 2761,     // U+2122 TRADE MARK SIGN
    	XK_signaturemark               = 2762,     // (U+2613 SALTIRE)
    	XK_trademarkincircle           = 2763, 
    	XK_leftopentriangle            = 2764,     // (U+25C1 WHITE LEFT-POINTING TRIANGLE)
    	XK_rightopentriangle           = 2765,     // (U+25B7 WHITE RIGHT-POINTING TRIANGLE)
    	XK_emopencircle                = 2766,     // (U+25CB WHITE CIRCLE)
    	XK_emopenrectangle             = 2767,     // (U+25AF WHITE VERTICAL RECTANGLE)
    	XK_leftsinglequotemark         = 2768,     // U+2018 LEFT SINGLE QUOTATION MARK
    	XK_rightsinglequotemark        = 2769,     // U+2019 RIGHT SINGLE QUOTATION MARK
    	XK_leftdoublequotemark         = 2770,     // U+201C LEFT DOUBLE QUOTATION MARK
    	XK_rightdoublequotemark        = 2771,     // U+201D RIGHT DOUBLE QUOTATION MARK
    	XK_prescription                = 2772,     // U+211E PRESCRIPTION TAKE
    	XK_minutes                     = 2774,     // U+2032 PRIME
    	XK_seconds                     = 2775,     // U+2033 DOUBLE PRIME
    	XK_latincross                  = 2777,     // U+271D LATIN CROSS
    	XK_hexagram                    = 2778, 
    	XK_filledrectbullet            = 2779,     // (U+25AC BLACK RECTANGLE)
    	XK_filledlefttribullet         = 2780,     // (U+25C0 BLACK LEFT-POINTING TRIANGLE)
    	XK_filledrighttribullet        = 2781,     // (U+25B6 BLACK RIGHT-POINTING TRIANGLE)
    	XK_emfilledcircle              = 2782,     // (U+25CF BLACK CIRCLE)
    	XK_emfilledrect                = 2783,     // (U+25AE BLACK VERTICAL RECTANGLE)
    	XK_enopencircbullet            = 2784,     // (U+25E6 WHITE BULLET)
    	XK_enopensquarebullet          = 2785,     // (U+25AB WHITE SMALL SQUARE)
    	XK_openrectbullet              = 2786,     // (U+25AD WHITE RECTANGLE)
    	XK_opentribulletup             = 2787,     // (U+25B3 WHITE UP-POINTING TRIANGLE)
    	XK_opentribulletdown           = 2788,     // (U+25BD WHITE DOWN-POINTING TRIANGLE)
    	XK_openstar                    = 2789,     // (U+2606 WHITE STAR)
    	XK_enfilledcircbullet          = 2790,     // (U+2022 BULLET)
    	XK_enfilledsqbullet            = 2791,     // (U+25AA BLACK SMALL SQUARE)
    	XK_filledtribulletup           = 2792,     // (U+25B2 BLACK UP-POINTING TRIANGLE)
    	XK_filledtribulletdown         = 2793,     // (U+25BC BLACK DOWN-POINTING TRIANGLE)
    	XK_leftpointer                 = 2794,     // (U+261C WHITE LEFT POINTING INDEX)
    	XK_rightpointer                = 2795,     // (U+261E WHITE RIGHT POINTING INDEX)
    	XK_club                        = 2796,     // U+2663 BLACK CLUB SUIT
    	XK_diamond                     = 2797,     // U+2666 BLACK DIAMOND SUIT
    	XK_heart                       = 2798,     // U+2665 BLACK HEART SUIT
    	XK_maltesecross                = 2800,     // U+2720 MALTESE CROSS
    	XK_dagger                      = 2801,     // U+2020 DAGGER
    	XK_doubledagger                = 2802,     // U+2021 DOUBLE DAGGER
    	XK_checkmark                   = 2803,     // U+2713 CHECK MARK
    	XK_ballotcross                 = 2804,     // U+2717 BALLOT X
    	XK_musicalsharp                = 2805,     // U+266F MUSIC SHARP SIGN
    	XK_musicalflat                 = 2806,     // U+266D MUSIC FLAT SIGN
    	XK_malesymbol                  = 2807,     // U+2642 MALE SIGN
    	XK_femalesymbol                = 2808,     // U+2640 FEMALE SIGN
    	XK_telephone                   = 2809,     // U+260E BLACK TELEPHONE
    	XK_telephonerecorder           = 2810,     // U+2315 TELEPHONE RECORDER
    	XK_phonographcopyright         = 2811,     // U+2117 SOUND RECORDING COPYRIGHT
    	XK_caret                       = 2812,     // U+2038 CARET
    	XK_singlelowquotemark          = 2813,     // U+201A SINGLE LOW-9 QUOTATION MARK
    	XK_doublelowquotemark          = 2814,     // U+201E DOUBLE LOW-9 QUOTATION MARK
    	XK_cursor                      = 2815, 
    	XK_leftcaret                   = 2979,     // (U+003C LESS-THAN SIGN)
    	XK_rightcaret                  = 2982,     // (U+003E GREATER-THAN SIGN)
    	XK_downcaret                   = 2984,     // (U+2228 LOGICAL OR)
    	XK_upcaret                     = 2985,     // (U+2227 LOGICAL AND)
    	XK_overbar                     = 3008,     // (U+00AF MACRON)
    	XK_downtack                    = 3010,     // U+22A5 UP TACK
    	XK_upshoe                      = 3011,     // (U+2229 INTERSECTION)
    	XK_downstile                   = 3012,     // U+230A LEFT FLOOR
    	XK_underbar                    = 3014,     // (U+005F LOW LINE)
    	XK_jot                         = 3018,     // U+2218 RING OPERATOR
    	XK_quad                        = 3020,     // U+2395 APL FUNCTIONAL SYMBOL QUAD
    	XK_uptack                      = 3022,     // U+22A4 DOWN TACK
    	XK_circle                      = 3023,     // U+25CB WHITE CIRCLE
    	XK_upstile                     = 3027,     // U+2308 LEFT CEILING
    	XK_downshoe                    = 3030,     // (U+222A UNION)
    	XK_rightshoe                   = 3032,     // (U+2283 SUPERSET OF)
    	XK_leftshoe                    = 3034,     // (U+2282 SUBSET OF)
    	XK_lefttack                    = 3036,     // U+22A2 RIGHT TACK
    	XK_righttack                   = 3068,     // U+22A3 LEFT TACK
    	XK_hebrew_doublelowline        = 3295,     // U+2017 DOUBLE LOW LINE
    	XK_hebrew_aleph                = 3296,     // U+05D0 HEBREW LETTER ALEF
    	XK_hebrew_bet                  = 3297,     // U+05D1 HEBREW LETTER BET
    	XK_hebrew_beth                 = 3297,     // deprecated
    	XK_hebrew_gimel                = 3298,     // U+05D2 HEBREW LETTER GIMEL
    	XK_hebrew_gimmel               = 3298,     // deprecated
    	XK_hebrew_dalet                = 3299,     // U+05D3 HEBREW LETTER DALET
    	XK_hebrew_daleth               = 3299,     // deprecated
    	XK_hebrew_he                   = 3300,     // U+05D4 HEBREW LETTER HE
    	XK_hebrew_waw                  = 3301,     // U+05D5 HEBREW LETTER VAV
    	XK_hebrew_zain                 = 3302,     // U+05D6 HEBREW LETTER ZAYIN
    	XK_hebrew_zayin                = 3302,     // deprecated
    	XK_hebrew_chet                 = 3303,     // U+05D7 HEBREW LETTER HET
    	XK_hebrew_het                  = 3303,     // deprecated
    	XK_hebrew_tet                  = 3304,     // U+05D8 HEBREW LETTER TET
    	XK_hebrew_teth                 = 3304,     // deprecated
    	XK_hebrew_yod                  = 3305,     // U+05D9 HEBREW LETTER YOD
    	XK_hebrew_finalkaph            = 3306,     // U+05DA HEBREW LETTER FINAL KAF
    	XK_hebrew_kaph                 = 3307,     // U+05DB HEBREW LETTER KAF
    	XK_hebrew_lamed                = 3308,     // U+05DC HEBREW LETTER LAMED
    	XK_hebrew_finalmem             = 3309,     // U+05DD HEBREW LETTER FINAL MEM
    	XK_hebrew_mem                  = 3310,     // U+05DE HEBREW LETTER MEM
    	XK_hebrew_finalnun             = 3311,     // U+05DF HEBREW LETTER FINAL NUN
    	XK_hebrew_nun                  = 3312,     // U+05E0 HEBREW LETTER NUN
    	XK_hebrew_samech               = 3313,     // U+05E1 HEBREW LETTER SAMEKH
    	XK_hebrew_samekh               = 3313,     // deprecated
    	XK_hebrew_ayin                 = 3314,     // U+05E2 HEBREW LETTER AYIN
    	XK_hebrew_finalpe              = 3315,     // U+05E3 HEBREW LETTER FINAL PE
    	XK_hebrew_pe                   = 3316,     // U+05E4 HEBREW LETTER PE
    	XK_hebrew_finalzade            = 3317,     // U+05E5 HEBREW LETTER FINAL TSADI
    	XK_hebrew_finalzadi            = 3317,     // deprecated
    	XK_hebrew_zade                 = 3318,     // U+05E6 HEBREW LETTER TSADI
    	XK_hebrew_zadi                 = 3318,     // deprecated
    	XK_hebrew_qoph                 = 3319,     // U+05E7 HEBREW LETTER QOF
    	XK_hebrew_kuf                  = 3319,     // deprecated
    	XK_hebrew_resh                 = 3320,     // U+05E8 HEBREW LETTER RESH
    	XK_hebrew_shin                 = 3321,     // U+05E9 HEBREW LETTER SHIN
    	XK_hebrew_taw                  = 3322,     // U+05EA HEBREW LETTER TAV
    	XK_hebrew_taf                  = 3322,     // deprecated
    	XK_Hebrew_switch               = 65406,    // Alias for mode_switch
    	XK_Thai_kokai                  = 3489,     // U+0E01 THAI CHARACTER KO KAI
    	XK_Thai_khokhai                = 3490,     // U+0E02 THAI CHARACTER KHO KHAI
    	XK_Thai_khokhuat               = 3491,     // U+0E03 THAI CHARACTER KHO KHUAT
    	XK_Thai_khokhwai               = 3492,     // U+0E04 THAI CHARACTER KHO KHWAI
    	XK_Thai_khokhon                = 3493,     // U+0E05 THAI CHARACTER KHO KHON
    	XK_Thai_khorakhang             = 3494,     // U+0E06 THAI CHARACTER KHO RAKHANG
    	XK_Thai_ngongu                 = 3495,     // U+0E07 THAI CHARACTER NGO NGU
    	XK_Thai_chochan                = 3496,     // U+0E08 THAI CHARACTER CHO CHAN
    	XK_Thai_choching               = 3497,     // U+0E09 THAI CHARACTER CHO CHING
    	XK_Thai_chochang               = 3498,     // U+0E0A THAI CHARACTER CHO CHANG
    	XK_Thai_soso                   = 3499,     // U+0E0B THAI CHARACTER SO SO
    	XK_Thai_chochoe                = 3500,     // U+0E0C THAI CHARACTER CHO CHOE
    	XK_Thai_yoying                 = 3501,     // U+0E0D THAI CHARACTER YO YING
    	XK_Thai_dochada                = 3502,     // U+0E0E THAI CHARACTER DO CHADA
    	XK_Thai_topatak                = 3503,     // U+0E0F THAI CHARACTER TO PATAK
    	XK_Thai_thothan                = 3504,     // U+0E10 THAI CHARACTER THO THAN
    	XK_Thai_thonangmontho          = 3505,     // U+0E11 THAI CHARACTER THO NANGMONTHO
    	XK_Thai_thophuthao             = 3506,     // U+0E12 THAI CHARACTER THO PHUTHAO
    	XK_Thai_nonen                  = 3507,     // U+0E13 THAI CHARACTER NO NEN
    	XK_Thai_dodek                  = 3508,     // U+0E14 THAI CHARACTER DO DEK
    	XK_Thai_totao                  = 3509,     // U+0E15 THAI CHARACTER TO TAO
    	XK_Thai_thothung               = 3510,     // U+0E16 THAI CHARACTER THO THUNG
    	XK_Thai_thothahan              = 3511,     // U+0E17 THAI CHARACTER THO THAHAN
    	XK_Thai_thothong               = 3512,     // U+0E18 THAI CHARACTER THO THONG
    	XK_Thai_nonu                   = 3513,     // U+0E19 THAI CHARACTER NO NU
    	XK_Thai_bobaimai               = 3514,     // U+0E1A THAI CHARACTER BO BAIMAI
    	XK_Thai_popla                  = 3515,     // U+0E1B THAI CHARACTER PO PLA
    	XK_Thai_phophung               = 3516,     // U+0E1C THAI CHARACTER PHO PHUNG
    	XK_Thai_fofa                   = 3517,     // U+0E1D THAI CHARACTER FO FA
    	XK_Thai_phophan                = 3518,     // U+0E1E THAI CHARACTER PHO PHAN
    	XK_Thai_fofan                  = 3519,     // U+0E1F THAI CHARACTER FO FAN
    	XK_Thai_phosamphao             = 3520,     // U+0E20 THAI CHARACTER PHO SAMPHAO
    	XK_Thai_moma                   = 3521,     // U+0E21 THAI CHARACTER MO MA
    	XK_Thai_yoyak                  = 3522,     // U+0E22 THAI CHARACTER YO YAK
    	XK_Thai_rorua                  = 3523,     // U+0E23 THAI CHARACTER RO RUA
    	XK_Thai_ru                     = 3524,     // U+0E24 THAI CHARACTER RU
    	XK_Thai_loling                 = 3525,     // U+0E25 THAI CHARACTER LO LING
    	XK_Thai_lu                     = 3526,     // U+0E26 THAI CHARACTER LU
    	XK_Thai_wowaen                 = 3527,     // U+0E27 THAI CHARACTER WO WAEN
    	XK_Thai_sosala                 = 3528,     // U+0E28 THAI CHARACTER SO SALA
    	XK_Thai_sorusi                 = 3529,     // U+0E29 THAI CHARACTER SO RUSI
    	XK_Thai_sosua                  = 3530,     // U+0E2A THAI CHARACTER SO SUA
    	XK_Thai_hohip                  = 3531,     // U+0E2B THAI CHARACTER HO HIP
    	XK_Thai_lochula                = 3532,     // U+0E2C THAI CHARACTER LO CHULA
    	XK_Thai_oang                   = 3533,     // U+0E2D THAI CHARACTER O ANG
    	XK_Thai_honokhuk               = 3534,     // U+0E2E THAI CHARACTER HO NOKHUK
    	XK_Thai_paiyannoi              = 3535,     // U+0E2F THAI CHARACTER PAIYANNOI
    	XK_Thai_saraa                  = 3536,     // U+0E30 THAI CHARACTER SARA A
    	XK_Thai_maihanakat             = 3537,     // U+0E31 THAI CHARACTER MAI HAN-AKAT
    	XK_Thai_saraaa                 = 3538,     // U+0E32 THAI CHARACTER SARA AA
    	XK_Thai_saraam                 = 3539,     // U+0E33 THAI CHARACTER SARA AM
    	XK_Thai_sarai                  = 3540,     // U+0E34 THAI CHARACTER SARA I
    	XK_Thai_saraii                 = 3541,     // U+0E35 THAI CHARACTER SARA II
    	XK_Thai_saraue                 = 3542,     // U+0E36 THAI CHARACTER SARA UE
    	XK_Thai_sarauee                = 3543,     // U+0E37 THAI CHARACTER SARA UEE
    	XK_Thai_sarau                  = 3544,     // U+0E38 THAI CHARACTER SARA U
    	XK_Thai_sarauu                 = 3545,     // U+0E39 THAI CHARACTER SARA UU
    	XK_Thai_phinthu                = 3546,     // U+0E3A THAI CHARACTER PHINTHU
    	XK_Thai_maihanakat_maitho      = 3550, 
    	XK_Thai_baht                   = 3551,     // U+0E3F THAI CURRENCY SYMBOL BAHT
    	XK_Thai_sarae                  = 3552,     // U+0E40 THAI CHARACTER SARA E
    	XK_Thai_saraae                 = 3553,     // U+0E41 THAI CHARACTER SARA AE
    	XK_Thai_sarao                  = 3554,     // U+0E42 THAI CHARACTER SARA O
    	XK_Thai_saraaimaimuan          = 3555,     // U+0E43 THAI CHARACTER SARA AI MAIMUAN
    	XK_Thai_saraaimaimalai         = 3556,     // U+0E44 THAI CHARACTER SARA AI MAIMALAI
    	XK_Thai_lakkhangyao            = 3557,     // U+0E45 THAI CHARACTER LAKKHANGYAO
    	XK_Thai_maiyamok               = 3558,     // U+0E46 THAI CHARACTER MAIYAMOK
    	XK_Thai_maitaikhu              = 3559,     // U+0E47 THAI CHARACTER MAITAIKHU
    	XK_Thai_maiek                  = 3560,     // U+0E48 THAI CHARACTER MAI EK
    	XK_Thai_maitho                 = 3561,     // U+0E49 THAI CHARACTER MAI THO
    	XK_Thai_maitri                 = 3562,     // U+0E4A THAI CHARACTER MAI TRI
    	XK_Thai_maichattawa            = 3563,     // U+0E4B THAI CHARACTER MAI CHATTAWA
    	XK_Thai_thanthakhat            = 3564,     // U+0E4C THAI CHARACTER THANTHAKHAT
    	XK_Thai_nikhahit               = 3565,     // U+0E4D THAI CHARACTER NIKHAHIT
    	XK_Thai_leksun                 = 3568,     // U+0E50 THAI DIGIT ZERO
    	XK_Thai_leknung                = 3569,     // U+0E51 THAI DIGIT ONE
    	XK_Thai_leksong                = 3570,     // U+0E52 THAI DIGIT TWO
    	XK_Thai_leksam                 = 3571,     // U+0E53 THAI DIGIT THREE
    	XK_Thai_leksi                  = 3572,     // U+0E54 THAI DIGIT FOUR
    	XK_Thai_lekha                  = 3573,     // U+0E55 THAI DIGIT FIVE
    	XK_Thai_lekhok                 = 3574,     // U+0E56 THAI DIGIT SIX
    	XK_Thai_lekchet                = 3575,     // U+0E57 THAI DIGIT SEVEN
    	XK_Thai_lekpaet                = 3576,     // U+0E58 THAI DIGIT EIGHT
    	XK_Thai_lekkao                 = 3577,     // U+0E59 THAI DIGIT NINE
    	XK_Hangul                      = 65329,    // Hangul start/stop(toggle)
    	XK_Hangul_Start                = 65330,    // Hangul start
    	XK_Hangul_End                  = 65331,    // Hangul end, English start
    	XK_Hangul_Hanja                = 65332,    // Start Hangul->Hanja Conversion
    	XK_Hangul_Jamo                 = 65333,    // Hangul Jamo mode
    	XK_Hangul_Romaja               = 65334,    // Hangul Romaja mode
    	XK_Hangul_Codeinput            = 65335,    // Hangul code input mode
    	XK_Hangul_Jeonja               = 65336,    // Jeonja mode
    	XK_Hangul_Banja                = 65337,    // Banja mode
    	XK_Hangul_PreHanja             = 65338,    // Pre Hanja conversion
    	XK_Hangul_PostHanja            = 65339,    // Post Hanja conversion
    	XK_Hangul_SingleCandidate      = 65340,    // Single candidate
    	XK_Hangul_MultipleCandidate    = 65341,    // Multiple candidate
    	XK_Hangul_PreviousCandidate    = 65342,    // Previous candidate
    	XK_Hangul_Special              = 65343,    // Special symbols
    	XK_Hangul_switch               = 65406,    // Alias for mode_switch
    	XK_Hangul_Kiyeog               = 3745, 
    	XK_Hangul_SsangKiyeog          = 3746, 
    	XK_Hangul_KiyeogSios           = 3747, 
    	XK_Hangul_Nieun                = 3748, 
    	XK_Hangul_NieunJieuj           = 3749, 
    	XK_Hangul_NieunHieuh           = 3750, 
    	XK_Hangul_Dikeud               = 3751, 
    	XK_Hangul_SsangDikeud          = 3752, 
    	XK_Hangul_Rieul                = 3753, 
    	XK_Hangul_RieulKiyeog          = 3754, 
    	XK_Hangul_RieulMieum           = 3755, 
    	XK_Hangul_RieulPieub           = 3756, 
    	XK_Hangul_RieulSios            = 3757, 
    	XK_Hangul_RieulTieut           = 3758, 
    	XK_Hangul_RieulPhieuf          = 3759, 
    	XK_Hangul_RieulHieuh           = 3760, 
    	XK_Hangul_Mieum                = 3761, 
    	XK_Hangul_Pieub                = 3762, 
    	XK_Hangul_SsangPieub           = 3763, 
    	XK_Hangul_PieubSios            = 3764, 
    	XK_Hangul_Sios                 = 3765, 
    	XK_Hangul_SsangSios            = 3766, 
    	XK_Hangul_Ieung                = 3767, 
    	XK_Hangul_Jieuj                = 3768, 
    	XK_Hangul_SsangJieuj           = 3769, 
    	XK_Hangul_Cieuc                = 3770, 
    	XK_Hangul_Khieuq               = 3771, 
    	XK_Hangul_Tieut                = 3772, 
    	XK_Hangul_Phieuf               = 3773, 
    	XK_Hangul_Hieuh                = 3774, 
    	XK_Hangul_A                    = 3775, 
    	XK_Hangul_AE                   = 3776, 
    	XK_Hangul_YA                   = 3777, 
    	XK_Hangul_YAE                  = 3778, 
    	XK_Hangul_EO                   = 3779, 
    	XK_Hangul_E                    = 3780, 
    	XK_Hangul_YEO                  = 3781, 
    	XK_Hangul_YE                   = 3782, 
    	XK_Hangul_O                    = 3783, 
    	XK_Hangul_WA                   = 3784, 
    	XK_Hangul_WAE                  = 3785, 
    	XK_Hangul_OE                   = 3786, 
    	XK_Hangul_YO                   = 3787, 
    	XK_Hangul_U                    = 3788, 
    	XK_Hangul_WEO                  = 3789, 
    	XK_Hangul_WE                   = 3790, 
    	XK_Hangul_WI                   = 3791, 
    	XK_Hangul_YU                   = 3792, 
    	XK_Hangul_EU                   = 3793, 
    	XK_Hangul_YI                   = 3794, 
    	XK_Hangul_I                    = 3795, 
    	XK_Hangul_J_Kiyeog             = 3796, 
    	XK_Hangul_J_SsangKiyeog        = 3797, 
    	XK_Hangul_J_KiyeogSios         = 3798, 
    	XK_Hangul_J_Nieun              = 3799, 
    	XK_Hangul_J_NieunJieuj         = 3800, 
    	XK_Hangul_J_NieunHieuh         = 3801, 
    	XK_Hangul_J_Dikeud             = 3802, 
    	XK_Hangul_J_Rieul              = 3803, 
    	XK_Hangul_J_RieulKiyeog        = 3804, 
    	XK_Hangul_J_RieulMieum         = 3805, 
    	XK_Hangul_J_RieulPieub         = 3806, 
    	XK_Hangul_J_RieulSios          = 3807, 
    	XK_Hangul_J_RieulTieut         = 3808, 
    	XK_Hangul_J_RieulPhieuf        = 3809, 
    	XK_Hangul_J_RieulHieuh         = 3810, 
    	XK_Hangul_J_Mieum              = 3811, 
    	XK_Hangul_J_Pieub              = 3812, 
    	XK_Hangul_J_PieubSios          = 3813, 
    	XK_Hangul_J_Sios               = 3814, 
    	XK_Hangul_J_SsangSios          = 3815, 
    	XK_Hangul_J_Ieung              = 3816, 
    	XK_Hangul_J_Jieuj              = 3817, 
    	XK_Hangul_J_Cieuc              = 3818, 
    	XK_Hangul_J_Khieuq             = 3819, 
    	XK_Hangul_J_Tieut              = 3820, 
    	XK_Hangul_J_Phieuf             = 3821, 
    	XK_Hangul_J_Hieuh              = 3822, 
    	XK_Hangul_RieulYeorinHieuh     = 3823, 
    	XK_Hangul_SunkyeongeumMieum    = 3824, 
    	XK_Hangul_SunkyeongeumPieub    = 3825, 
    	XK_Hangul_PanSios              = 3826, 
    	XK_Hangul_KkogjiDalrinIeung    = 3827, 
    	XK_Hangul_SunkyeongeumPhieuf   = 3828, 
    	XK_Hangul_YeorinHieuh          = 3829, 
    	XK_Hangul_AraeA                = 3830, 
    	XK_Hangul_AraeAE               = 3831, 
    	XK_Hangul_J_PanSios            = 3832, 
    	XK_Hangul_J_KkogjiDalrinIeung  = 3833, 
    	XK_Hangul_J_YeorinHieuh        = 3834, 
    	XK_Korean_Won                  = 3839,     // (U+20A9 WON SIGN)
    	XK_Armenian_ligature_ew        = 16778631, // U+0587 ARMENIAN SMALL LIGATURE ECH YIWN
    	XK_Armenian_full_stop          = 16778633, // U+0589 ARMENIAN FULL STOP
    	XK_Armenian_verjaket           = 16778633, // U+0589 ARMENIAN FULL STOP
    	XK_Armenian_separation_mark    = 16778589, // U+055D ARMENIAN COMMA
    	XK_Armenian_but                = 16778589, // U+055D ARMENIAN COMMA
    	XK_Armenian_hyphen             = 16778634, // U+058A ARMENIAN HYPHEN
    	XK_Armenian_yentamna           = 16778634, // U+058A ARMENIAN HYPHEN
    	XK_Armenian_exclam             = 16778588, // U+055C ARMENIAN EXCLAMATION MARK
    	XK_Armenian_amanak             = 16778588, // U+055C ARMENIAN EXCLAMATION MARK
    	XK_Armenian_accent             = 16778587, // U+055B ARMENIAN EMPHASIS MARK
    	XK_Armenian_shesht             = 16778587, // U+055B ARMENIAN EMPHASIS MARK
    	XK_Armenian_question           = 16778590, // U+055E ARMENIAN QUESTION MARK
    	XK_Armenian_paruyk             = 16778590, // U+055E ARMENIAN QUESTION MARK
    	XK_Armenian_AYB                = 16778545, // U+0531 ARMENIAN CAPITAL LETTER AYB
    	XK_Armenian_ayb                = 16778593, // U+0561 ARMENIAN SMALL LETTER AYB
    	XK_Armenian_BEN                = 16778546, // U+0532 ARMENIAN CAPITAL LETTER BEN
    	XK_Armenian_ben                = 16778594, // U+0562 ARMENIAN SMALL LETTER BEN
    	XK_Armenian_GIM                = 16778547, // U+0533 ARMENIAN CAPITAL LETTER GIM
    	XK_Armenian_gim                = 16778595, // U+0563 ARMENIAN SMALL LETTER GIM
    	XK_Armenian_DA                 = 16778548, // U+0534 ARMENIAN CAPITAL LETTER DA
    	XK_Armenian_da                 = 16778596, // U+0564 ARMENIAN SMALL LETTER DA
    	XK_Armenian_YECH               = 16778549, // U+0535 ARMENIAN CAPITAL LETTER ECH
    	XK_Armenian_yech               = 16778597, // U+0565 ARMENIAN SMALL LETTER ECH
    	XK_Armenian_ZA                 = 16778550, // U+0536 ARMENIAN CAPITAL LETTER ZA
    	XK_Armenian_za                 = 16778598, // U+0566 ARMENIAN SMALL LETTER ZA
    	XK_Armenian_E                  = 16778551, // U+0537 ARMENIAN CAPITAL LETTER EH
    	XK_Armenian_e                  = 16778599, // U+0567 ARMENIAN SMALL LETTER EH
    	XK_Armenian_AT                 = 16778552, // U+0538 ARMENIAN CAPITAL LETTER ET
    	XK_Armenian_at                 = 16778600, // U+0568 ARMENIAN SMALL LETTER ET
    	XK_Armenian_TO                 = 16778553, // U+0539 ARMENIAN CAPITAL LETTER TO
    	XK_Armenian_to                 = 16778601, // U+0569 ARMENIAN SMALL LETTER TO
    	XK_Armenian_ZHE                = 16778554, // U+053A ARMENIAN CAPITAL LETTER ZHE
    	XK_Armenian_zhe                = 16778602, // U+056A ARMENIAN SMALL LETTER ZHE
    	XK_Armenian_INI                = 16778555, // U+053B ARMENIAN CAPITAL LETTER INI
    	XK_Armenian_ini                = 16778603, // U+056B ARMENIAN SMALL LETTER INI
    	XK_Armenian_LYUN               = 16778556, // U+053C ARMENIAN CAPITAL LETTER LIWN
    	XK_Armenian_lyun               = 16778604, // U+056C ARMENIAN SMALL LETTER LIWN
    	XK_Armenian_KHE                = 16778557, // U+053D ARMENIAN CAPITAL LETTER XEH
    	XK_Armenian_khe                = 16778605, // U+056D ARMENIAN SMALL LETTER XEH
    	XK_Armenian_TSA                = 16778558, // U+053E ARMENIAN CAPITAL LETTER CA
    	XK_Armenian_tsa                = 16778606, // U+056E ARMENIAN SMALL LETTER CA
    	XK_Armenian_KEN                = 16778559, // U+053F ARMENIAN CAPITAL LETTER KEN
    	XK_Armenian_ken                = 16778607, // U+056F ARMENIAN SMALL LETTER KEN
    	XK_Armenian_HO                 = 16778560, // U+0540 ARMENIAN CAPITAL LETTER HO
    	XK_Armenian_ho                 = 16778608, // U+0570 ARMENIAN SMALL LETTER HO
    	XK_Armenian_DZA                = 16778561, // U+0541 ARMENIAN CAPITAL LETTER JA
    	XK_Armenian_dza                = 16778609, // U+0571 ARMENIAN SMALL LETTER JA
    	XK_Armenian_GHAT               = 16778562, // U+0542 ARMENIAN CAPITAL LETTER GHAD
    	XK_Armenian_ghat               = 16778610, // U+0572 ARMENIAN SMALL LETTER GHAD
    	XK_Armenian_TCHE               = 16778563, // U+0543 ARMENIAN CAPITAL LETTER CHEH
    	XK_Armenian_tche               = 16778611, // U+0573 ARMENIAN SMALL LETTER CHEH
    	XK_Armenian_MEN                = 16778564, // U+0544 ARMENIAN CAPITAL LETTER MEN
    	XK_Armenian_men                = 16778612, // U+0574 ARMENIAN SMALL LETTER MEN
    	XK_Armenian_HI                 = 16778565, // U+0545 ARMENIAN CAPITAL LETTER YI
    	XK_Armenian_hi                 = 16778613, // U+0575 ARMENIAN SMALL LETTER YI
    	XK_Armenian_NU                 = 16778566, // U+0546 ARMENIAN CAPITAL LETTER NOW
    	XK_Armenian_nu                 = 16778614, // U+0576 ARMENIAN SMALL LETTER NOW
    	XK_Armenian_SHA                = 16778567, // U+0547 ARMENIAN CAPITAL LETTER SHA
    	XK_Armenian_sha                = 16778615, // U+0577 ARMENIAN SMALL LETTER SHA
    	XK_Armenian_VO                 = 16778568, // U+0548 ARMENIAN CAPITAL LETTER VO
    	XK_Armenian_vo                 = 16778616, // U+0578 ARMENIAN SMALL LETTER VO
    	XK_Armenian_CHA                = 16778569, // U+0549 ARMENIAN CAPITAL LETTER CHA
    	XK_Armenian_cha                = 16778617, // U+0579 ARMENIAN SMALL LETTER CHA
    	XK_Armenian_PE                 = 16778570, // U+054A ARMENIAN CAPITAL LETTER PEH
    	XK_Armenian_pe                 = 16778618, // U+057A ARMENIAN SMALL LETTER PEH
    	XK_Armenian_JE                 = 16778571, // U+054B ARMENIAN CAPITAL LETTER JHEH
    	XK_Armenian_je                 = 16778619, // U+057B ARMENIAN SMALL LETTER JHEH
    	XK_Armenian_RA                 = 16778572, // U+054C ARMENIAN CAPITAL LETTER RA
    	XK_Armenian_ra                 = 16778620, // U+057C ARMENIAN SMALL LETTER RA
    	XK_Armenian_SE                 = 16778573, // U+054D ARMENIAN CAPITAL LETTER SEH
    	XK_Armenian_se                 = 16778621, // U+057D ARMENIAN SMALL LETTER SEH
    	XK_Armenian_VEV                = 16778574, // U+054E ARMENIAN CAPITAL LETTER VEW
    	XK_Armenian_vev                = 16778622, // U+057E ARMENIAN SMALL LETTER VEW
    	XK_Armenian_TYUN               = 16778575, // U+054F ARMENIAN CAPITAL LETTER TIWN
    	XK_Armenian_tyun               = 16778623, // U+057F ARMENIAN SMALL LETTER TIWN
    	XK_Armenian_RE                 = 16778576, // U+0550 ARMENIAN CAPITAL LETTER REH
    	XK_Armenian_re                 = 16778624, // U+0580 ARMENIAN SMALL LETTER REH
    	XK_Armenian_TSO                = 16778577, // U+0551 ARMENIAN CAPITAL LETTER CO
    	XK_Armenian_tso                = 16778625, // U+0581 ARMENIAN SMALL LETTER CO
    	XK_Armenian_VYUN               = 16778578, // U+0552 ARMENIAN CAPITAL LETTER YIWN
    	XK_Armenian_vyun               = 16778626, // U+0582 ARMENIAN SMALL LETTER YIWN
    	XK_Armenian_PYUR               = 16778579, // U+0553 ARMENIAN CAPITAL LETTER PIWR
    	XK_Armenian_pyur               = 16778627, // U+0583 ARMENIAN SMALL LETTER PIWR
    	XK_Armenian_KE                 = 16778580, // U+0554 ARMENIAN CAPITAL LETTER KEH
    	XK_Armenian_ke                 = 16778628, // U+0584 ARMENIAN SMALL LETTER KEH
    	XK_Armenian_O                  = 16778581, // U+0555 ARMENIAN CAPITAL LETTER OH
    	XK_Armenian_o                  = 16778629, // U+0585 ARMENIAN SMALL LETTER OH
    	XK_Armenian_FE                 = 16778582, // U+0556 ARMENIAN CAPITAL LETTER FEH
    	XK_Armenian_fe                 = 16778630, // U+0586 ARMENIAN SMALL LETTER FEH
    	XK_Armenian_apostrophe         = 16778586, // U+055A ARMENIAN APOSTROPHE
    	XK_Georgian_an                 = 16781520, // U+10D0 GEORGIAN LETTER AN
    	XK_Georgian_ban                = 16781521, // U+10D1 GEORGIAN LETTER BAN
    	XK_Georgian_gan                = 16781522, // U+10D2 GEORGIAN LETTER GAN
    	XK_Georgian_don                = 16781523, // U+10D3 GEORGIAN LETTER DON
    	XK_Georgian_en                 = 16781524, // U+10D4 GEORGIAN LETTER EN
    	XK_Georgian_vin                = 16781525, // U+10D5 GEORGIAN LETTER VIN
    	XK_Georgian_zen                = 16781526, // U+10D6 GEORGIAN LETTER ZEN
    	XK_Georgian_tan                = 16781527, // U+10D7 GEORGIAN LETTER TAN
    	XK_Georgian_in                 = 16781528, // U+10D8 GEORGIAN LETTER IN
    	XK_Georgian_kan                = 16781529, // U+10D9 GEORGIAN LETTER KAN
    	XK_Georgian_las                = 16781530, // U+10DA GEORGIAN LETTER LAS
    	XK_Georgian_man                = 16781531, // U+10DB GEORGIAN LETTER MAN
    	XK_Georgian_nar                = 16781532, // U+10DC GEORGIAN LETTER NAR
    	XK_Georgian_on                 = 16781533, // U+10DD GEORGIAN LETTER ON
    	XK_Georgian_par                = 16781534, // U+10DE GEORGIAN LETTER PAR
    	XK_Georgian_zhar               = 16781535, // U+10DF GEORGIAN LETTER ZHAR
    	XK_Georgian_rae                = 16781536, // U+10E0 GEORGIAN LETTER RAE
    	XK_Georgian_san                = 16781537, // U+10E1 GEORGIAN LETTER SAN
    	XK_Georgian_tar                = 16781538, // U+10E2 GEORGIAN LETTER TAR
    	XK_Georgian_un                 = 16781539, // U+10E3 GEORGIAN LETTER UN
    	XK_Georgian_phar               = 16781540, // U+10E4 GEORGIAN LETTER PHAR
    	XK_Georgian_khar               = 16781541, // U+10E5 GEORGIAN LETTER KHAR
    	XK_Georgian_ghan               = 16781542, // U+10E6 GEORGIAN LETTER GHAN
    	XK_Georgian_qar                = 16781543, // U+10E7 GEORGIAN LETTER QAR
    	XK_Georgian_shin               = 16781544, // U+10E8 GEORGIAN LETTER SHIN
    	XK_Georgian_chin               = 16781545, // U+10E9 GEORGIAN LETTER CHIN
    	XK_Georgian_can                = 16781546, // U+10EA GEORGIAN LETTER CAN
    	XK_Georgian_jil                = 16781547, // U+10EB GEORGIAN LETTER JIL
    	XK_Georgian_cil                = 16781548, // U+10EC GEORGIAN LETTER CIL
    	XK_Georgian_char               = 16781549, // U+10ED GEORGIAN LETTER CHAR
    	XK_Georgian_xan                = 16781550, // U+10EE GEORGIAN LETTER XAN
    	XK_Georgian_jhan               = 16781551, // U+10EF GEORGIAN LETTER JHAN
    	XK_Georgian_hae                = 16781552, // U+10F0 GEORGIAN LETTER HAE
    	XK_Georgian_he                 = 16781553, // U+10F1 GEORGIAN LETTER HE
    	XK_Georgian_hie                = 16781554, // U+10F2 GEORGIAN LETTER HIE
    	XK_Georgian_we                 = 16781555, // U+10F3 GEORGIAN LETTER WE
    	XK_Georgian_har                = 16781556, // U+10F4 GEORGIAN LETTER HAR
    	XK_Georgian_hoe                = 16781557, // U+10F5 GEORGIAN LETTER HOE
    	XK_Georgian_fi                 = 16781558, // U+10F6 GEORGIAN LETTER FI
    	XK_Xabovedot                   = 16785034, // U+1E8A LATIN CAPITAL LETTER X WITH DOT ABOVE
    	XK_Ibreve                      = 16777516, // U+012C LATIN CAPITAL LETTER I WITH BREVE
    	XK_Zstroke                     = 16777653, // U+01B5 LATIN CAPITAL LETTER Z WITH STROKE
    	XK_Gcaron                      = 16777702, // U+01E6 LATIN CAPITAL LETTER G WITH CARON
    	XK_Ocaron                      = 16777681, // U+01D2 LATIN CAPITAL LETTER O WITH CARON
    	XK_Obarred                     = 16777631, // U+019F LATIN CAPITAL LETTER O WITH MIDDLE TILDE
    	XK_xabovedot                   = 16785035, // U+1E8B LATIN SMALL LETTER X WITH DOT ABOVE
    	XK_ibreve                      = 16777517, // U+012D LATIN SMALL LETTER I WITH BREVE
    	XK_zstroke                     = 16777654, // U+01B6 LATIN SMALL LETTER Z WITH STROKE
    	XK_gcaron                      = 16777703, // U+01E7 LATIN SMALL LETTER G WITH CARON
    	XK_ocaron                      = 16777682, // U+01D2 LATIN SMALL LETTER O WITH CARON
    	XK_obarred                     = 16777845, // U+0275 LATIN SMALL LETTER BARRED O
    	XK_SCHWA                       = 16777615, // U+018F LATIN CAPITAL LETTER SCHWA
    	XK_schwa                       = 16777817, // U+0259 LATIN SMALL LETTER SCHWA
    	XK_Lbelowdot                   = 16784950, // U+1E36 LATIN CAPITAL LETTER L WITH DOT BELOW
    	XK_lbelowdot                   = 16784951, // U+1E37 LATIN SMALL LETTER L WITH DOT BELOW
    	XK_Abelowdot                   = 16785056, // U+1EA0 LATIN CAPITAL LETTER A WITH DOT BELOW
    	XK_abelowdot                   = 16785057, // U+1EA1 LATIN SMALL LETTER A WITH DOT BELOW
    	XK_Ahook                       = 16785058, // U+1EA2 LATIN CAPITAL LETTER A WITH HOOK ABOVE
    	XK_ahook                       = 16785059, // U+1EA3 LATIN SMALL LETTER A WITH HOOK ABOVE
    	XK_Acircumflexacute            = 16785060, // U+1EA4 LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND ACUTE
    	XK_acircumflexacute            = 16785061, // U+1EA5 LATIN SMALL LETTER A WITH CIRCUMFLEX AND ACUTE
    	XK_Acircumflexgrave            = 16785062, // U+1EA6 LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND GRAVE
    	XK_acircumflexgrave            = 16785063, // U+1EA7 LATIN SMALL LETTER A WITH CIRCUMFLEX AND GRAVE
    	XK_Acircumflexhook             = 16785064, // U+1EA8 LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND HOOK ABOVE
    	XK_acircumflexhook             = 16785065, // U+1EA9 LATIN SMALL LETTER A WITH CIRCUMFLEX AND HOOK ABOVE
    	XK_Acircumflextilde            = 16785066, // U+1EAA LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND TILDE
    	XK_acircumflextilde            = 16785067, // U+1EAB LATIN SMALL LETTER A WITH CIRCUMFLEX AND TILDE
    	XK_Acircumflexbelowdot         = 16785068, // U+1EAC LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND DOT BELOW
    	XK_acircumflexbelowdot         = 16785069, // U+1EAD LATIN SMALL LETTER A WITH CIRCUMFLEX AND DOT BELOW
    	XK_Abreveacute                 = 16785070, // U+1EAE LATIN CAPITAL LETTER A WITH BREVE AND ACUTE
    	XK_abreveacute                 = 16785071, // U+1EAF LATIN SMALL LETTER A WITH BREVE AND ACUTE
    	XK_Abrevegrave                 = 16785072, // U+1EB0 LATIN CAPITAL LETTER A WITH BREVE AND GRAVE
    	XK_abrevegrave                 = 16785073, // U+1EB1 LATIN SMALL LETTER A WITH BREVE AND GRAVE
    	XK_Abrevehook                  = 16785074, // U+1EB2 LATIN CAPITAL LETTER A WITH BREVE AND HOOK ABOVE
    	XK_abrevehook                  = 16785075, // U+1EB3 LATIN SMALL LETTER A WITH BREVE AND HOOK ABOVE
    	XK_Abrevetilde                 = 16785076, // U+1EB4 LATIN CAPITAL LETTER A WITH BREVE AND TILDE
    	XK_abrevetilde                 = 16785077, // U+1EB5 LATIN SMALL LETTER A WITH BREVE AND TILDE
    	XK_Abrevebelowdot              = 16785078, // U+1EB6 LATIN CAPITAL LETTER A WITH BREVE AND DOT BELOW
    	XK_abrevebelowdot              = 16785079, // U+1EB7 LATIN SMALL LETTER A WITH BREVE AND DOT BELOW
    	XK_Ebelowdot                   = 16785080, // U+1EB8 LATIN CAPITAL LETTER E WITH DOT BELOW
    	XK_ebelowdot                   = 16785081, // U+1EB9 LATIN SMALL LETTER E WITH DOT BELOW
    	XK_Ehook                       = 16785082, // U+1EBA LATIN CAPITAL LETTER E WITH HOOK ABOVE
    	XK_ehook                       = 16785083, // U+1EBB LATIN SMALL LETTER E WITH HOOK ABOVE
    	XK_Etilde                      = 16785084, // U+1EBC LATIN CAPITAL LETTER E WITH TILDE
    	XK_etilde                      = 16785085, // U+1EBD LATIN SMALL LETTER E WITH TILDE
    	XK_Ecircumflexacute            = 16785086, // U+1EBE LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND ACUTE
    	XK_ecircumflexacute            = 16785087, // U+1EBF LATIN SMALL LETTER E WITH CIRCUMFLEX AND ACUTE
    	XK_Ecircumflexgrave            = 16785088, // U+1EC0 LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND GRAVE
    	XK_ecircumflexgrave            = 16785089, // U+1EC1 LATIN SMALL LETTER E WITH CIRCUMFLEX AND GRAVE
    	XK_Ecircumflexhook             = 16785090, // U+1EC2 LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND HOOK ABOVE
    	XK_ecircumflexhook             = 16785091, // U+1EC3 LATIN SMALL LETTER E WITH CIRCUMFLEX AND HOOK ABOVE
    	XK_Ecircumflextilde            = 16785092, // U+1EC4 LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND TILDE
    	XK_ecircumflextilde            = 16785093, // U+1EC5 LATIN SMALL LETTER E WITH CIRCUMFLEX AND TILDE
    	XK_Ecircumflexbelowdot         = 16785094, // U+1EC6 LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND DOT BELOW
    	XK_ecircumflexbelowdot         = 16785095, // U+1EC7 LATIN SMALL LETTER E WITH CIRCUMFLEX AND DOT BELOW
    	XK_Ihook                       = 16785096, // U+1EC8 LATIN CAPITAL LETTER I WITH HOOK ABOVE
    	XK_ihook                       = 16785097, // U+1EC9 LATIN SMALL LETTER I WITH HOOK ABOVE
    	XK_Ibelowdot                   = 16785098, // U+1ECA LATIN CAPITAL LETTER I WITH DOT BELOW
    	XK_ibelowdot                   = 16785099, // U+1ECB LATIN SMALL LETTER I WITH DOT BELOW
    	XK_Obelowdot                   = 16785100, // U+1ECC LATIN CAPITAL LETTER O WITH DOT BELOW
    	XK_obelowdot                   = 16785101, // U+1ECD LATIN SMALL LETTER O WITH DOT BELOW
    	XK_Ohook                       = 16785102, // U+1ECE LATIN CAPITAL LETTER O WITH HOOK ABOVE
    	XK_ohook                       = 16785103, // U+1ECF LATIN SMALL LETTER O WITH HOOK ABOVE
    	XK_Ocircumflexacute            = 16785104, // U+1ED0 LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND ACUTE
    	XK_ocircumflexacute            = 16785105, // U+1ED1 LATIN SMALL LETTER O WITH CIRCUMFLEX AND ACUTE
    	XK_Ocircumflexgrave            = 16785106, // U+1ED2 LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND GRAVE
    	XK_ocircumflexgrave            = 16785107, // U+1ED3 LATIN SMALL LETTER O WITH CIRCUMFLEX AND GRAVE
    	XK_Ocircumflexhook             = 16785108, // U+1ED4 LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND HOOK ABOVE
    	XK_ocircumflexhook             = 16785109, // U+1ED5 LATIN SMALL LETTER O WITH CIRCUMFLEX AND HOOK ABOVE
    	XK_Ocircumflextilde            = 16785110, // U+1ED6 LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND TILDE
    	XK_ocircumflextilde            = 16785111, // U+1ED7 LATIN SMALL LETTER O WITH CIRCUMFLEX AND TILDE
    	XK_Ocircumflexbelowdot         = 16785112, // U+1ED8 LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND DOT BELOW
    	XK_ocircumflexbelowdot         = 16785113, // U+1ED9 LATIN SMALL LETTER O WITH CIRCUMFLEX AND DOT BELOW
    	XK_Ohornacute                  = 16785114, // U+1EDA LATIN CAPITAL LETTER O WITH HORN AND ACUTE
    	XK_ohornacute                  = 16785115, // U+1EDB LATIN SMALL LETTER O WITH HORN AND ACUTE
    	XK_Ohorngrave                  = 16785116, // U+1EDC LATIN CAPITAL LETTER O WITH HORN AND GRAVE
    	XK_ohorngrave                  = 16785117, // U+1EDD LATIN SMALL LETTER O WITH HORN AND GRAVE
    	XK_Ohornhook                   = 16785118, // U+1EDE LATIN CAPITAL LETTER O WITH HORN AND HOOK ABOVE
    	XK_ohornhook                   = 16785119, // U+1EDF LATIN SMALL LETTER O WITH HORN AND HOOK ABOVE
    	XK_Ohorntilde                  = 16785120, // U+1EE0 LATIN CAPITAL LETTER O WITH HORN AND TILDE
    	XK_ohorntilde                  = 16785121, // U+1EE1 LATIN SMALL LETTER O WITH HORN AND TILDE
    	XK_Ohornbelowdot               = 16785122, // U+1EE2 LATIN CAPITAL LETTER O WITH HORN AND DOT BELOW
    	XK_ohornbelowdot               = 16785123, // U+1EE3 LATIN SMALL LETTER O WITH HORN AND DOT BELOW
    	XK_Ubelowdot                   = 16785124, // U+1EE4 LATIN CAPITAL LETTER U WITH DOT BELOW
    	XK_ubelowdot                   = 16785125, // U+1EE5 LATIN SMALL LETTER U WITH DOT BELOW
    	XK_Uhook                       = 16785126, // U+1EE6 LATIN CAPITAL LETTER U WITH HOOK ABOVE
    	XK_uhook                       = 16785127, // U+1EE7 LATIN SMALL LETTER U WITH HOOK ABOVE
    	XK_Uhornacute                  = 16785128, // U+1EE8 LATIN CAPITAL LETTER U WITH HORN AND ACUTE
    	XK_uhornacute                  = 16785129, // U+1EE9 LATIN SMALL LETTER U WITH HORN AND ACUTE
    	XK_Uhorngrave                  = 16785130, // U+1EEA LATIN CAPITAL LETTER U WITH HORN AND GRAVE
    	XK_uhorngrave                  = 16785131, // U+1EEB LATIN SMALL LETTER U WITH HORN AND GRAVE
    	XK_Uhornhook                   = 16785132, // U+1EEC LATIN CAPITAL LETTER U WITH HORN AND HOOK ABOVE
    	XK_uhornhook                   = 16785133, // U+1EED LATIN SMALL LETTER U WITH HORN AND HOOK ABOVE
    	XK_Uhorntilde                  = 16785134, // U+1EEE LATIN CAPITAL LETTER U WITH HORN AND TILDE
    	XK_uhorntilde                  = 16785135, // U+1EEF LATIN SMALL LETTER U WITH HORN AND TILDE
    	XK_Uhornbelowdot               = 16785136, // U+1EF0 LATIN CAPITAL LETTER U WITH HORN AND DOT BELOW
    	XK_uhornbelowdot               = 16785137, // U+1EF1 LATIN SMALL LETTER U WITH HORN AND DOT BELOW
    	XK_Ybelowdot                   = 16785140, // U+1EF4 LATIN CAPITAL LETTER Y WITH DOT BELOW
    	XK_ybelowdot                   = 16785141, // U+1EF5 LATIN SMALL LETTER Y WITH DOT BELOW
    	XK_Yhook                       = 16785142, // U+1EF6 LATIN CAPITAL LETTER Y WITH HOOK ABOVE
    	XK_yhook                       = 16785143, // U+1EF7 LATIN SMALL LETTER Y WITH HOOK ABOVE
    	XK_Ytilde                      = 16785144, // U+1EF8 LATIN CAPITAL LETTER Y WITH TILDE
    	XK_ytilde                      = 16785145, // U+1EF9 LATIN SMALL LETTER Y WITH TILDE
    	XK_Ohorn                       = 16777632, // U+01A0 LATIN CAPITAL LETTER O WITH HORN
    	XK_ohorn                       = 16777633, // U+01A1 LATIN SMALL LETTER O WITH HORN
    	XK_Uhorn                       = 16777647, // U+01AF LATIN CAPITAL LETTER U WITH HORN
    	XK_uhorn                       = 16777648, // U+01B0 LATIN SMALL LETTER U WITH HORN
    	XK_EcuSign                     = 16785568, // U+20A0 EURO-CURRENCY SIGN
    	XK_ColonSign                   = 16785569, // U+20A1 COLON SIGN
    	XK_CruzeiroSign                = 16785570, // U+20A2 CRUZEIRO SIGN
    	XK_FFrancSign                  = 16785571, // U+20A3 FRENCH FRANC SIGN
    	XK_LiraSign                    = 16785572, // U+20A4 LIRA SIGN
    	XK_MillSign                    = 16785573, // U+20A5 MILL SIGN
    	XK_NairaSign                   = 16785574, // U+20A6 NAIRA SIGN
    	XK_PesetaSign                  = 16785575, // U+20A7 PESETA SIGN
    	XK_RupeeSign                   = 16785576, // U+20A8 RUPEE SIGN
    	XK_WonSign                     = 16785577, // U+20A9 WON SIGN
    	XK_NewSheqelSign               = 16785578, // U+20AA NEW SHEQEL SIGN
    	XK_DongSign                    = 16785579, // U+20AB DONG SIGN
    	XK_EuroSign                    = 8364,     // U+20AC EURO SIGN
    }
    Related Procedures With Parameters
    Related Procedures With Returns

    KeyboardAutoRepeatMode ¶

    KeyboardAutoRepeatMode :: enum i32 {
    	AutoRepeatModeOff     = 0, 
    	AutoRepeatModeOn      = 1, 
    	AutoRepeatModeDefault = 2, 
    }

    KeyboardControlMask ¶

    KeyboardControlMask :: bit_set[KeyboardControlMaskBits; int]

    KeyboardControlMaskBits ¶

    KeyboardControlMaskBits :: enum int {
    	KBKeyClickPercent = 0, 
    	KBBellPercent     = 1, 
    	KBBellPitch       = 2, 
    	KBBellDuration    = 3, 
    	KBLed             = 4, 
    	KBLedMode         = 5, 
    	KBKey             = 6, 
    	KBAutoRepeatMode  = 7, 
    }

    KeyboardLedMode ¶

    KeyboardLedMode :: enum i32 {
    	LedModeOff = 0, 
    	LedModeOn  = 1, 
    }

    LineStyle ¶

    LineStyle :: enum i32 {
    	LineSolid      = 0, 
    	LineOnOffDash  = 1, 
    	LineDoubleDash = 2, 
    }
    Related Procedures With Parameters

    MappingRequest ¶

    MappingRequest :: enum i32 {
    	MappingModifier = 0, 
    	MappingKeyboard = 1, 
    	MappingPointer  = 2, 
    }

    Mask ¶

    Mask :: distinct uint

    MouseButton ¶

    MouseButton :: enum i32 {
    	Button1 = 1, 
    	Button2 = 2, 
    	Button3 = 3, 
    	Button4 = 4, 
    	Button5 = 5, 
    }

    NotifyDetail ¶

    NotifyDetail :: enum i32 {
    	NotifyAncestor         = 0, 
    	NotifyVirtual          = 1, 
    	NotifyInferior         = 2, 
    	NotifyNonlinear        = 3, 
    	NotifyNonlinearVirtual = 4, 
    	NotifyPointer          = 5, 
    	NotifyPointerRoot      = 6, 
    	NotifyDetailNone       = 7, 
    }

    NotifyMode ¶

    NotifyMode :: enum i32 {
    	NotifyNormal       = 0, 
    	NotifyGrab         = 1, 
    	NotifyUngrab       = 2, 
    	NotifyWhileGrabbed = 3, 
    }

    Pixmap ¶

    Pixmap :: XID

    PropertyState ¶

    PropertyState :: enum i32 {
    	PropertyNewValue = 0, 
    	PropertyDelete   = 1, 
    }

    RRCrtc ¶

    RRCrtc :: XID

    RRMode ¶

    RRMode :: XID

    RROutput ¶

    RROutput :: XID

    Rotation ¶

    Rotation :: enum u16 {
    	Rotate_0   = 1, 
    	Rotate_90  = 2, 
    	Rotate_180 = 4, 
    	Rotate_270 = 8, 
    }

    SaveSetChangeMode ¶

    SaveSetChangeMode :: enum i32 {
    	SetModeInsert = 0, 
    	SetModeDelete = 1, 
    }
    Related Procedures With Parameters

    Screen ¶

    Screen :: struct {
    	ext_data:        ^XExtData,
    	display:         ^XDisplay,
    	root:            XID,
    	width:           i32,
    	height:          i32,
    	mwidth:          i32,
    	mheight:         i32,
    	ndepths:         i32,
    	depths:          ^Depth,
    	root_depth:      i32,
    	root_visual:     ^Visual,
    	default_gc:      GC,
    	cmap:            XID,
    	white_pixel:     uint,
    	black_pixel:     uint,
    	max_maps:        i32,
    	min_maps:        i32,
    	backing_store:   i32,
    	save_unders:     i32,
    	root_input_mask: int,
    }
    Related Procedures With Parameters
    Related Procedures With Returns

    ScreenFormat ¶

    ScreenFormat :: struct {
    	ext_data:       ^XExtData,
    	depth:          i32,
    	bits_per_pixel: i32,
    	scanline_pad:   i32,
    }

    ScreenSaverBlanking ¶

    ScreenSaverBlanking :: enum i32 {
    	DontPreferBlanking = 0, 
    	PreferBlanking     = 1, 
    	DefaultBlanking    = 2, 
    }
    Related Procedures With Parameters

    ScreenSaverForceMode ¶

    ScreenSaverForceMode :: enum i32 {
    	ScreenSaverReset  = 0, 
    	ScreenSaverActive = 1, 
    }
    Related Procedures With Parameters

    ScreenSavingExposures ¶

    ScreenSavingExposures :: enum i32 {
    	DontAllowExposures = 0, 
    	AllowExposures     = 1, 
    	DefaultExposures   = 2, 
    }
    Related Procedures With Parameters

    Shape ¶

    Shape :: enum i32 {
    	Complex   = 0, 
    	Nonconvex = 1, 
    	Convex    = 2, 
    }
    Related Procedures With Parameters

    SizeHints ¶

    SizeHints :: bit_set[SizeHintsBits; uint]

    SizeHintsBits ¶

    SizeHintsBits :: enum int {
    	USPosition  = 0, 
    	USSize      = 1, 
    	PPosition   = 2, 
    	PSize       = 3, 
    	PMinSize    = 4, 
    	PMaxSize    = 5, 
    	PResizeInc  = 6, 
    	PAspect     = 7, 
    	PBaseSize   = 8, 
    	PWinGravity = 9, 
    }

    Status ¶

    Status :: enum i32 {
    	Success             = 0, 
    	BadRequest          = 1, 
    	BadValue            = 2, 
    	BadWindow           = 3, 
    	BadPixmap           = 4, 
    	BadAtom             = 5, 
    	BadCursor           = 6, 
    	BadFont             = 7, 
    	BadMatch            = 8, 
    	BadDrawable         = 9, 
    	BadAccess           = 10, 
    	BadAlloc            = 11, 
    	BadColor            = 12, 
    	BadGC               = 13, 
    	BadIDChoice         = 14, 
    	BadName             = 15, 
    	BadLength           = 16, 
    	BadImplementation   = 17, 
    	FirstExtensionError = 128, 
    	LastExtensionError  = 255, 
    }
     

    NOTE(flysand): Some implementations return Status as enum, other return it as an integer. I will make it a status.

    Related Procedures With Returns

    SubpixelOrder ¶

    SubpixelOrder :: enum u16 {
    	Unknown       = 0, 
    	HorizontalRGB = 1, 
    	HorizontalBGR = 2, 
    	VerticalRGB   = 3, 
    	VerticalBGR   = 4, 
    	None          = 5, 
    }

    SubwindowMode ¶

    SubwindowMode :: enum i32 {
    	ClipByChildren   = 0, 
    	IncludeInferiors = 1, 
    }
    Related Procedures With Parameters

    VisibilityState ¶

    VisibilityState :: enum i32 {
    	VisibilityUnobscured        = 0, 
    	VisibilityPartiallyObscured = 1, 
    	VisibilityFullyObscured     = 2, 
    }

    Visual ¶

    Visual :: struct {
    	ext_data:     ^XExtData,
    	visualid:     VisualID,
    	class:        i32,
    	red_mask:     uint,
    	green_mask:   uint,
    	blue_mask:    uint,
    	bits_per_rgb: i32,
    	map_entries:  i32,
    }
    Related Procedures With Parameters
    Related Procedures With Returns

    VisualID ¶

    VisualID :: distinct uint
    Related Procedures With Returns

    VisualInfoMask ¶

    VisualInfoMask :: bit_set[VisualInfoMaskBits; int]
    Related Constants

    VisualInfoMaskBits ¶

    VisualInfoMaskBits :: enum int {
    	VisualIDMask           = 0, 
    	VisualScreenMask       = 1, 
    	VisualDepthMask        = 2, 
    	VisualClassMask        = 3, 
    	VisualRedMaskMask      = 4, 
    	VisualGreenMaskMask    = 5, 
    	VisualBlueMaskMask     = 6, 
    	VisualColormapSizeMask = 7, 
    	VisualBitsPerRGBMask   = 8, 
    }

    WMHintState ¶

    WMHintState :: enum i32 {
    	WithdrawnState = 0, 
    	NormalState    = 1, 
    	IconicState    = 3, 
    }

    WMHints ¶

    WMHints :: bit_set[WMHintsBits; uint]
    Related Constants

    WMHintsBits ¶

    WMHintsBits :: enum int {
    	InputHint        = 0, 
    	StateHint        = 1, 
    	IconPixmapHint   = 2, 
    	IconWindowHint   = 3, 
    	IconPositionHint = 4, 
    	IconMaskHint     = 5, 
    	WindowGroupHint  = 6, 
    	XUrgencyHint     = 8, 
    }

    Window ¶

    Window :: XID

    WindowAttributeMask ¶

    WindowAttributeMask :: bit_set[WindowAttributeMaskBits; int]

    WindowAttributeMaskBits ¶

    WindowAttributeMaskBits :: enum int {
    	CWBackPixmap       = 0, 
    	CWBackPixel        = 1, 
    	CWBorderPixmap     = 2, 
    	CWBorderPixel      = 3, 
    	CWBitGravity       = 4, 
    	CWWinGravity       = 5, 
    	CWBackingStore     = 6, 
    	CWBackingPlanes    = 7, 
    	CWBackingPixel     = 8, 
    	CWOverrideRedirect = 9, 
    	CWSaveUnder        = 10, 
    	CWEventMask        = 11, 
    	CWDontPropagate    = 12, 
    	CWColormap         = 13, 
    	CWCursor           = 14, 
    }

    WindowChangesMask ¶

    WindowChangesMask :: bit_set[WindowChangesMaskBits; i32]

    WindowChangesMaskBits ¶

    WindowChangesMaskBits :: enum int {
    	CWX           = 0, 
    	CWY           = 1, 
    	CWWidth       = 2, 
    	CWHeight      = 3, 
    	CWBorderWidth = 4, 
    	CWSibling     = 5, 
    	CWStackMode   = 6, 
    }

    WindowClass ¶

    WindowClass :: enum i32 {
    	CopyFromParent = 0, 
    	InputOutput    = 1, 
    	InputOnly      = 2, 
    }
    Related Procedures With Parameters

    WindowMapState ¶

    WindowMapState :: enum i32 {
    	IsUnmapped   = 0, 
    	IsUnviewable = 1, 
    	IsViewable   = 2, 
    }

    WindowStacking ¶

    WindowStacking :: enum i32 {
    	Above    = 0, 
    	Below    = 1, 
    	TopIf    = 2, 
    	BottomIf = 3, 
    	Opposite = 4, 
    }

    XAnyEvent ¶

    XAnyEvent :: struct {
    	type:       EventType,
    	serial:     uint,
    	send_event: b32,
    	display:    ^Display,
    	window:     XID,
    }

    XArc ¶

    XArc :: struct {
    	x:      i16,
    	y:      i16,
    	width:  u16,
    	height: u16,
    	angle1: i16,
    	angle2: i16,
    }
    Related Procedures With Parameters

    XButtonEvent ¶

    XButtonEvent :: struct {
    	type:        EventType,
    	serial:      uint,
    	send_event:  b32,
    	display:     ^Display,
    	window:      XID,
    	root:        XID,
    	subwindow:   XID,
    	time:        Time,
    	x:           i32,
    	y:           i32,
    	x_root:      i32,
    	y_root:      i32,
    	state:       bit_set[InputMaskBits; i32],
    	button:      MouseButton,
    	same_screen: b32,
    }

    XChar2b ¶

    XChar2b :: struct {
    	byte1: u8,
    	byte2: u8,
    }
    Related Procedures With Parameters

    XCharStruct ¶

    XCharStruct :: struct {
    	lbearing:   i16,
    	rbearing:   i16,
    	width:      i16,
    	ascent:     i16,
    	descent:    i16,
    	attributes: u16,
    }
    Related Procedures With Parameters

    XCirculateEvent ¶

    XCirculateEvent :: struct {
    	type:       EventType,
    	serial:     uint,
    	send_event: b32,
    	display:    ^Display,
    	event:      XID,
    	window:     XID,
    	place:      CirculationRequest,
    }

    XCirculateRequestEvent ¶

    XCirculateRequestEvent :: struct {
    	type:       EventType,
    	serial:     uint,
    	send_event: b32,
    	display:    ^Display,
    	parent:     XID,
    	window:     XID,
    	place:      CirculationRequest,
    }

    XClassHint ¶

    XClassHint :: struct {
    	res_name:  cstring,
    	res_class: cstring,
    }
    Related Procedures With Parameters
    Related Procedures With Returns

    XClientMessageEvent ¶

    XClientMessageEvent :: struct {
    	type:         EventType,
    	serial:       uint,
    	send_event:   b32,
    	display:      ^Display,
    	window:       XID,
    	message_type: Atom,
    	format:       i32,
    	data:         struct #raw_union {
    		b: [20]i8,
    		s: [10]i16,
    		l: [5]int,
    	},
    }

    XColor ¶

    XColor :: struct {
    	pixel: uint,
    	red:   u16,
    	green: u16,
    	blue:  u16,
    	flags: u8,
    	pad:   u8,
    }
    Related Procedures With Parameters

    XColormapEvent ¶

    XColormapEvent :: struct {
    	type:       EventType,
    	serial:     uint,
    	send_event: b32,
    	display:    ^Display,
    	window:     XID,
    	colormap:   XID,
    	new:        b32,
    	state:      ColormapState,
    }

    XComposeStatus ¶

    XComposeStatus :: struct {
    	compose_ptr:   rawptr,
    	chars_matched: i32,
    }
    Related Procedures With Parameters

    XConfigureEvent ¶

    XConfigureEvent :: struct {
    	type:              EventType,
    	serial:            uint,
    	send_event:        b32,
    	display:           ^Display,
    	event:             XID,
    	window:            XID,
    	x:                 i32,
    	y:                 i32,
    	width:             i32,
    	height:            i32,
    	border_width:      i32,
    	above:             XID,
    	override_redirect: b32,
    }

    XConfigureRequestEvent ¶

    XConfigureRequestEvent :: struct {
    	type:         EventType,
    	serial:       uint,
    	send_event:   b32,
    	display:      ^Display,
    	parent:       XID,
    	window:       XID,
    	x:            i32,
    	y:            i32,
    	width:        i32,
    	height:       i32,
    	border_width: i32,
    	above:        XID,
    	detail:       WindowStacking,
    	value_mask:   uint,
    }

    XConnectionWatchProc ¶

    XConnectionWatchProc :: proc "c" (display: ^Display, client_data: rawptr, fd: i32, opening: b32, watch_data: rawptr)
    Related Procedures With Parameters

    XContext ¶

    XContext :: i32

    XCreateWindowEvent ¶

    XCreateWindowEvent :: struct {
    	type:              EventType,
    	serial:            uint,
    	send_event:        b32,
    	display:           ^Display,
    	parent:            XID,
    	window:            XID,
    	x:                 i32,
    	y:                 i32,
    	width:             i32,
    	height:            i32,
    	border_width:      i32,
    	override_redirect: b32,
    }

    XCrossingEvent ¶

    XCrossingEvent :: struct {
    	type:        EventType,
    	serial:      uint,
    	send_event:  b32,
    	display:     ^Display,
    	window:      XID,
    	root:        XID,
    	subwindow:   XID,
    	time:        Time,
    	x:           i32,
    	y:           i32,
    	x_root:      i32,
    	y_root:      i32,
    	mode:        NotifyMode,
    	detail:      NotifyDetail,
    	same_screen: b32,
    	focus:       i32,
    	state:       bit_set[InputMaskBits; i32],
    }

    XDestroyWindowEvent ¶

    XDestroyWindowEvent :: struct {
    	type:       EventType,
    	serial:     uint,
    	send_event: b32,
    	display:    ^Display,
    	event:      XID,
    	window:     XID,
    }

    XDisplay ¶

    XDisplay :: struct {}

    XEDataObject ¶

    XEDataObject :: struct #raw_union {
    	display:       ^Display,
    	gc:            GC,
    	visual:        ^Visual,
    	screen:        ^Screen,
    	pixmap_format: ^ScreenFormat,
    	font:          ^XFontStruct,
    }

    XErrorEvent ¶

    XErrorEvent :: struct {
    	type:         EventType,
    	display:      ^Display,
    	resourceid:   XID,
    	serial:       uint,
    	error_code:   u8,
    	request_code: u8,
    	minor_code:   u8,
    }

    XEvent ¶

    XEvent :: struct #raw_union {
    	type:              EventType,
    	xany:              XAnyEvent,
    	xkey:              XKeyEvent,
    	xbutton:           XButtonEvent,
    	xmotion:           XMotionEvent,
    	xcrossing:         XCrossingEvent,
    	xfocus:            XFocusChangeEvent,
    	xexpose:           XExposeEvent,
    	xgraphicsexpose:   XGraphicsExposeEvent,
    	xnoexpose:         XNoExposeEvent,
    	xvisibility:       XVisibilityEvent,
    	xcreatewindow:     XCreateWindowEvent,
    	xdestroywindow:    XDestroyWindowEvent,
    	xunmap:            XUnmapEvent,
    	xmap:              XMapEvent,
    	xmaprequest:       XMapRequestEvent,
    	xreparent:         XReparentEvent,
    	xconfigure:        XConfigureEvent,
    	xgravity:          XGravityEvent,
    	xresizerequest:    XResizeRequestEvent,
    	xconfigurerequest: XConfigureRequestEvent,
    	xcirculate:        XCirculateEvent,
    	xcirculaterequest: XCirculateRequestEvent,
    	xproperty:         XPropertyEvent,
    	xselectionclear:   XSelectionClearEvent,
    	xselectionrequest: XSelectionRequestEvent,
    	xselection:        XSelectionEvent,
    	xcolormap:         XColormapEvent,
    	xclient:           XClientMessageEvent,
    	xmapping:          XMappingEvent,
    	xerror:            XErrorEvent,
    	xkeymap:           XKeymapEvent,
    	xgeneric:          XGenericEvent,
    	xcookie:           XGenericEventCookie,
    	_:                 [24]int,
    }
    Related Procedures With Parameters

    XExposeEvent ¶

    XExposeEvent :: struct {
    	type:       EventType,
    	serial:     uint,
    	send_event: b32,
    	display:    ^Display,
    	window:     XID,
    	x:          i32,
    	y:          i32,
    	width:      i32,
    	height:     i32,
    	count:      i32,
    }

    XExtCodes ¶

    XExtCodes :: struct {
    	extension:    i32,
    	major_opcode: i32,
    	first_event:  i32,
    	first_error:  i32,
    }

    XExtData ¶

    XExtData :: struct {
    	number:       i32,
    	next:         ^XExtData,
    	free_private: proc "c" (extension: ^XExtData) -> Status,
    	private_data: rawptr,
    }

    XFocusChangeEvent ¶

    XFocusChangeEvent :: struct {
    	type:       EventType,
    	serial:     uint,
    	send_event: b32,
    	display:    ^Display,
    	window:     XID,
    	mode:       NotifyMode,
    	detail:     NotifyDetail,
    }

    XFontProp ¶

    XFontProp :: struct {
    	name:   Atom,
    	card32: uint,
    }

    XFontSet ¶

    XFontSet :: XOC

    XFontSetExtents ¶

    XFontSetExtents :: struct {
    	max_ink_extent:     XRectangle,
    	max_logical_extent: XRectangle,
    }

    XFontStruct ¶

    XFontStruct :: struct {
    	ext_data:          ^XExtData,
    	fid:               XID,
    	direction:         u32,
    	min_char_or_byte2: u32,
    	max_char_or_byte2: u32,
    	min_byte1:         u32,
    	max_byte1:         u32,
    	all_chars_exist:   i32,
    	default_char:      u32,
    	n_properties:      i32,
    	properties:        ^XFontProp,
    	min_bounds:        XCharStruct,
    	max_bounds:        XCharStruct,
    	per_char:          ^XCharStruct,
    	ascent:            i32,
    	descent:           i32,
    }
    Related Procedures With Parameters
    Related Procedures With Returns

    XGCValues ¶

    XGCValues :: struct {
    	function:           GCFunction,
    	plane_mask:         uint,
    	foreground:         uint,
    	background:         uint,
    	line_width:         i32,
    	line_style:         LineStyle,
    	cap_style:          CapStyle,
    	join_style:         JoinStyle,
    	fill_style:         FillStyle,
    	fill_rule:          FillRule,
    	arc_mode:           ArcMode,
    	tile:               XID,
    	stipple:            XID,
    	ts_x_origin:        i32,
    	ts_y_origin:        i32,
    	font:               XID,
    	subwindow_mode:     SubwindowMode,
    	graphics_exposures: b32,
    	clip_x_origin:      i32,
    	clip_y_origin:      i32,
    	clip_mask:          XID,
    	dash_offset:        i32,
    	dashes:             i8,
    }
    Related Procedures With Parameters

    XGenericEvent ¶

    XGenericEvent :: struct {
    	type:       EventType,
    	serial:     uint,
    	send_event: b32,
    	display:    ^Display,
    	extension:  i32,
    	evtype:     i32,
    }

    XGenericEventCookie ¶

    XGenericEventCookie :: struct {
    	type:       EventType,
    	serial:     uint,
    	send_event: b32,
    	display:    ^Display,
    	extension:  i32,
    	evtype:     i32,
    	cookie:     u32,
    	data:       rawptr,
    }
    Related Procedures With Parameters

    XGraphicsExposeEvent ¶

    XGraphicsExposeEvent :: struct {
    	type:       EventType,
    	serial:     uint,
    	send_event: b32,
    	display:    ^Display,
    	drawable:   XID,
    	x:          i32,
    	y:          i32,
    	width:      i32,
    	height:     i32,
    	count:      i32,
    	major_code: i32,
    	minor_code: i32,
    }

    XGravityEvent ¶

    XGravityEvent :: struct {
    	type:       EventType,
    	serial:     uint,
    	send_event: b32,
    	display:    ^Display,
    	event:      XID,
    	window:     XID,
    	x:          i32,
    	y:          i32,
    }

    XHostAddress ¶

    XHostAddress :: struct {
    	family:  i32,
    	length:  i32,
    	address: rawptr,
    }
    Related Procedures With Parameters
    Related Procedures With Returns

    XIC ¶

    XIC :: distinct rawptr

    XICCEncodingStyle ¶

    XICCEncodingStyle :: enum i32 {
    	XStringStyle, 
    	XCompoundTextStyle, 
    	XTextStyle, 
    	XStdICCTextStyle, 
    	XUTF8StringStyle, 
    }

    XICCallback ¶

    XICCallback :: struct {
    	client_data: rawptr,
    	callback:    XICProc,
    }

    XICProc ¶

    XICProc :: proc "c" (xim: XIM, client_data: rawptr, call_data: rawptr)

    XID ¶

    XID :: distinct uint
    Related Procedures With Parameters
    Related Procedures With Returns

    XIDProc ¶

    XIDProc :: proc "c" (xim: XIM, client_data: rawptr, call_data: rawptr)

    XIEventMask ¶

    XIEventMask :: struct {
    	deviceid: i32,
    	mask_len: i32,
    	mask:     [^]u8,
    }
    Related Procedures With Parameters

    XIEventType ¶

    XIEventType :: enum i32 {
    	DeviceChanged      = 1, 
    	KeyPress, 
    	KeyRelease, 
    	ButtonPress, 
    	ButtonRelease, 
    	Motion, 
    	Enter, 
    	Leave, 
    	FocusIn, 
    	FocusOut, 
    	HierarchyChanged, 
    	Property, 
    	RawKeyPress, 
    	RawKeyRelease, 
    	RawButtonPress, 
    	RawButtonRelease, 
    	RawMotion, 
    	TouchBegin, 
    	TouchUpdate, 
    	TouchEnd, 
    	TouchOwnership, 
    	RawTouchBegin, 
    	RawTouchUpdate, 
    	RawTouchEnd, 
    	BarrierHit, 
    	BarrierLeave, 
    	GesturePinchBegin, 
    	GesturePinchUpdate, 
    	GesturePinchEnd, 
    	GestureSwipeBegin, 
    	GestureSwipeUpdate, 
    	GestureSwipeEnd, 
    	LastEvent          = 32, 
    }
    Related Procedures With Parameters

    XIM ¶

    XIM :: distinct rawptr
    Related Procedures With Returns

    XIMCallback ¶

    XIMCallback :: struct {
    	client_data: rawptr,
    	callback:    XIMProc,
    }

    XIMCaretDirection ¶

    XIMCaretDirection :: enum i32 {
    	XIMForwardChar      = 0, 
    	XIMBackwardChar     = 1, 
    	XIMForwardWord      = 2, 
    	XIMBackwardWord     = 3, 
    	XIMCaretUp          = 4, 
    	XIMCaretDown        = 5, 
    	XIMNextLine         = 6, 
    	XIMPreviousLine     = 7, 
    	XIMLineStart        = 8, 
    	XIMLineEnd          = 9, 
    	XIMAbsolutePosition = 10, 
    	XIMDontChang        = 11, 
    }

    XIMCaretStyle ¶

    XIMCaretStyle :: enum i32 {
    	XIMIsInvisible, 
    	XIMIsPrimary, 
    	XIMIsSecondary, 
    }

    XIMFeedback ¶

    XIMFeedback :: uint

    XIMHotKeyState ¶

    XIMHotKeyState :: uint

    XIMHotKeyTrigger ¶

    XIMHotKeyTrigger :: struct {
    	keysym:        KeySym,
    	modifier:      i32,
    	modifier_mask: i32,
    }

    XIMHotKeyTriggers ¶

    XIMHotKeyTriggers :: struct {
    	num_hot_key: i32,
    	key:         [^]XIMHotKeyTrigger,
    }

    XIMPreeditCaretCallbackStruct ¶

    XIMPreeditCaretCallbackStruct :: struct {
    	position:  i32,
    	direction: XIMCaretDirection,
    	style:     XIMCaretStyle,
    }

    XIMPreeditDrawCallbackStruct ¶

    XIMPreeditDrawCallbackStruct :: struct {
    	caret:      i32,
    	chg_first:  i32,
    	chg_length: i32,
    	text:       ^XIMText,
    }

    XIMPreeditState ¶

    XIMPreeditState :: uint

    XIMPreeditStateNotifyCallbackStruct ¶

    XIMPreeditStateNotifyCallbackStruct :: struct {
    	state: uint,
    }

    XIMProc ¶

    XIMProc :: proc "c" (xim: XIM, client_data: rawptr, call_data: rawptr)

    XIMResetState ¶

    XIMResetState :: uint

    XIMStatusDataType ¶

    XIMStatusDataType :: enum int {
    	XIMTextType, 
    	XIMBitmapType, 
    }

    XIMStatusDrawCallbackStruct ¶

    XIMStatusDrawCallbackStruct :: struct {
    	type: XIMStatusDataType,
    	data: struct #raw_union {
    		text:   ^XIMText,
    		bitmap: XID,
    	},
    }

    XIMStringConversionCallbackStruct ¶

    XIMStringConversionCallbackStruct :: struct {
    	position:  u16,
    	direction: XIMCaretDirection,
    	operation: u16,
    	factor:    u16,
    	text:      ^XIMStringConversionText,
    }

    XIMStringConversionFeedback ¶

    XIMStringConversionFeedback :: uint

    XIMStringConversionOperation ¶

    XIMStringConversionOperation :: u16

    XIMStringConversionPosition ¶

    XIMStringConversionPosition :: u16

    XIMStringConversionText ¶

    XIMStringConversionText :: struct {
    	length:            u16,
    	feedback:          ^uint,
    	encoding_is_wchar: b32,
    	string:            struct #raw_union {
    		mbs: [^]u8,
    		wcs: [^]rune,
    	},
    }

    XIMStringConversionType ¶

    XIMStringConversionType :: u16

    XIMStyle ¶

    XIMStyle :: uint

    XIMStyles ¶

    XIMStyles :: struct {
    	count_styles:     u16,
    	supported_styles: [^]uint,
    }

    XIMText ¶

    XIMText :: struct {
    	length:            u16,
    	feedback:          ^uint,
    	encoding_is_wchar: b32,
    	string:            struct #raw_union {
    		multi_byte: [^]u8,
    		wide_char:  [^]rune,
    	},
    }

    XIMValuesList ¶

    XIMValuesList :: struct {
    	count_values:     u16,
    	supported_values: [^]cstring,
    }

    XIRawEvent ¶

    XIRawEvent :: struct {
    	type:       EventType,
    	serial:     u64,
    	send_event: b32,
    	display:    ^Display,
    	extension:  i32,
    	evtype:     XIEventType,
    	time:       Time,
    	deviceid:   i32,
    	sourceid:   i32,
    	detail:     i32,
    	flags:      i32,
    	valuators:  XIValuatorState,
    	raw_values: [^]f64,
    }

    XIValuatorState ¶

    XIValuatorState :: struct {
    	mask_len: i32,
    	mask:     [^]u8,
    	values:   [^]f64,
    }

    XIconSize ¶

    XIconSize :: struct {
    	min_width:  i32,
    	min_height: i32,
    	max_width:  i32,
    	max_height: i32,
    	width_inc:  i32,
    	height_inc: i32,
    }
    Related Procedures With Parameters
    Related Procedures With Returns

    XImage ¶

    XImage :: struct {
    	width:            i32,
    	height:           i32,
    	xoffset:          i32,
    	format:           ImageFormat,
    	data:             rawptr,
    	byte_order:       i32,
    	bitmap_unit:      i32,
    	bitmap_bit_order: ByteOrder,
    	bitmap_pad:       i32,
    	depth:            i32,
    	bytes_per_line:   i32,
    	bits_per_pixel:   i32,
    	red_mask:         uint,
    	green_mask:       uint,
    	blue_mask:        uint,
    	obdata:           rawptr,
    	f:                struct {
    		create_image:  proc "c" (display: ^Display, visual: ^Visual, depth: u32, format: i32, offset: i32, data: rawptr, width: u32, height: u32, pad: i32, stride: i32) -> ^XImage,
    		destroy_image: proc "c" (image: ^XImage) -> i32,
    		get_pixel:     proc "c" (image: ^XImage) -> uint,
    		put_pixel:     proc "c" (image: ^XImage, x: i32, y: i32, pixel: uint) -> i32,
    		sub_image:     proc "c" (image: ^XImage, x: i32, y: i32, w: u32, h: u32) -> ^XImage,
    		add_pixel:     proc "c" (image: ^XImage, val: int) -> i32,
    	},
    }
    Related Procedures With Parameters
    Related Procedures With Returns

    XKeyEvent ¶

    XKeyEvent :: struct {
    	type:        EventType,
    	serial:      uint,
    	send_event:  b32,
    	display:     ^Display,
    	window:      XID,
    	root:        XID,
    	subwindow:   XID,
    	time:        Time,
    	x:           i32,
    	y:           i32,
    	x_root:      i32,
    	y_root:      i32,
    	state:       bit_set[InputMaskBits; i32],
    	keycode:     u32,
    	same_screen: b32,
    }
    Related Procedures With Parameters

    XKeyReleasedEvent ¶

    XKeyReleasedEvent :: XKeyEvent

    XKeyboardControl ¶

    XKeyboardControl :: struct {
    	key_click_percent: i32,
    	bell_percent:      i32,
    	bell_pitch:        i32,
    	bell_duration:     i32,
    	led:               i32,
    	led_mode:          KeyboardLedMode,
    	key:               i32,
    	auto_repeat_mode:  KeyboardAutoRepeatMode,
    }
    Related Procedures With Parameters

    XKeyboardState ¶

    XKeyboardState :: struct {
    	key_click_percent:  i32,
    	bell_percent:       i32,
    	bell_pitch:         u32,
    	bell_duration:      u32,
    	led_mask:           uint,
    	global_auto_repeat: i32,
    	auto_repeats:       [32]u8,
    }
    Related Procedures With Parameters

    XKeymapEvent ¶

    XKeymapEvent :: struct {
    	type:       EventType,
    	serial:     uint,
    	send_event: b32,
    	display:    ^Display,
    	window:     XID,
    	key_vector: [32]u8,
    }

    XMapEvent ¶

    XMapEvent :: struct {
    	type:              EventType,
    	serial:            uint,
    	send_event:        b32,
    	display:           ^Display,
    	event:             XID,
    	window:            XID,
    	override_redirect: b32,
    }

    XMapRequestEvent ¶

    XMapRequestEvent :: struct {
    	type:       EventType,
    	serial:     uint,
    	send_event: b32,
    	display:    ^Display,
    	parent:     XID,
    	window:     XID,
    }

    XMappingEvent ¶

    XMappingEvent :: struct {
    	type:          EventType,
    	serial:        uint,
    	send_event:    b32,
    	display:       ^Display,
    	window:        XID,
    	request:       MappingRequest,
    	first_keycode: i32,
    	count:         i32,
    }
    Related Procedures With Parameters

    XModifierKeymap ¶

    XModifierKeymap :: struct {
    	max_keypermod: i32,
    	modifiermap:   ^u8,
    }
    Related Procedures With Parameters
    Related Procedures With Returns

    XMotionEvent ¶

    XMotionEvent :: struct {
    	type:        EventType,
    	serial:      uint,
    	send_event:  b32,
    	display:     ^Display,
    	window:      XID,
    	root:        XID,
    	subwindow:   XID,
    	time:        Time,
    	x:           i32,
    	y:           i32,
    	x_root:      i32,
    	y_root:      i32,
    	state:       bit_set[InputMaskBits; i32],
    	is_hint:     b8,
    	same_screen: b32,
    }

    XNoExposeEvent ¶

    XNoExposeEvent :: struct {
    	type:       EventType,
    	serial:     uint,
    	send_event: b32,
    	display:    ^Display,
    	drawable:   XID,
    	major_code: i32,
    	minor_code: i32,
    }

    XOC ¶

    XOC :: distinct rawptr

    XOM ¶

    XOM :: distinct rawptr

    XOMCharSetList ¶

    XOMCharSetList :: struct {
    	charset_count: i32,
    	charset_list:  [^]cstring,
    }

    XOMFontInfo ¶

    XOMFontInfo :: struct {
    	num_font:         i32,
    	font_struct_list: [^]^XFontStruct,
    	font_name_list:   [^]cstring,
    }

    XOMOrientation ¶

    XOMOrientation :: struct {
    	num_orientation: i32,
    	orientation:     [^]XOrientation,
    }

    XOrientation ¶

    XOrientation :: enum i32 {
    	XOMOrientation_LTR_TTB = 0, 
    	XOMOrientation_RTL_TTB = 1, 
    	XOMOrientation_TTB_LTR = 2, 
    	XOMOrientation_TTB_RTL = 3, 
    	XOMOrientation_Context = 4, 
    }

    XPixmapFormatValues ¶

    XPixmapFormatValues :: struct {
    	depth:          i32,
    	bits_per_pixel: i32,
    	scanline_pad:   i32,
    }
    Related Procedures With Returns

    XPoint ¶

    XPoint :: struct {
    	x: i16,
    	y: i16,
    }
    Related Procedures With Parameters

    XPropertyEvent ¶

    XPropertyEvent :: struct {
    	type:       EventType,
    	serial:     uint,
    	send_event: b32,
    	display:    ^Display,
    	window:     XID,
    	atom:       Atom,
    	time:       Time,
    	state:      PropertyState,
    }

    XRRCrtcInfo ¶

    XRRCrtcInfo :: struct {
    	timestamp: Time,
    	x:         i32,
    	y:         i32,
    	width:     u32,
    	height:    u32,
    	mode:      XID,
    	rotation:  Rotation,
    	noutput:   i32,
    	outputs:   [^]XID,
    	rotations: Rotation,
    	npossible: i32,
    	possible:  [^]XID,
    }
    Related Procedures With Parameters
    Related Procedures With Returns

    XRRModeBits ¶

    XRRModeBits :: enum u8 {
    	RR_HSyncPositive  = 0, 
    	RR_HSyncNegative  = 1, 
    	RR_VSyncPositive  = 2, 
    	RR_VSyncNegative  = 3, 
    	RR_Interlace      = 4, 
    	RR_DoubleScan     = 5, 
    	RR_CSync          = 6, 
    	RR_CSyncPositive  = 7, 
    	RR_CSyncNegative  = 8, 
    	RR_HSkewPresent   = 9, 
    	RR_BCast          = 10, 
    	RR_PixelMultiplex = 11, 
    	RR_DoubleClock    = 12, 
    	RR_ClockDivideBy2 = 13, 
    }

    XRRModeFlags ¶

    XRRModeFlags :: bit_set[XRRModeBits; u64]

    XRRModeInfo ¶

    XRRModeInfo :: struct {
    	id:         XID,
    	width:      u32,
    	height:     u32,
    	dotClock:   u64,
    	hSyncStart: u32,
    	hSyncEnd:   u32,
    	hTotal:     u32,
    	hSkew:      u32,
    	vSyncStart: u32,
    	vSyncEnd:   u32,
    	vTotal:     u32,
    	name:       cstring,
    	nameLength: u32,
    	modeFlags:  bit_set[XRRModeBits; u64],
    }

    XRRMonitorInfo ¶

    XRRMonitorInfo :: struct {
    	name:      Atom,
    	primary:   b32,
    	automatic: b32,
    	noutput:   i32,
    	x:         i32,
    	y:         i32,
    	width:     i32,
    	height:    i32,
    	mwidth:    i32,
    	mheight:   i32,
    	outputs:   [^]XID,
    }
    Related Procedures With Returns

    XRROutputInfo ¶

    XRROutputInfo :: struct {
    	timestamp:      Time,
    	crtc:           XID,
    	name:           cstring,
    	nameLen:        i32,
    	mm_width:       u64,
    	mm_height:      u64,
    	connection:     Connection,
    	subpixel_order: SubpixelOrder,
    	ncrtc:          i32,
    	crtcs:          [^]XID,
    	nclone:         i32,
    	clones:         [^]XID,
    	nmode:          i32,
    	npreferred:     i32,
    	modes:          [^]XID,
    }
    Related Procedures With Parameters
    Related Procedures With Returns

    XRRScreenResources ¶

    XRRScreenResources :: struct {
    	timestamp:       Time,
    	configTimestamp: Time,
    	ncrtc:           i32,
    	crtcs:           [^]XID,
    	noutput:         i32,
    	outputs:         [^]XID,
    	nmode:           i32,
    	modes:           [^]XRRModeInfo,
    }
    Related Procedures With Parameters
    Related Procedures With Returns

    XRRScreenSize ¶

    XRRScreenSize :: struct {
    	width:   i32,
    	height:  i32,
    	mwidth:  i32,
    	mheight: i32,
    }
    Related Procedures With Returns

    XRectangle ¶

    XRectangle :: struct {
    	x:      i16,
    	y:      i16,
    	width:  u16,
    	height: u16,
    }
    Related Procedures With Parameters

    XReparentEvent ¶

    XReparentEvent :: struct {
    	type:              EventType,
    	serial:            uint,
    	send_event:        b32,
    	display:           ^Display,
    	event:             XID,
    	window:            XID,
    	parent:            XID,
    	x:                 i32,
    	y:                 i32,
    	override_redirect: b32,
    }

    XResizeRequestEvent ¶

    XResizeRequestEvent :: struct {
    	type:       EventType,
    	serial:     uint,
    	send_event: b32,
    	display:    ^Display,
    	window:     XID,
    	width:      i32,
    	height:     i32,
    }

    XSegment ¶

    XSegment :: struct {
    	x1: i16,
    	y1: i16,
    	x2: i16,
    	y2: i16,
    }
    Related Procedures With Parameters

    XSelectionClearEvent ¶

    XSelectionClearEvent :: struct {
    	type:       EventType,
    	serial:     uint,
    	send_event: b32,
    	display:    ^Display,
    	window:     XID,
    	selection:  Atom,
    	time:       Time,
    }

    XSelectionEvent ¶

    XSelectionEvent :: struct {
    	type:       EventType,
    	serial:     uint,
    	send_event: b32,
    	display:    ^Display,
    	requestor:  XID,
    	selection:  Atom,
    	target:     Atom,
    	property:   Atom,
    	time:       Time,
    }

    XSelectionRequestEvent ¶

    XSelectionRequestEvent :: struct {
    	type:       EventType,
    	serial:     uint,
    	send_event: b32,
    	display:    ^Display,
    	owner:      XID,
    	requestor:  XID,
    	selection:  Atom,
    	target:     Atom,
    	property:   Atom,
    	time:       Time,
    }

    XServerInterpretedAddress ¶

    XServerInterpretedAddress :: struct {
    	typelength:  i32,
    	valuelength: i32,
    	type:        [^]u8,
    	value:       [^]u8,
    }

    XSetWindowAttributes ¶

    XSetWindowAttributes :: struct {
    	background_pixmap:     XID,
    	background_pixel:      uint,
    	border_pixmap:         XID,
    	border_pixel:          uint,
    	bit_gravity:           Gravity,
    	win_gravity:           Gravity,
    	backing_store:         BackingStore,
    	backing_planes:        uint,
    	backing_pixel:         uint,
    	save_under:            b32,
    	event_mask:            bit_set[EventMaskBits; int],
    	do_not_propagate_mask: bit_set[EventMaskBits; int],
    	override_redirect:     b32,
    	colormap:              XID,
    	cursor:                XID,
    }
    Related Procedures With Parameters

    XSizeHints ¶

    XSizeHints :: struct {
    	flags:       bit_set[SizeHintsBits; uint],
    	x:           i32,
    	y:           i32,
    	width:       i32,
    	height:      i32,
    	min_width:   i32,
    	min_height:  i32,
    	max_width:   i32,
    	max_height:  i32,
    	width_inc:   i32,
    	height_inc:  i32,
    	min_aspect:  struct {
    		x: i32,
    		y: i32,
    	},
    	max_aspect:  struct {
    		x: i32,
    		y: i32,
    	},
    	base_width:  i32,
    	base_height: i32,
    	win_gravity: i32,
    }
    Related Procedures With Parameters
    Related Procedures With Returns

    XStandardColormap ¶

    XStandardColormap :: struct {
    	colormap:   XID,
    	red_max:    uint,
    	red_mult:   uint,
    	green_max:  uint,
    	green_mult: uint,
    	blue_max:   uint,
    	blue_mult:  uint,
    	base_pixel: uint,
    	visualid:   VisualID,
    	killid:     XID,
    }
    Related Procedures With Parameters

    XTextItem ¶

    XTextItem :: struct {
    	chars:  [^]u8,
    	nchars: i32,
    	delta:  i32,
    	font:   XID,
    }
    Related Procedures With Parameters

    XTextItem16 ¶

    XTextItem16 :: struct {
    	chars:  ^XChar2b,
    	nchars: i32,
    	delta:  i32,
    	font:   XID,
    }
    Related Procedures With Parameters

    XTextProperty ¶

    XTextProperty :: struct {
    	value:    [^]u8,
    	encoding: Atom,
    	format:   int,
    	nitems:   uint,
    }
    Related Procedures With Parameters

    XTimeCoord ¶

    XTimeCoord :: struct {
    	time: Time,
    	x:    i16,
    	y:    i16,
    }
    Related Procedures With Returns

    XUnmapEvent ¶

    XUnmapEvent :: struct {
    	type:           EventType,
    	serial:         uint,
    	send_event:     b32,
    	display:        ^Display,
    	event:          XID,
    	window:         XID,
    	from_configure: b32,
    }

    XVaNestedList ¶

    XVaNestedList :: distinct rawptr

    XVisibilityEvent ¶

    XVisibilityEvent :: struct {
    	type:       EventType,
    	serial:     uint,
    	send_event: b32,
    	display:    ^Display,
    	window:     XID,
    	state:      VisibilityState,
    }

    XVisualInfo ¶

    XVisualInfo :: struct {
    	visual:        ^Visual,
    	visualid:      VisualID,
    	screen:        i32,
    	depth:         i32,
    	class:         i32,
    	red_mask:      uint,
    	green_mask:    uint,
    	blue_mask:     uint,
    	colormap_size: i32,
    	bits_per_rgb:  i32,
    }
    Related Procedures With Parameters

    XWMHints ¶

    XWMHints :: struct {
    	flags:         bit_set[WMHintsBits; uint],
    	input:         b32,
    	initial_state: WMHintState,
    	icon_pixmap:   XID,
    	icon_window:   XID,
    	icon_x:        i32,
    	icon_y:        i32,
    	icon_mask:     XID,
    	window_group:  XID,
    }
    Related Procedures With Parameters
    Related Procedures With Returns

    XWindowAttributes ¶

    XWindowAttributes :: struct {
    	x:                     i32,
    	y:                     i32,
    	width:                 i32,
    	height:                i32,
    	border_width:          i32,
    	depth:                 i32,
    	visual:                ^Visual,
    	root:                  XID,
    	class:                 WindowClass,
    	bit_gravity:           Gravity,
    	win_gravity:           Gravity,
    	backing_store:         BackingStore,
    	backing_planes:        uint,
    	backing_pixel:         uint,
    	save_under:            b32,
    	colormap:              XID,
    	map_installed:         b32,
    	map_state:             WindowMapState,
    	all_event_masks:       bit_set[EventMaskBits; int],
    	your_event_mask:       bit_set[EventMaskBits; int],
    	do_not_propagate_mask: bit_set[EventMaskBits; int],
    	override_redirect:     b32,
    	screen:                ^Screen,
    }
    Related Procedures With Parameters

    XWindowChanges ¶

    XWindowChanges :: struct {
    	x:            i32,
    	y:            i32,
    	width:        i32,
    	height:       i32,
    	border_width: i32,
    	sibling:      XID,
    	stack_mode:   WindowStacking,
    }
    Related Procedures With Parameters

    XcmsCCCRec ¶

    XcmsCCCRec :: struct {
    	dpy:                  ^Display,
    	screenNumber:         i32,
    	visual:               ^Visual,
    	clientWhitePt:        XcmsColor,
    	gamutCompProc:        XcmsCompressionProc,
    	gamutCompClientData:  rawptr,
    	whitePtAdjProc:       XcmsWhiteAdjustProc,
    	whitePtAdjClientData: rawptr,
    	pPerScrnInfo:         ^XcmsPerScrnInfo,
    }

    XcmsCIELab ¶

    XcmsCIELab :: struct {
    	L_star: f64,
    	a_star: f64,
    	b_star: f64,
    }

    XcmsCIELuv ¶

    XcmsCIELuv :: struct {
    	L_star: f64,
    	u_star: f64,
    	v_star: f64,
    }

    XcmsCIEXYZ ¶

    XcmsCIEXYZ :: struct {
    	X: f64,
    	Y: f64,
    	Z: f64,
    }

    XcmsCIEuvY ¶

    XcmsCIEuvY :: struct {
    	u_prime: f64,
    	v_prime: f64,
    	Y:       f64,
    }

    XcmsCIExyY ¶

    XcmsCIExyY :: struct {
    	x: f64,
    	y: f64,
    	Y: f64,
    }

    XcmsColorFormat ¶

    XcmsColorFormat :: uint

    XcmsColorSpace ¶

    XcmsColorSpace :: struct {
    	prefix:       cstring,
    	id:           uint,
    	parseString:  XcmsParseStringProc,
    	to_CIEXYZ:    [^]XcmsDIConversionProc,
    	from_CIEXYZ:  [^]XcmsDIConversionProc,
    	inverse_flag: i32,
    }

    XcmsCompressionProc ¶

    XcmsCompressionProc :: proc "c" (ctx: XcmsCCC, colors: [^]XcmsColor, ncolors: u32, index: u32, flags: [^]b32) -> Status
    Related Procedures With Parameters

    XcmsDDConversionProc ¶

    XcmsDDConversionProc :: proc "c" (ctx: XcmsCCC, colors: [^]XcmsColor, ncolors: u32, compressed: [^]b32) -> i32

    XcmsDIConversionProc ¶

    XcmsDIConversionProc :: proc "c" (ctx: XcmsCCC, white_point: ^XcmsColor, colors: ^XcmsColor, ncolors: u32) -> i32

    XcmsFloat ¶

    XcmsFloat :: f64

    XcmsFunctionSet ¶

    XcmsFunctionSet :: struct {
    	DDColorSpaces:  [^]^XcmsColorSpace,
    	screenInitProc: XcmsScreenInitProc,
    	screenFreeProc: XcmsScreenFreeProc,
    }

    XcmsPad ¶

    XcmsPad :: struct {
    	_: f64,
    	_: f64,
    	_: f64,
    	_: f64,
    }

    XcmsParseStringProc ¶

    XcmsParseStringProc :: proc "c" (color_string: cstring, color: ^XcmsColor) -> i32

    XcmsPerScrnInfo ¶

    XcmsPerScrnInfo :: struct {
    	screenWhitePt: XcmsColor,
    	functionSet:   rawptr,
    	screenData:    rawptr,
    	state:         u8,
    	_:             [3]u8,
    }

    XcmsRGB ¶

    XcmsRGB :: struct {
    	red:   u16,
    	green: u16,
    	blue:  u16,
    }

    XcmsRGBi ¶

    XcmsRGBi :: struct {
    	red:   f64,
    	green: f64,
    	blue:  f64,
    }

    XcmsScreenFreeProc ¶

    XcmsScreenFreeProc :: proc "c" (screen: rawptr)

    XcmsScreenInitProc ¶

    XcmsScreenInitProc :: proc "c" (display: ^Display, screen_number: i32, screen_info: ^XcmsPerScrnInfo) -> i32

    XcmsTekHVC ¶

    XcmsTekHVC :: struct {
    	H: f64,
    	V: f64,
    	C: f64,
    }

    XcmsWhiteAdjustProc ¶

    XcmsWhiteAdjustProc :: proc "c" (ctx: XcmsCCC, initial_white_point: ^XcmsColor, target_white_point: ^XcmsColor, target_format: uint, colors: [^]XcmsColor, ncolors: u32, compression: [^]b32) -> Status
    Related Procedures With Parameters

    XkbAccessXNotifyEvent ¶

    XkbAccessXNotifyEvent :: struct {
    	type:           i32,
    	serial:         u64,
    	send_event:     b32,
    	display:        ^Display,
    	time:           Time,
    	xkb_type:       XkbEventType,
    	device:         i32,
    	detail:         i32,
    	keycode:        i32,
    	sk_delay:       i32,
    	debounce_delay: i32,
    }

    XkbAction ¶

    XkbAction :: struct #raw_union {
    	any:      XkbAnyAction,
    	mod:      XkbModAction,
    	group:    XkbGroupAction,
    	iso:      XkbISOAction,
    	ptr:      XkbPtrAction,
    	btn:      XkbPtrBtnAction,
    	dflt:     XkbPtrDfltAction,
    	screen:   XkbSwitchScreenAction,
    	ctrls:    XkbCtrlsAction,
    	msg:      XkbMessageAction,
    	redirect: XkbRedirectKeyAction,
    	devbtn:   XkbDeviceBtnAction,
    	devval:   XkbDeviceValuatorAction,
    	type:     u8,
    }

    XkbActionMessageEvent ¶

    XkbActionMessageEvent :: struct {
    	type:              i32,
    	serial:            u64,
    	send_event:        b32,
    	display:           ^Display,
    	time:              Time,
    	xkb_type:          XkbEventType,
    	device:            i32,
    	keycode:           u8,
    	press:             b32,
    	key_event_follows: b32,
    	group:             i32,
    	mods:              u32,
    	message:           [7]i8,
    }

    XkbAnyAction ¶

    XkbAnyAction :: struct {
    	type: u8,
    	data: [7]u8,
    }

    XkbAnyDoodadRec ¶

    XkbAnyDoodadRec :: struct {
    	name:     Atom,
    	type:     u8,
    	priority: u8,
    	top:      i16,
    	left:     i16,
    	angle:    i16,
    }

    XkbAnyEvent ¶

    XkbAnyEvent :: struct {
    	type:       i32,
    	serial:     u64,
    	send_event: b32,
    	display:    ^Display,
    	time:       Time,
    	xkb_type:   XkbEventType,
    	device:     u32,
    }

    XkbBehavior ¶

    XkbBehavior :: struct {
    	type: u8,
    	data: u8,
    }

    XkbBellNotifyEvent ¶

    XkbBellNotifyEvent :: struct {
    	type:       i32,
    	serial:     u64,
    	send_event: b32,
    	display:    ^Display,
    	time:       Time,
    	xkb_type:   XkbEventType,
    	device:     i32,
    	percent:    i32,
    	pitch:      i32,
    	duration:   i32,
    	bell_class: i32,
    	bell_id:    i32,
    	name:       Atom,
    	window:     XID,
    	event_only: b32,
    }

    XkbBoundsRec ¶

    XkbBoundsRec :: struct {
    	x1: i16,
    	x2: i16,
    	y1: i16,
    	y2: i16,
    }

    XkbClientMapRec ¶

    XkbClientMapRec :: struct {
    	size_types:  u8,
    	num_types:   u8,
    	types:       [^]XkbKeyTypeRec,
    	size_syms:   u16,
    	num_syms:    u16,
    	syms:        [^]XID,
    	// Keysym
    	key_sym_map: [^]XkbSymMapRec,
    	modmap:      [^]u8,
    }

    XkbColorRec ¶

    XkbColorRec :: struct {
    	pixel: u32,
    	spec:  ^u8,
    }

    XkbCompatMapNotifyEvent ¶

    XkbCompatMapNotifyEvent :: struct {
    	type:           i32,
    	serial:         u64,
    	send_event:     b32,
    	display:        ^Display,
    	time:           Time,
    	xkb_type:       XkbEventType,
    	device:         i32,
    	changed_groups: u32,
    	first_si:       i32,
    	num_si:         i32,
    	num_total_si:   i32,
    }

    XkbCompatMapRec ¶

    XkbCompatMapRec :: struct {
    	sym_interpret: [^]XkbSymInterpretRec,
    	groups:        [4]XkbModsRec,
    	num_si:        u16,
    	size_si:       u16,
    }

    XkbControlsNotifyEvent ¶

    XkbControlsNotifyEvent :: struct {
    	type:                  i32,
    	serial:                u64,
    	send_event:            b32,
    	display:               ^Display,
    	time:                  Time,
    	xkb_type:              XkbEventType,
    	device:                i32,
    	changed_ctrls:         u32,
    	enabled_ctrls:         u32,
    	enabled_ctrls_changes: u32,
    	num_groups:            i32,
    	keycode:               u8,
    	event_type:            i8,
    	req_major:             i8,
    	req_minor:             i8,
    }

    XkbControlsRec ¶

    XkbControlsRec :: struct {
    	mk_dflt_btn:      u8,
    	num_groups:       u8,
    	groups_wrap:      u8,
    	internal:         XkbModsRec,
    	ignore_lock:      XkbModsRec,
    	enabled_ctrls:    u32,
    	repeat_delay:     u16,
    	repeat_interval:  u16,
    	slow_keys_delay:  u16,
    	debounce_delay:   u16,
    	mk_delay:         u16,
    	mk_interval:      u16,
    	mk_time_to_max:   u16,
    	mk_max_speed:     u16,
    	mk_curve:         i16,
    	ax_options:       u16,
    	ax_timeout:       u16,
    	axt_opts_mask:    u16,
    	axt_opts_values:  u16,
    	axt_ctrls_mask:   u32,
    	axt_ctrls_values: u32,
    	per_key_repeat:   [32]u8,
    }

    XkbCtrlsAction ¶

    XkbCtrlsAction :: struct {
    	type:   u8,
    	flags:  u8,
    	ctrls3: u8,
    	ctrls2: u8,
    	ctrls1: u8,
    	ctrls0: u8,
    }

    XkbDescRec ¶

    XkbDescRec :: struct {
    	display:      ^Display,
    	flags:        u16,
    	device_spec:  u16,
    	min_key_code: u8,
    	max_key_code: u8,
    	ctrls:        ^XkbControlsRec,
    	server:       ^XkbServerMapRec,
    	_map:         ^XkbClientMapRec,
    	indicators:   ^XkbIndicatorRec,
    	names:        ^XkbNamesRec,
    	compat:       ^XkbCompatMapRec,
    	geom:         ^XkbGeometryRec,
    }
    Related Procedures With Parameters
    Related Procedures With Returns

    XkbDeviceBtnAction ¶

    XkbDeviceBtnAction :: struct {
    	type:   u8,
    	flags:  u8,
    	count:  u8,
    	button: u8,
    	device: u8,
    }

    XkbDeviceValuatorAction ¶

    XkbDeviceValuatorAction :: struct {
    	type:     u8,
    	device:   u8,
    	v1_what:  u8,
    	v1_ndx:   u8,
    	v1_value: u8,
    	v2_what:  u8,
    	v2_ndx:   u8,
    	v2_value: u8,
    }

    XkbDoodadRec ¶

    XkbDoodadRec :: struct #raw_union {
    	any:       XkbAnyDoodadRec,
    	shape:     XkbShapeDoodadRec,
    	text:      XkbTextDoodadRec,
    	indicator: XkbIndicatorDoodadRec,
    	logo:      XkbLogoDoodadRec,
    }

    XkbEventMask ¶

    XkbEventMask :: bit_set[XkbEventType; int]
    Related Constants

    XkbEventType ¶

    XkbEventType :: enum i32 {
    	NewKeyboardNotify     = 0, 
    	MapNotify             = 1, 
    	StateNotify           = 2, 
    	ControlsNotify        = 3, 
    	IndicatorStateNotify  = 4, 
    	IndicatorMapNotify    = 5, 
    	NamesNotify           = 6, 
    	CompatMapNotify       = 7, 
    	BellNotify            = 8, 
    	ActionMessage         = 9, 
    	AccessXNotify         = 10, 
    	ExtensionDeviceNotify = 11, 
    }

    XkbExtensionDeviceNotifyEvent ¶

    XkbExtensionDeviceNotifyEvent :: struct {
    	type:         i32,
    	serial:       u64,
    	send_event:   b32,
    	display:      ^Display,
    	time:         Time,
    	xkb_type:     XkbEventType,
    	device:       i32,
    	reason:       u32,
    	supported:    u32,
    	unsupported:  u32,
    	first_btn:    i32,
    	num_btns:     i32,
    	leds_defined: u32,
    	led_state:    u32,
    	led_class:    i32,
    	led_id:       i32,
    }

    XkbGeometryRec ¶

    XkbGeometryRec :: struct {
    	name:            Atom,
    	width_mm:        u16,
    	height_mm:       u16,
    	label_font:      cstring,
    	label_color:     ^XkbColorRec,
    	base_color:      ^XkbColorRec,
    	sz_properties:   u16,
    	sz_colors:       u16,
    	sz_shapes:       u16,
    	sz_sections:     u16,
    	sz_doodads:      u16,
    	sz_key_aliases:  u16,
    	num_properties:  u16,
    	num_colors:      u16,
    	num_shapes:      u16,
    	num_sections:    u16,
    	num_doodads:     u16,
    	num_key_aliases: u16,
    	properties:      [^]XkbPropertyRec,
    	colors:          [^]XkbColorRec,
    	shapes:          [^]XkbShapeRec,
    	sections:        [^]XkbSectionRec,
    	doodads:         [^]XkbDoodadRec,
    	key_aliases:     [^]XkbKeyAliasRec,
    }

    XkbGroupAction ¶

    XkbGroupAction :: struct {
    	type:      u8,
    	flags:     u8,
    	group_XXX: i8,
    }

    XkbISOAction ¶

    XkbISOAction :: struct {
    	type:      u8,
    	flags:     u8,
    	mask:      u8,
    	real_mods: u8,
    	group_XXX: i8,
    	affect:    u8,
    	vmods1:    u8,
    	vmods2:    u8,
    }

    XkbIndicatorDoodadRec ¶

    XkbIndicatorDoodadRec :: struct {
    	name:          Atom,
    	type:          u8,
    	priority:      u8,
    	top:           i16,
    	left:          i16,
    	angle:         i16,
    	color_ndx:     u16,
    	on_color_ndx:  u16,
    	off_color_ndx: u16,
    }

    XkbIndicatorMapRec ¶

    XkbIndicatorMapRec :: struct {
    	flags:        u8,
    	which_groups: u8,
    	groups:       u8,
    	which_mods:   u8,
    	mods:         XkbModsRec,
    	ctrls:        u32,
    }

    XkbIndicatorNotifyEvent ¶

    XkbIndicatorNotifyEvent :: struct {
    	type:       i32,
    	serial:     u64,
    	send_event: b32,
    	display:    ^Display,
    	time:       Time,
    	xkb_type:   XkbEventType,
    	device:     i32,
    	changed:    u32,
    	state:      u32,
    }

    XkbIndicatorRec ¶

    XkbIndicatorRec :: struct {
    	phys_indicators: u64,
    	maps:            [32]XkbIndicatorMapRec,
    }

    XkbInfoMaskBits ¶

    XkbInfoMaskBits :: enum u32 {
    	KeyTypes           = 0, 
    	KeySyms            = 1, 
    	ModifierMap        = 2, 
    	ExplicitComponents = 3, 
    	KeyActions         = 4, 
    	KeyBehaviors       = 5, 
    	VirtualMods        = 6, 
    	VirtualModMap      = 7, 
    }

    XkbKTMapEntryRec ¶

    XkbKTMapEntryRec :: struct {
    	active: b32,
    	level:  u8,
    	mods:   XkbModsRec,
    }

    XkbKeyAliasRec ¶

    XkbKeyAliasRec :: struct {
    	real:  [4]i8,
    	// Non nul-terminated string
    	alias: [4]i8,
    }

    XkbKeyNameRec ¶

    XkbKeyNameRec :: struct {
    	name: [4]i8,
    }

    XkbKeyRec ¶

    XkbKeyRec :: struct {
    	name:      XkbKeyNameRec,
    	gap:       i16,
    	shape_ndx: u8,
    	color_ndx: u8,
    }

    XkbKeyTypeRec ¶

    XkbKeyTypeRec :: struct {
    	mod:         XkbModsRec,
    	num_levels:  u8,
    	map_count:   u8,
    	_map:        [^]XkbKTMapEntryRec,
    	preserve:    [^]XkbModsRec,
    	name:        Atom,
    	level_names: [^]Atom,
    }

    XkbLogoDoodadRec ¶

    XkbLogoDoodadRec :: struct {
    	name:      Atom,
    	type:      u8,
    	priority:  u8,
    	top:       i16,
    	left:      i16,
    	angle:     i16,
    	color_ndx: u16,
    	shape_ndx: u16,
    	logo_name: cstring,
    }

    XkbMapNotifyEvent ¶

    XkbMapNotifyEvent :: struct {
    	type:               i32,
    	serial:             u64,
    	send_event:         b32,
    	display:            ^Display,
    	time:               Time,
    	xkb_type:           XkbEventType,
    	device:             i32,
    	changed:            u32,
    	flags:              u32,
    	first_type:         i32,
    	num_types:          i32,
    	min_key_code:       u8,
    	max_key_code:       u8,
    	first_key_sym:      u8,
    	first_key_act:      u8,
    	first_key_behavior: u8,
    	first_key_explicit: u8,
    	first_modmap_key:   u8,
    	first_vmodmap_key:  u8,
    	num_key_syms:       i32,
    	num_key_acts:       i32,
    	num_key_behaviors:  i32,
    	num_key_explicit:   i32,
    	num_modmap_keys:    i32,
    	num_vmodmap_keys:   i32,
    	vmods:              u32,
    }

    XkbMessageAction ¶

    XkbMessageAction :: struct {
    	type:    u8,
    	flags:   u8,
    	message: [6]u8,
    }

    XkbModAction ¶

    XkbModAction :: struct {
    	type:      u8,
    	flags:     u8,
    	mask:      u8,
    	real_mods: u8,
    	vmods1:    u8,
    	vmods2:    u8,
    }

    XkbModsRec ¶

    XkbModsRec :: struct {
    	mask:      u8,
    	// effective mods 
    	real_mods: u8,
    	vmods:     u16,
    }

    XkbNamesNotifyEvent ¶

    XkbNamesNotifyEvent :: struct {
    	type:               i32,
    	serial:             u64,
    	send_event:         b32,
    	display:            ^Display,
    	time:               Time,
    	xkb_type:           XkbEventType,
    	device:             i32,
    	changed:            u32,
    	first_type:         i32,
    	num_types:          i32,
    	first_lvl:          i32,
    	num_lvls:           i32,
    	num_aliases:        i32,
    	num_radio_groups:   i32,
    	changed_vmods:      u32,
    	changed_groups:     u32,
    	changed_indicators: u32,
    	first_key:          i32,
    	num_keys:           i32,
    }

    XkbNamesRec ¶

    XkbNamesRec :: struct {
    	keycodes:        Atom,
    	geometry:        Atom,
    	symbols:         Atom,
    	types:           Atom,
    	compat:          Atom,
    	vmods:           [16]Atom,
    	indicators:      [32]Atom,
    	groups:          [4]Atom,
    	keys:            [^]XkbKeyNameRec,
    	key_aliases:     [^]XkbKeyAliasRec,
    	radio_groups:    [^]Atom,
    	phys_symbol:     Atom,
    	num_keys:        u8,
    	num_key_aliases: u8,
    	num_rg:          u16,
    }

    XkbNewKeyboardNotifyEvent ¶

    XkbNewKeyboardNotifyEvent :: struct {
    	type:             i32,
    	serial:           u64,
    	send_event:       b32,
    	display:          ^Display,
    	time:             Time,
    	xkb_type:         XkbEventType,
    	device:           i32,
    	old_device:       i32,
    	min_key_code:     i32,
    	max_key_code:     i32,
    	old_min_key_code: i32,
    	old_max_key_code: i32,
    	changed:          u32,
    	req_major:        i8,
    	req_minor:        i8,
    }

    XkbOutlineRec ¶

    XkbOutlineRec :: struct {
    	num_points:    u16,
    	sz_points:     u16,
    	corner_radius: u16,
    	points:        [^]XkbPointRec,
    }

    XkbOverlayKeyRec ¶

    XkbOverlayKeyRec :: struct {
    	over:  XkbKeyNameRec,
    	under: XkbKeyNameRec,
    }

    XkbOverlayRec ¶

    XkbOverlayRec :: struct {
    	name:          Atom,
    	section_under: ^XkbSectionRec,
    	num_rows:      u16,
    	sz_rows:       u16,
    	rows:          [^]XkbOverlayRowRec,
    	bounds:        [^]XkbBoundsRec,
    }

    XkbOverlayRowRec ¶

    XkbOverlayRowRec :: struct {
    	row_under: u16,
    	num_keys:  u16,
    	sz_keys:   u16,
    	keys:      [^]XkbOverlayKeyRec,
    }

    XkbPointRec ¶

    XkbPointRec :: struct {
    	x: i16,
    	y: i16,
    }

    XkbPropertyRec ¶

    XkbPropertyRec :: struct {
    	name:  cstring,
    	value: cstring,
    }

    XkbPtrAction ¶

    XkbPtrAction :: struct {
    	type:     u8,
    	flags:    u8,
    	high_XXX: u8,
    	low_XXX:  u8,
    	high_YYY: u8,
    	low_YYY:  u8,
    }

    XkbPtrBtnAction ¶

    XkbPtrBtnAction :: struct {
    	type:   u8,
    	flags:  u8,
    	count:  u8,
    	button: u8,
    }

    XkbPtrDfltAction ¶

    XkbPtrDfltAction :: struct {
    	type:      u8,
    	flags:     u8,
    	affect:    u8,
    	value_XXX: u8,
    }

    XkbRedirectKeyAction ¶

    XkbRedirectKeyAction :: struct {
    	type:        u8,
    	new_key:     u8,
    	mods_mask:   u8,
    	mods:        u8,
    	vmods_mask0: u8,
    	vmods_mask1: u8,
    	vmods0:      u8,
    	vmods1:      u8,
    }

    XkbRowRec ¶

    XkbRowRec :: struct {
    	top:      i16,
    	left:     i16,
    	num_keys: u16,
    	sz_keys:  u16,
    	vertical: i32,
    	keys:     [^]XkbKeyRec,
    	bounds:   XkbBoundsRec,
    }

    XkbSectionRec ¶

    XkbSectionRec :: struct {
    	name:         Atom,
    	priority:     u8,
    	top:          i16,
    	left:         i16,
    	width:        u16,
    	height:       u16,
    	angle:        i16,
    	num_rows:     u16,
    	num_doodads:  u16,
    	num_overlays: u16,
    	sz_rows:      u16,
    	sz_doodads:   u16,
    	sz_overlays:  u16,
    	rows:         [^]XkbRowRec,
    	doodads:      [^]XkbDoodadRec,
    	bounds:       XkbBoundsRec,
    	overlays:     [^]XkbOverlayRec,
    }

    XkbServerMapRec ¶

    XkbServerMapRec :: struct {
    	num_acts:  u16,
    	size_acts: u16,
    	acts:      [^]XkbAction,
    	behaviors: [^]XkbBehavior,
    	key_acts:  [^]u16,
    	explicit:  [^]u8,
    	vmods:     [16]u8,
    	vmodmap:   [^]u16,
    }

    XkbShapeDoodadRec ¶

    XkbShapeDoodadRec :: struct {
    	name:      Atom,
    	type:      u8,
    	priority:  u8,
    	top:       i16,
    	left:      i16,
    	angle:     i16,
    	color_ndx: u16,
    	shape_ndx: u16,
    }

    XkbShapeRec ¶

    XkbShapeRec :: struct {
    	name:         Atom,
    	num_outlines: u16,
    	sz_outlines:  u16,
    	outlines:     [^]XkbOutlineRec,
    	approx:       ^XkbOutlineRec,
    	primary:      ^XkbOutlineRec,
    	bounds:       XkbBoundsRec,
    }

    XkbStateNotifyEvent ¶

    XkbStateNotifyEvent :: struct {
    	type:               i32,
    	serial:             u64,
    	send_event:         b32,
    	display:            ^Display,
    	time:               Time,
    	xkb_type:           XkbEventType,
    	device:             i32,
    	changed:            u32,
    	group:              i32,
    	base_group:         i32,
    	latched_group:      i32,
    	locked_group:       i32,
    	mods:               u32,
    	base_mods:          u32,
    	latched_mods:       u32,
    	locked_mods:        u32,
    	compat_state:       i32,
    	grab_mods:          u8,
    	compat_grab_mods:   u8,
    	lookup_mods:        u8,
    	compat_lookup_mods: u8,
    	ptr_buttons:        i32,
    	keycode:            u8,
    	event_type:         i8,
    	// should be EventType but needs to be i8 instead of i32
    	req_major:          i8,
    	req_minor:          i8,
    }

    XkbStateRec ¶

    XkbStateRec :: struct {
    	group:              u8,
    	locked_group:       u8,
    	base_group:         u16,
    	latched_group:      u16,
    	mods:               u8,
    	base_mods:          u8,
    	latched_mods:       u8,
    	locked_mods:        u8,
    	compat_state:       u8,
    	grab_mods:          u8,
    	compat_grab_mods:   u8,
    	lookup_mods:        u8,
    	compat_lookup_mods: u8,
    	ptr_buttons:        u16,
    }
    Related Procedures With Parameters

    XkbSwitchScreenAction ¶

    XkbSwitchScreenAction :: struct {
    	type:      u8,
    	flags:     u8,
    	screenXXX: i8,
    }

    XkbSymInterpretRec ¶

    XkbSymInterpretRec :: struct {
    	sym:         XID,
    	// KeySym
    	flags:       u8,
    	match:       u8,
    	mods:        u8,
    	virtual_mod: u8,
    	act:         XkbAnyAction,
    }

    XkbSymMapRec ¶

    XkbSymMapRec :: struct {
    	kt_index:   [4]u8,
    	group_info: u8,
    	width:      u8,
    	offset:     u16,
    }

    XkbTextDoodadRec ¶

    XkbTextDoodadRec :: struct {
    	name:      Atom,
    	type:      u8,
    	priority:  u8,
    	top:       i16,
    	left:      i16,
    	angle:     i16,
    	color_ndx: u16,
    	text:      cstring,
    	font:      cstring,
    }

    XmbTextItem ¶

    XmbTextItem :: struct {
    	chars:    [^]u8,
    	nchars:   i32,
    	delta:    i32,
    	font_set: XOC,
    }

    XrmBinding ¶

    XrmBinding :: enum i32 {
    	XrmBindTightly, 
    	XrmBindLoosely, 
    }

    XrmBindingList ¶

    XrmBindingList :: [^]XrmBinding

    XrmClass ¶

    XrmClass :: i32

    XrmClassList ¶

    XrmClassList :: [^]i32

    XrmDatabase ¶

    XrmDatabase :: distinct rawptr
    Related Procedures With Parameters
    Related Procedures With Returns

    XrmHashBucket ¶

    XrmHashBucket :: distinct rawptr
    Related Procedures With Parameters

    XrmName ¶

    XrmName :: i32

    XrmNameList ¶

    XrmNameList :: [^]i32

    XrmOptionDescRec ¶

    XrmOptionDescRec :: struct {
    	option:    cstring,
    	specifier: cstring,
    	argKind:   XrmOptionKind,
    	value:     rawptr,
    }

    XrmOptionKind ¶

    XrmOptionKind :: enum int {
    	XrmoptionNoArg, 
    	XrmoptionIsArg, 
    	XrmoptionStickyArg, 
    	XrmoptionSepArg, 
    	XrmoptionResArg, 
    	XrmoptionSkipArg, 
    	XrmoptionSkipLine, 
    	XrmoptionSkipNArgs, 
    }

    XrmQuark ¶

    XrmQuark :: i32

    XrmQuarkList ¶

    XrmQuarkList :: [^]i32

    XrmRepresentation ¶

    XrmRepresentation :: i32

    XrmSearchList ¶

    XrmSearchList :: [^][^]XrmHashBucket

    XrmValue ¶

    XrmValue :: struct {
    	size: u32,
    	addr: rawptr,
    }
    Related Procedures With Parameters

    XrmValuePtr ¶

    XrmValuePtr :: [^]XrmValue

    XwcTextItem ¶

    XwcTextItem :: struct {
    	chars:    [^]rune,
    	nchars:   i32,
    	delta:    i32,
    	font_set: XOC,
    }

    Constants

    AllHints ¶

    AllHints: bit_set[WMHintsBits; uint] : WMHints{.InputHint, .StateHint, .IconPixmapHint, .IconWindowHint, .IconPositionHint, .IconMaskHint, .WindowGroupHint}

    AllTemporary ¶

    AllTemporary: int : 0

    AnyButton ¶

    AnyButton: int : 0

    AnyKey ¶

    AnyKey: int : 0

    AnyPropertyType ¶

    AnyPropertyType: int : 0

    CopyFromParent ¶

    CopyFromParent: int : 0

    CurrentTime ¶

    CurrentTime: int : 0

    IS_SUPPORTED ¶

    IS_SUPPORTED: bool : ODIN_OS == .Linux || ODIN_OS == .FreeBSD || ODIN_OS == .OpenBSD
     

    Value, specifying whether vendor:x11/xlib is available on the current platform.

    InputFocus ¶

    InputFocus: int : 1

    NoSymbol ¶

    NoSymbol: int : 0

    None ¶

    None: int : 0

    ParentRelative ¶

    ParentRelative: int : 1

    PointerRoot ¶

    PointerRoot: int : 1

    PointerWindow ¶

    PointerWindow: int : 0

    PropModeAppend ¶

    PropModeAppend: int : 2

    PropModePrepend ¶

    PropModePrepend: int : 1

    PropModeReplace ¶

    PropModeReplace: int : 0

    VisualAllMask ¶

    VisualAllMask: bit_set[VisualInfoMaskBits; int] : VisualInfoMask{.VisualIDMask, .VisualScreenMask, .VisualDepthMask, .VisualClassMask, .VisualRedMaskMask, .VisualGreenMaskMask, .VisualBlueMaskMask, .VisualColormapSizeMask, .VisualBitsPerRGBMask}

    VisualNoMask ¶

    VisualNoMask: bit_set[VisualInfoMaskBits; int] : VisualInfoMask{}

    XA_ATOM ¶

    XA_ATOM :: Atom(4)

    XA_WM_CLASS ¶

    XA_WM_CLASS :: Atom(67)

    XA_WM_CLIENT_MACHINE ¶

    XA_WM_CLIENT_MACHINE :: Atom(36)

    XA_WM_COMMAND ¶

    XA_WM_COMMAND :: Atom(34)

    XA_WM_HINTS ¶

    XA_WM_HINTS :: Atom(35)

    XA_WM_ICON_NAME ¶

    XA_WM_ICON_NAME :: Atom(37)

    XA_WM_ICON_SIZE ¶

    XA_WM_ICON_SIZE :: Atom(38)

    XA_WM_NAME ¶

    XA_WM_NAME :: Atom(39)

    XA_WM_NORMAL_HINTS ¶

    XA_WM_NORMAL_HINTS :: Atom(40)

    XA_WM_SIZE_HINTS ¶

    XA_WM_SIZE_HINTS :: Atom(41)

    XA_WM_TRANSIENT_FOR ¶

    XA_WM_TRANSIENT_FOR :: Atom(68)

    XA_WM_ZOOM_HINTS ¶

    XA_WM_ZOOM_HINTS :: Atom(42)

    XIAllDevices ¶

    XIAllDevices: int : 0

    XIAllMasterDevices ¶

    XIAllMasterDevices: int : 1

    XkbActionMessageLength ¶

    XkbActionMessageLength: int : 6

    XkbAllClientInfoMask ¶

    XkbAllClientInfoMask: bit_set[XkbInfoMaskBits; int] : XkbInfoMask{.KeyTypes, .KeySyms, .ModifierMap}

    XkbAllEventsMask ¶

    XkbAllEventsMask: bit_set[XkbEventType; int] : XkbEventMask{.NewKeyboardNotify, .MapNotify, .StateNotify, .ControlsNotify, .IndicatorStateNotify, .IndicatorMapNotify, .NamesNotify, .CompatMapNotify, .BellNotify, .ActionMessage, .AccessXNotify, .ExtensionDeviceNotify}

    XkbAllServerInfoMask ¶

    XkbAllServerInfoMask: bit_set[XkbInfoMaskBits; int] : XkbInfoMask{.ExplicitComponents, .KeyActions, .KeyBehaviors, .VirtualMods, .VirtualModMap}

    XkbAnyActionDataSize ¶

    XkbAnyActionDataSize: int : 7

    XkbKeyNameLength ¶

    XkbKeyNameLength: int : 4

    XkbMaxKeyCount ¶

    XkbMaxKeyCount: int : XkbMaxLegalKeyCode - XkbMinLegalKeyCode + 1

    XkbMaxLegalKeyCode ¶

    XkbMaxLegalKeyCode: int : 255

    XkbMinLegalKeyCode ¶

    XkbMinLegalKeyCode: int : 8

    XkbNumIndicators ¶

    XkbNumIndicators: int : 32

    XkbNumKbdGroups ¶

    XkbNumKbdGroups: int : 4

    XkbNumVirtualMods ¶

    XkbNumVirtualMods: int : 16

    XkbPerKeyBitArraySize ¶

    XkbPerKeyBitArraySize: int : (XkbMaxLegalKeyCode + 1) / 8

    XkbUseCoreKbd ¶

    XkbUseCoreKbd: int : 0x0100

    Variables

    This section is empty.

    Procedures

    ActivateScreenSaver ¶

    ActivateScreenSaver :: proc "c" (display: ^Display) ---

    AddConnectionWatch ¶

    AddConnectionWatch :: proc "c" (display: ^Display, procedure: XConnectionWatchProc, data: rawptr) -> Status ---
     

    Internal connections

    AddHost ¶

    AddHost :: proc "c" (display: ^Display, addr: ^XHostAddress) ---
     

    Controlling host address

    AddHosts ¶

    AddHosts :: proc "c" (display: ^Display, hosts: [^]XHostAddress, nhosts: i32) ---

    AddPixel ¶

    AddPixel :: proc "c" (image: ^XImage, value: int) ---

    AddToSaveSet ¶

    AddToSaveSet :: proc "c" (display: ^Display, window: XID) ---

    AllocClassHint ¶

    AllocClassHint :: proc "c" () -> ^XClassHint ---
     

    Setting and reading the WM_CLASS property

    AllocColor ¶

    AllocColor :: proc "c" (display: ^Display, colormap: XID, screen: ^XColor) -> Status ---
     

    Allocating and freeing color cells

    AllocColorCells ¶

    AllocColorCells :: proc "c" (
    	display:  ^Display, 
    	colormap: XID, 
    	contig:   b32, 
    	pmasks:   [^]uint, 
    	np:       u32, 
    	pixels:   [^]uint, 
    	npixels:  u32, 
    ) -> Status ---

    AllocColorPlanes ¶

    AllocColorPlanes :: proc "c" (
    	display:  ^Display, 
    	colormap: XID, 
    	contig:   b32, 
    	pixels:   [^]uint, 
    	ncolors:  i32, 
    	nreds:    i32, 
    	ngreens:  i32, 
    	nblues:   i32, 
    	rmask:    [^]uint, 
    	gmask:    [^]uint, 
    	bmask:    [^]uint, 
    ) -> Status ---

    AllocIconSize ¶

    AllocIconSize :: proc "c" () -> ^XIconSize ---
     

    Setting and reading the WM_ICON_SIZE_PROPERTY

    AllocNamedColor ¶

    AllocNamedColor :: proc "c" (display: ^Display, colormap: XID, name: cstring, screen: ^XColor, exact: ^XColor) -> Status ---

    AllocSizeHints ¶

    AllocSizeHints :: proc "c" () -> ^XSizeHints ---
     

    Setting and reading MW_NORMAL_HINTS property

    AllocWMHints ¶

    AllocWMHints :: proc "c" () -> ^XWMHints ---
     

    Setting and reading WM_HINTS property

    AllowEvents ¶

    AllowEvents :: proc "c" (display: ^Display, evend_mode: AllowEventsMode, time: Time) ---
     

    Resuming event processing

    AutoRepeatOff ¶

    AutoRepeatOff :: proc "c" (display: ^Display) ---

    AutoRepeatOn ¶

    AutoRepeatOn :: proc "c" (display: ^Display) ---

    Bell ¶

    Bell :: proc "c" (display: ^Display, percent: i32) ---

    BitmapBitOrder ¶

    BitmapBitOrder :: proc "c" (display: ^Display) -> ByteOrder ---

    BitmapPad ¶

    BitmapPad :: proc "c" (display: ^Display) -> i32 ---

    BitmapUnit ¶

    BitmapUnit :: proc "c" (display: ^Display) -> i32 ---

    BlackPixel ¶

    BlackPixel :: proc "c" (display: ^Display, screen_no: i32) -> uint ---
     

    Display macros (display properties)

    BlackPixelsOfScreen ¶

    BlackPixelsOfScreen :: proc "c" (screen: ^Screen) -> uint ---
     

    Screen macros

    CellsOfScreen ¶

    CellsOfScreen :: proc "c" (screen: ^Screen) -> i32 ---

    ChangeActivePointerGrab ¶

    ChangeActivePointerGrab :: proc "c" (display: ^Display, event_mask: bit_set[EventMaskBits; int], cursor: XID, time: Time) ---

    ChangeGC ¶

    ChangeGC :: proc "c" (display: ^Display, gc: GC, mask: bit_set[GCAttributeMaskBits; uint], values: ^XGCValues) ---

    ChangeKeyboardControl ¶

    ChangeKeyboardControl :: proc "c" (display: ^Display, mask: bit_set[KeyboardControlMaskBits; int], values: ^XKeyboardControl) ---
     

    Manipulating the keyboard and pointer settings

    ChangeKeyboardMapping ¶

    ChangeKeyboardMapping :: proc "c" (display: ^Display, first: u8, keysyms_per: i32, keysyms: [^]KeySym, num_codes: i32) ---

    ChangePointerControl ¶

    ChangePointerControl :: proc "c" (
    	display:           ^Display, 
    	do_accel:          b32, 
    	do_threshold:      b32, 
    	accel_numerator:   i32, 
    	accel_denominator: i32, 
    	threshold:         i32, 
    ) ---

    ChangeProperty ¶

    ChangeProperty :: proc "c" (
    	display:  ^Display, 
    	window:   XID, 
    	property: Atom, 
    	type:     Atom, 
    	format:   i32, 
    	mode:     i32, 
    	data:     rawptr, 
    	count:    i32, 
    ) -> i32 ---

    ChangeSaveSet ¶

    ChangeSaveSet :: proc "c" (display: ^Display, window: XID, mode: SaveSetChangeMode) ---

    ChangeWindowAttributes ¶

    ChangeWindowAttributes :: proc "c" (display: ^Display, window: XID, attr_mask: bit_set[WindowAttributeMaskBits; int], attr: ^XWindowAttributes) ---
     

    Window: changing attributes

    CheckIfEvent ¶

    CheckIfEvent :: proc "c" (display: ^Display, event: ^XEvent, predicate: proc "c" (display: ^Display, event: ^XEvent, ctx: rawptr) -> b32, arg: rawptr) -> b32 ---

    CheckMaskEvent ¶

    CheckMaskEvent :: proc "c" (display: ^Display, mask: bit_set[EventMaskBits; int], event: ^XEvent) -> b32 ---

    CheckTypedEvent ¶

    CheckTypedEvent :: proc "c" (display: ^Display, type: EventType, event: ^XEvent) -> b32 ---

    CheckTypedWindowEvent ¶

    CheckTypedWindowEvent :: proc "c" (display: ^Display, window: XID, type: EventType, event: ^XEvent) -> b32 ---

    CheckWindowEvent ¶

    CheckWindowEvent :: proc "c" (display: ^Display, window: XID, mask: bit_set[EventMaskBits; int], event: ^XEvent) -> b32 ---

    CirculateSubwindows ¶

    CirculateSubwindows :: proc "c" (display: ^Display, window: XID, direction: CirculationDirection) ---

    CirculateSubwindowsDown ¶

    CirculateSubwindowsDown :: proc "c" (display: ^Display, window: XID) ---

    CirculateSubwindowsUp ¶

    CirculateSubwindowsUp :: proc "c" (display: ^Display, window: XID) ---

    ClearArea ¶

    ClearArea :: proc "c" (
    	display: ^Display, 
    	window:  XID, 
    	x:       i32, 
    	y:       i32, 
    	width:   u32, 
    	height:  u32, 
    	exp:     b32, 
    ) ---
     

    Graphics functions

    ClearWindow ¶

    ClearWindow :: proc "c" (display: ^Display, window: XID) ---

    ClipBox ¶

    ClipBox :: proc "c" (region: Region, rect: ^XRectangle) ---
     

    Computing with regions

    CloseDisplay ¶

    CloseDisplay :: proc "c" (display: ^Display) ---

    ConfigureWindow ¶

    ConfigureWindow :: proc "c" (display: ^Display, window: XID, mask: bit_set[WindowChangesMaskBits; i32], changes: ^XWindowChanges) -> i32 ---
     

    Windows: configuring

    ConnectionNumber ¶

    ConnectionNumber :: proc "c" (display: ^Display) -> i32 ---
     

    Display macros (connection)

    ConvertCase ¶

    ConvertCase :: proc "c" (keysym: KeySym, lower: ^KeySym, upper: ^KeySym) ---

    ConvertSelection ¶

    ConvertSelection :: proc "c" (
    	display:   ^Display, 
    	selection: Atom, 
    	target:    Atom, 
    	property:  Atom, 
    	requestor: XID, 
    	time:      Time, 
    ) ---

    CopyArea ¶

    CopyArea :: proc "c" (
    	display: ^Display, 
    	src:     XID, 
    	dst:     XID, 
    	gc:      GC, 
    	src_x:   i32, 
    	src_y:   i32, 
    	width:   u32, 
    	height:  u32, 
    	dst_x:   i32, 
    	dst_y:   i32, 
    ) ---

    CopyColormapAndFree ¶

    CopyColormapAndFree :: proc "c" (display: ^Display, colormap: XID) -> XID ---

    CopyGC ¶

    CopyGC :: proc "c" (display: ^Display, src: GC, dst: GC, mask: bit_set[GCAttributeMaskBits; uint]) ---

    CopyPlane ¶

    CopyPlane :: proc "c" (
    	display: ^Display, 
    	src:     XID, 
    	dst:     XID, 
    	gc:      GC, 
    	src_x:   i32, 
    	src_y:   i32, 
    	width:   u32, 
    	height:  u32, 
    	dst_x:   i32, 
    	dst_y:   i32, 
    	plane:   uint, 
    ) ---

    CreateColormap ¶

    CreateColormap :: proc "c" (display: ^Display, window: XID, visual: ^Visual, alloc: ColormapAlloc) -> XID ---
     

    Creation/destruction of colormaps

    CreateFontCursor ¶

    CreateFontCursor :: proc "c" (display: ^Display, shape: CursorShape) -> XID ---
     

    Creating recoloring and freeing cursors

    CreateGC ¶

    CreateGC :: proc "c" (display: ^Display, drawable: XID, mask: bit_set[GCAttributeMaskBits; uint], attr: ^XGCValues) -> GC ---
     

    Graphics context functions

    CreateGlyphCursor ¶

    CreateGlyphCursor :: proc "c" (
    	display:   ^Display, 
    	src_font:  XID, 
    	mask_font: XID, 
    	src_char:  u32, 
    	mask_char: u32, 
    	fg:        ^XColor, 
    	bg:        ^XColor, 
    ) -> XID ---

    CreateImage ¶

    CreateImage :: proc "c" (
    	display: ^Display, 
    	visual:  ^Visual, 
    	depth:   u32, 
    	format:  ImageFormat, 
    	offset:  i32, 
    	data:    rawptr, 
    	width:   u32, 
    	height:  u32, 
    	pad:     i32, 
    	stride:  i32, 
    ) -> ^XImage ---
     

    Manipulating images

    CreatePixmap ¶

    CreatePixmap :: proc "c" (display: ^Display, drawable: XID, width: u32, height: u32, depth: u32) -> XID ---
     

    Creating and freeing pixmaps

    CreatePixmapCursor ¶

    CreatePixmapCursor :: proc "c" (
    	display: ^Display, 
    	source:  XID, 
    	mask:    XID, 
    	fg:      XColor, 
    	bg:      ^XColor, 
    	x:       u32, 
    	y:       u32, 
    ) -> XID ---

    CreateRegion ¶

    CreateRegion :: proc "c" () -> Region ---
     

    Creating, copying and destroying regions

    CreateSimpleWindow ¶

    CreateSimpleWindow :: proc "c" (
    	display:  ^Display, 
    	parent:   XID, 
    	x:        i32, 
    	y:        i32, 
    	width:    u32, 
    	height:   u32, 
    	bordersz: u32, 
    	border:   uint, 
    	bg:       uint, 
    ) -> XID ---

    CreateWindow ¶

    CreateWindow :: proc "c" (
    	display:   ^Display, 
    	parent:    XID, 
    	x:         i32, 
    	y:         i32, 
    	width:     u32, 
    	height:    u32, 
    	bordersz:  u32, 
    	depth:     i32, 
    	class:     WindowClass, 
    	visual:    ^Visual, 
    	attr_mask: bit_set[WindowAttributeMaskBits; int], 
    	attr:      ^XSetWindowAttributes, 
    ) -> XID ---
     

    Windows: creation/destruction

    DefaultColormap ¶

    DefaultColormap :: proc "c" (display: ^Display, screen_no: i32) -> XID ---
     

    Display macros (defaults)

    DefaultColormapOfScreen ¶

    DefaultColormapOfScreen :: proc "c" (screen: ^Screen) -> XID ---

    DefaultDepth ¶

    DefaultDepth :: proc "c" (display: ^Display, screen_no: i32) -> i32 ---

    DefaultDepthOfScreen ¶

    DefaultDepthOfScreen :: proc "c" (screen: ^Screen) -> i32 ---

    DefaultGC ¶

    DefaultGC :: proc "c" (display: ^Display, screen_no: i32) -> GC ---

    DefaultGCOfScreen ¶

    DefaultGCOfScreen :: proc "c" (screen: ^Screen) -> GC ---

    DefaultRootWindow ¶

    DefaultRootWindow :: proc "c" (display: ^Display) -> XID ---

    DefaultScreen ¶

    DefaultScreen :: proc "c" (display: ^Display) -> i32 ---

    DefaultScreenOfDisplay ¶

    DefaultScreenOfDisplay :: proc "c" (display: ^Display) -> ^Screen ---

    DefaultVisual ¶

    DefaultVisual :: proc "c" (display: ^Display, screen_no: i32) -> ^Visual ---

    DefaultVisualOfScreen ¶

    DefaultVisualOfScreen :: proc "c" (screen: ^Screen) -> ^Visual ---

    DefineCursor ¶

    DefineCursor :: proc "c" (display: ^Display, window: XID, cursor: XID) -> i32 ---

    DeleteModifiermapEntry ¶

    DeleteModifiermapEntry :: proc "c" (modmap: ^XModifierKeymap, keycode_entry: u8, modifier: i32) -> ^XModifierKeymap ---

    DeleteProperty ¶

    DeleteProperty :: proc "c" (display: ^Display, window: XID, prop: Atom) -> i32 ---

    DestroyImage ¶

    DestroyImage :: proc "c" (image: ^XImage) ---

    DestroyRegion ¶

    DestroyRegion :: proc "c" (r: Region) ---

    DestroySubwindows ¶

    DestroySubwindows :: proc "c" (display: ^Display, window: XID) ---

    DestroyWindow ¶

    DestroyWindow :: proc "c" (display: ^Display, window: XID) ---

    DisableAccessControl ¶

    DisableAccessControl :: proc "c" (display: ^Display) ---

    DisplayCells ¶

    DisplayCells :: proc "c" (display: ^Display, screen_no: i32) -> i32 ---

    DisplayHeight ¶

    DisplayHeight :: proc "c" (display: ^Display, screen_no: i32) -> i32 ---

    DisplayHeightMM ¶

    DisplayHeightMM :: proc "c" (display: ^Display, screen_no: i32) -> i32 ---

    DisplayKeycodes ¶

    DisplayKeycodes :: proc "c" (display: ^Display, min_keycodes: ^i32, max_keycodes: ^i32) ---
     

    Manipulating the keyboard encoding

    DisplayMotionBufferSize ¶

    DisplayMotionBufferSize :: proc "c" (display: ^Display) -> uint ---
     

    Getting the history of pointer motion

    DisplayName ¶

    DisplayName :: proc "c" (string: cstring) -> cstring ---

    DisplayOfScreen ¶

    DisplayOfScreen :: proc "c" (screen: ^Screen) -> ^Display ---

    DisplayPlanes ¶

    DisplayPlanes :: proc "c" (display: ^Display, screen_no: i32) -> i32 ---

    DisplayString ¶

    DisplayString :: proc "c" (display: ^Display) -> cstring ---

    DisplayWidth ¶

    DisplayWidth :: proc "c" (display: ^Display, screen_no: i32) -> i32 ---

    DisplayWidthMM ¶

    DisplayWidthMM :: proc "c" (display: ^Display, screen_no: i32) -> i32 ---

    DoesBackingStore ¶

    DoesBackingStore :: proc "c" (screen: ^Screen) -> BackingStore ---

    DoesSaveUnders ¶

    DoesSaveUnders :: proc "c" (screen: ^Screen) -> b32 ---

    DrawArc ¶

    DrawArc :: proc "c" (
    	display:  ^Display, 
    	drawable: XID, 
    	gc:       GC, 
    	x:        i32, 
    	y:        i32, 
    	width:    u32, 
    	height:   u32, 
    	angle1:   i32, 
    	angle2:   i32, 
    ) ---

    DrawArcs ¶

    DrawArcs :: proc "c" (display: ^Display, drawable: XID, gc: GC, arcs: [^]XArc, narcs: i32) ---

    DrawImageString ¶

    DrawImageString :: proc "c" (
    	display:  ^Display, 
    	drawable: XID, 
    	gc:       GC, 
    	x:        i32, 
    	y:        i32, 
    	string:   [^]u8, 
    	length:   i32, 
    ) ---

    DrawImageString16 ¶

    DrawImageString16 :: proc "c" (
    	display:  ^Display, 
    	drawable: XID, 
    	gc:       GC, 
    	x:        i32, 
    	y:        i32, 
    	string:   [^]XChar2b, 
    	length:   i32, 
    ) ---

    DrawLine ¶

    DrawLine :: proc "c" (
    	display:  ^Display, 
    	drawable: XID, 
    	gc:       GC, 
    	x1:       i32, 
    	y1:       i32, 
    	x2:       i32, 
    	y2:       i32, 
    ) ---

    DrawLines ¶

    DrawLines :: proc "c" (display: ^Display, drawable: XID, gc: GC, points: [^]XPoint, npoints: i32) ---

    DrawPoint ¶

    DrawPoint :: proc "c" (display: ^Display, drawable: XID, gc: GC, x: i32, y: i32) ---
     

    Drawing lines, points, rectangles and arc

    DrawPoints ¶

    DrawPoints :: proc "c" (
    	display:  Display, 
    	drawable: XID, 
    	gc:       GC, 
    	point:    [^]XPoint, 
    	npoints:  i32, 
    	mode:     CoordMode, 
    ) ---

    DrawRectangle ¶

    DrawRectangle :: proc "c" (
    	display:  ^Display, 
    	drawable: XID, 
    	gc:       GC, 
    	x:        i32, 
    	y:        i32, 
    	width:    u32, 
    	height:   u32, 
    ) ---

    DrawRectangles ¶

    DrawRectangles :: proc "c" (display: ^Display, drawable: XID, gc: GC, rects: [^]XRectangle, nrects: i32) ---

    DrawSegments ¶

    DrawSegments :: proc "c" (display: ^Display, drawable: XID, gc: GC, segs: [^]XSegment, nsegs: i32) ---

    DrawString ¶

    DrawString :: proc "c" (
    	display:  ^Display, 
    	drawable: XID, 
    	gc:       GC, 
    	x:        i32, 
    	y:        i32, 
    	string:   [^]u8, 
    	length:   i32, 
    ) ---
     

    Drawing text characters

    DrawString16 ¶

    DrawString16 :: proc "c" (
    	display:  ^Display, 
    	drawable: XID, 
    	gc:       GC, 
    	x:        i32, 
    	y:        i32, 
    	string:   [^]XChar2b, 
    	length:   i32, 
    ) ---

    DrawText ¶

    DrawText :: proc "c" (
    	display:  ^Display, 
    	drawable: XID, 
    	gc:       GC, 
    	x:        i32, 
    	y:        i32, 
    	items:    XTextItem, 
    	nitems:   i32, 
    ) ---
     

    Drawing complex text

    DrawText16 ¶

    DrawText16 :: proc "c" (
    	display:  ^Display, 
    	drawable: XID, 
    	gc:       GC, 
    	x:        i32, 
    	y:        i32, 
    	items:    XTextItem16, 
    	nitems:   i32, 
    ) ---

    EmptyRegion ¶

    EmptyRegion :: proc "c" (reg: Region) -> b32 ---

    EnableAccessControl ¶

    EnableAccessControl :: proc "c" (display: ^Display) ---

    EqualRegion ¶

    EqualRegion :: proc "c" (a, b: Region) -> b32 ---

    EventMaskOfScreen ¶

    EventMaskOfScreen :: proc "c" (screen: ^Screen) -> bit_set[EventMaskBits; int] ---

    EventsQueued ¶

    EventsQueued :: proc "c" (display: ^Display, mode: EventQueueMode) -> i32 ---

    ExtendedMaxRequestSize ¶

    ExtendedMaxRequestSize :: proc "c" (display: ^Display) -> int ---

    FetchBuffer ¶

    FetchBuffer :: proc "c" (display: ^Display, nbytes: ^i32, buffer: i32) -> [^]u8 ---

    FetchBytes ¶

    FetchBytes :: proc "c" (display: ^Display, nbytes: ^i32) -> [^]u8 ---

    FetchName ¶

    FetchName :: proc "c" (display: ^Display, window: XID, name: ^cstring) -> Status ---

    FillArc ¶

    FillArc :: proc "c" (
    	display:  ^Display, 
    	drawable: XID, 
    	gc:       GC, 
    	x:        i32, 
    	y:        i32, 
    	width:    u32, 
    	height:   u32, 
    	angle1:   i32, 
    	angle2:   i32, 
    ) ---

    FillArcs ¶

    FillArcs :: proc "c" (display: ^Display, drawable: XID, gc: GC, arcs: [^]XArc, narcs: i32) ---

    FillPolygon ¶

    FillPolygon :: proc "c" (
    	display:  ^Display, 
    	drawable: XID, 
    	gc:       GC, 
    	points:   [^]XPoint, 
    	npoints:  i32, 
    	shape:    Shape, 
    	mode:     CoordMode, 
    ) ---

    FillRectangle ¶

    FillRectangle :: proc "c" (
    	display:  ^Display, 
    	drawable: XID, 
    	gc:       GC, 
    	x:        i32, 
    	y:        i32, 
    	width:    u32, 
    	height:   u32, 
    ) ---
     

    Filling areas

    FillRectangles ¶

    FillRectangles :: proc "c" (display: ^Display, drawable: XID, gc: GC, rects: [^]XRectangle, nrects: i32) ---

    Flush ¶

    Flush :: proc "c" (display: ^Display) -> i32 ---

    FlushGC ¶

    FlushGC :: proc "c" (display: ^Display, gc: GC) ---

    ForceScreenSaver ¶

    ForceScreenSaver :: proc "c" (display: ^Display, mode: ScreenSaverForceMode) ---

    Free ¶

    Free :: proc "c" (ptr: rawptr) ---
     

    Free data allocated by Xlib

    FreeColormap ¶

    FreeColormap :: proc "c" (display: ^Display, colormap: XID) ---

    FreeColors ¶

    FreeColors :: proc "c" (display: ^Display, colormap: XID, pixels: [^]uint, npixels: i32, planes: uint) ---

    FreeCursor ¶

    FreeCursor :: proc "c" (display: ^Display, cursor: XID) ---

    FreeEventData ¶

    FreeEventData :: proc "c" (display: ^Display, cookie: ^XGenericEventCookie) ---

    FreeFont ¶

    FreeFont :: proc "c" (display: ^Display, font_struct: ^XFontStruct) ---

    FreeFontInfo ¶

    FreeFontInfo :: proc "c" (names: [^]cstring, info: [^]XFontStruct, count: i32) ---

    FreeFontNames ¶

    FreeFontNames :: proc "c" (display: ^Display, list: [^]cstring) ---

    FreeFontPath ¶

    FreeFontPath :: proc "c" (list: [^]cstring) ---

    FreeGC ¶

    FreeGC :: proc "c" (display: ^Display, gc: GC) ---

    FreeModifiermap ¶

    FreeModifiermap :: proc "c" (modmap: ^XModifierKeymap) ---

    FreePixmap ¶

    FreePixmap :: proc "c" (display: ^Display, pixmap: XID) ---

    GCContextFromGC ¶

    GCContextFromGC :: proc "c" (gc: GC) -> XID ---

    GetAtomName ¶

    GetAtomName :: proc "c" (display: ^Display, atom: Atom) -> cstring ---

    GetAtomNames ¶

    GetAtomNames :: proc "c" (display: ^Display, atoms: [^]Atom, count: i32, names: [^]cstring) -> Status ---

    GetClassHint ¶

    GetClassHint :: proc "c" (display: ^Display, window: XID, hint: ^XClassHint) -> Status ---

    GetCommand ¶

    GetCommand :: proc "c" (display: ^Display, window: XID, argv: ^[^]cstring, argc: ^i32) -> Status ---

    GetErrorDatabaseText ¶

    GetErrorDatabaseText :: proc "c" (
    	display:        ^Display, 
    	name:           cstring, 
    	message:        cstring, 
    	default_string: cstring, 
    	buffer:         [^]u8, 
    	size:           i32, 
    ) ---

    GetErrorText ¶

    GetErrorText :: proc "c" (display: ^Display, code: i32, buffer: [^]u8, size: i32) ---

    GetEventData ¶

    GetEventData :: proc "c" (display: ^Display, cookie: ^XGenericEventCookie) -> b32 ---

    GetFontPath ¶

    GetFontPath :: proc "c" (display: ^Display, npaths: ^i32) -> [^]cstring ---

    GetFontProperty ¶

    GetFontProperty :: proc "c" (font_struct: ^XFontStruct, atom: Atom, ret: ^uint) -> b32 ---

    GetGCValues ¶

    GetGCValues :: proc "c" (display: ^Display, gc: GC, mask: bit_set[GCAttributeMaskBits; uint], values: ^XGCValues) -> Status ---

    GetGeometry ¶

    GetGeometry :: proc "c" (
    	display:   ^Display, 
    	drawable:  XID, 
    	root:      ^XID, 
    	x:         ^i32, 
    	y:         ^i32, 
    	width:     ^u32, 
    	height:    ^u32, 
    	border_sz: ^u32, 
    	depth:     ^u32, 
    ) -> Status ---

    GetIconName ¶

    GetIconName :: proc "c" (display: ^Display, window: XID, prop: ^cstring) -> Status ---

    GetIconSizes ¶

    GetIconSizes :: proc "c" (display: ^Display, window: XID, size_list: ^[^]XIconSize, count: ^i32) -> Status ---

    GetImage ¶

    GetImage :: proc "c" (
    	display:  ^Display, 
    	drawable: XID, 
    	x:        i32, 
    	y:        i32, 
    	width:    u32, 
    	height:   u32, 
    	mask:     uint, 
    	format:   ImageFormat, 
    ) -> ^XImage ---

    GetInputFocus ¶

    GetInputFocus :: proc "c" (display: ^Display, focus: ^XID, revert_to: ^FocusRevert) ---

    GetKeyboardControl ¶

    GetKeyboardControl :: proc "c" (display: ^Display, values: ^XKeyboardState) ---

    GetKeyboardMapping ¶

    GetKeyboardMapping :: proc "c" (display: ^Display, first: u8, count: i32, keysyms_per: ^i32) -> ^KeySym ---

    GetModifierMapping ¶

    GetModifierMapping :: proc "c" (display: ^Display) -> ^XModifierKeymap ---

    GetMotionEvents ¶

    GetMotionEvents :: proc "c" (display: ^Display, window: XID, start: Time, stop: Time, nevents: ^i32) -> [^]XTimeCoord ---

    GetPixel ¶

    GetPixel :: proc "c" (image: ^XImage, x: i32, y: i32) -> uint ---

    GetPointerControl ¶

    GetPointerControl :: proc "c" (display: ^Display, accel_numerator: ^i32, accel_denominator: ^i32, threshold: ^i32) ---

    GetPointerMapping ¶

    GetPointerMapping :: proc "c" (display: ^Display, map_should_not_be_a_keyword: [^]u8, nmap: i32) -> i32 ---

    GetRGBColormaps ¶

    GetRGBColormaps :: proc "c" (display: ^Display, window: XID, colormap: ^[^]XStandardColormap, count: ^i32, prop: Atom) -> Status ---

    GetScreenSaver ¶

    GetScreenSaver :: proc "c" (display: ^Display, timeout: ^i32, interval: ^i32, blanking: ^ScreenSaverBlanking, exposures: ^ScreenSavingExposures) ---

    GetSelectionOwner ¶

    GetSelectionOwner :: proc "c" (display: ^Display, selection: Atom) -> XID ---

    GetSubImage ¶

    GetSubImage :: proc "c" (
    	display:  ^Display, 
    	drawable: XID, 
    	src_x:    i32, 
    	src_y:    i32, 
    	width:    u32, 
    	height:   u32, 
    	mask:     uint, 
    	format:   ImageFormat, 
    	dst:      ^XImage, 
    	dst_x:    i32, 
    	dst_y:    i32, 
    ) -> ^XImage ---

    GetTransientForHint ¶

    GetTransientForHint :: proc "c" (display: ^Display, window: XID, prop_window: ^XID) -> Status ---

    GetVisualInfo ¶

    GetVisualInfo :: proc "c" (display: ^Display, mask: bit_set[VisualInfoMaskBits; int], info: ^XVisualInfo, nret: ^i32) -> [^]XVisualInfo ---
     

    Determining the appropriate visual types

    GetWMClientMachine ¶

    GetWMClientMachine :: proc "c" (display: ^Display, window: XID, prop: ^XTextProperty) -> Status ---

    GetWMColormapWindows ¶

    GetWMColormapWindows :: proc "c" (display: ^Display, window: XID, colormap_windows: ^[^]XID, count: ^i32) -> Status ---

    GetWMHints ¶

    GetWMHints :: proc "c" (display: ^Display, window: XID) -> ^XWMHints ---

    GetWMIconName ¶

    GetWMIconName :: proc "c" (display: ^Display, window: XID, prop: ^XTextProperty) -> Status ---

    GetWMName ¶

    GetWMName :: proc "c" (display: ^Display, window: XID, prop: ^XTextProperty) -> Status ---

    GetWMNormalHints ¶

    GetWMNormalHints :: proc "c" (display: ^Display, window: XID, hints: ^XSizeHints, flags: ^bit_set[SizeHintsBits; uint]) -> Status ---

    GetWMProtocols ¶

    GetWMProtocols :: proc "c" (display: ^Display, window: XID, protocols: ^[^]Atom, count: ^i32) -> Status ---

    GetWMSizeHints ¶

    GetWMSizeHints :: proc "c" (display: ^Display, window: XID, hints: ^XSizeHints, masks: ^bit_set[SizeHintsBits; uint], prop: Atom) -> Status ---

    GetWindowAttributes ¶

    GetWindowAttributes :: proc "c" (display: ^Display, window: XID, attr: ^XWindowAttributes) -> i32 ---

    GetWindowProperty ¶

    GetWindowProperty :: proc "c" (
    	display:     ^Display, 
    	window:      XID, 
    	property:    Atom, 
    	long_offs:   int, 
    	long_len:    int, 
    	delete:      b32, 
    	req_type:    Atom, 
    	act_type:    [^]Atom, 
    	act_format:  [^]i32, 
    	nitems:      [^]uint, 
    	bytes_after: [^]uint, 
    	props:       ^rawptr, 
    ) -> i32 ---
     

    Windows: Obtaining and changing properties

    GrabButton ¶

    GrabButton :: proc "c" (
    	display:       ^Display, 
    	button:        u32, 
    	modifiers:     bit_set[InputMaskBits; i32], 
    	grab_window:   XID, 
    	owner_events:  b32, 
    	event_mask:    bit_set[EventMaskBits; int], 
    	pointer_mode:  GrabMode, 
    	keyboard_mode: GrabMode, 
    	confine_to:    XID, 
    	cursor:        XID, 
    ) ---

    GrabKey ¶

    GrabKey :: proc "c" (
    	display:       ^Display, 
    	keycode:       i32, 
    	modifiers:     bit_set[InputMaskBits; i32], 
    	grab_window:   XID, 
    	owner_events:  b32, 
    	pointer_mode:  GrabMode, 
    	keyboard_mode: GrabMode, 
    ) ---

    GrabKeyboard ¶

    GrabKeyboard :: proc "c" (
    	display:       ^Display, 
    	grab_window:   XID, 
    	owner_events:  b32, 
    	pointer_mode:  GrabMode, 
    	keyboard_mode: GrabMode, 
    	time:          Time, 
    ) -> i32 ---

    GrabPointer ¶

    GrabPointer :: proc "c" (
    	display:       ^Display, 
    	grab_window:   XID, 
    	owner_events:  b32, 
    	mask:          bit_set[EventMaskBits; int], 
    	pointer_mode:  GrabMode, 
    	keyboard_mode: GrabMode, 
    	confine_to:    XID, 
    	cursor:        XID, 
    	time:          Time, 
    ) -> i32 ---
     

    Pointer grabbing

    GrabServer ¶

    GrabServer :: proc "c" (display: ^Display) ---
     

    Grabbing the server

    HeightMMOfScreen ¶

    HeightMMOfScreen :: proc "c" (screen: ^Screen) -> i32 ---

    HeightOfScreen ¶

    HeightOfScreen :: proc "c" (screen: ^Screen) -> i32 ---

    HideCursor ¶

    HideCursor :: proc "c" (display: ^Display, window: XID) ---

    IconifyWindow ¶

    IconifyWindow :: proc "c" (dipslay: ^Display, window: XID, screen_no: i32) -> Status ---
     

    Manipulating top-level windows

    IfEvent ¶

    IfEvent :: proc "c" (display: ^Display, event: ^XEvent, predicate: proc "c" (display: ^Display, event: ^XEvent, ctx: rawptr) -> b32, ctx: rawptr) ---
     

    Selecting events using a predicate procedure

    ImageByteOrder ¶

    ImageByteOrder :: proc "c" (display: ^Display) -> ByteOrder ---

    InitImage ¶

    InitImage :: proc "c" (image: ^XImage) -> Status ---
     

    Transferring images between client and server

    InitThreads ¶

    InitThreads :: proc "c" () -> Status ---
     

    Threading functions

    InsertModifiermapEntry ¶

    InsertModifiermapEntry :: proc "c" (modmap: ^XModifierKeymap, keycode_entry: u8, modifier: i32) -> ^XModifierKeymap ---

    InstallColormap ¶

    InstallColormap :: proc "c" (display: ^Display, colormap: XID) ---
     

    Managing installed colormaps

    InternAtom ¶

    InternAtom :: proc "c" (display: ^Display, name: cstring, existing: b32) -> Atom ---
     

    Atoms

    InternAtoms ¶

    InternAtoms :: proc "c" (display: ^Display, names: [^]cstring, count: i32, atoms: [^]Atom) -> Status ---

    InternalConnectionNumbers ¶

    InternalConnectionNumbers :: proc "c" (display: ^Display, fds: ^[^]i32, count: ^i32) -> Status ---

    IntersectRegion ¶

    IntersectRegion :: proc "c" (sra, srb, ret: Region) ---

    KeycodeToKeysym ¶

    KeycodeToKeysym :: proc "c" (display: ^Display, keycode: u8, index: i32) -> KeySym ---

    KeysymToKeycode ¶

    KeysymToKeycode :: proc "c" (display: ^Display, keysym: KeySym) -> u8 ---

    KeysymToString ¶

    KeysymToString :: proc "c" (keysym: KeySym) -> cstring ---

    KillClient ¶

    KillClient :: proc "c" (display: ^Display, resource: XID) ---
     

    Killing clients

    LastKnownRequestProcessed ¶

    LastKnownRequestProcessed :: proc "c" (display: ^Display) -> uint ---

    ListDepths ¶

    ListDepths :: proc "c" (display: ^Display, screen_no: i32, count: ^i32) -> [^]i32 ---

    ListFonts ¶

    ListFonts :: proc "c" (display: ^Display, pat: cstring, max: i32, count: ^i32) -> [^]cstring ---

    ListFontsWithInfo ¶

    ListFontsWithInfo :: proc "c" (display: ^Display, pat: cstring, max: i32, count: ^i32, info: ^[^]XFontStruct) -> [^]cstring ---

    ListHosts ¶

    ListHosts :: proc "c" (display: ^Display, nhosts: ^i32, state: [^]b32) -> [^]XHostAddress ---

    ListInstalledColormaps ¶

    ListInstalledColormaps :: proc "c" (display: ^Display, window: XID, n: ^i32) -> [^]XID ---

    ListPixmapFormats ¶

    ListPixmapFormats :: proc "c" (display: ^Display, count: ^i32) -> [^]XPixmapFormatValues ---
     

    Display image format macros

    ListProperties ¶

    ListProperties :: proc "c" (display: ^Display, window: XID, num: ^i32) -> [^]Atom ---

    LoadFont ¶

    LoadFont :: proc "c" (display: ^Display, name: cstring) -> XID ---
     

    Font metrics

    LoadQueryFont ¶

    LoadQueryFont :: proc "c" (display: ^Display, name: cstring) -> ^XFontStruct ---

    LockDisplay ¶

    LockDisplay :: proc "c" (display: ^Display) ---

    LookupColor ¶

    LookupColor :: proc "c" (display: ^Display, colomap: XID, name: cstring, exact: ^XColor, screen: ^XColor) -> Status ---
     

    Mapping color names to values

    LookupKeysym ¶

    LookupKeysym :: proc "c" (event: ^XKeyEvent, index: i32) -> KeySym ---
     

    Keyboard utility functions

    LookupString ¶

    LookupString :: proc "c" (event: ^XKeyEvent, buffer: [^]u8, count: i32, keysym: ^KeySym, status: ^XComposeStatus) -> i32 ---

    LowerWindow ¶

    LowerWindow :: proc "c" (display: ^Display, window: XID) ---

    MapRaised ¶

    MapRaised :: proc "c" (display: ^Display, window: XID) ---

    MapSubwindows ¶

    MapSubwindows :: proc "c" (display: ^Display, window: XID) ---

    MapWindow ¶

    MapWindow :: proc "c" (display: ^Display, window: XID) ---
     

    Windows: mapping/unmapping

    MaskEvent ¶

    MaskEvent :: proc "c" (display: ^Display, mask: bit_set[EventMaskBits; int], event: ^XEvent) ---

    MatchVisualInfo ¶

    MatchVisualInfo :: proc "c" (display: ^Display, screen_no: i32, depth: i32, class: i32, ret: ^XVisualInfo) -> Status ---

    MaxCmapsOfScreen ¶

    MaxCmapsOfScreen :: proc "c" (screen: ^Screen) -> i32 ---

    MaxRequestSize ¶

    MaxRequestSize :: proc "c" (display: ^Display) -> int ---

    MinCmapsOfScreen ¶

    MinCmapsOfScreen :: proc "c" (screen: ^Screen) -> i32 ---

    MoveResizeWindow ¶

    MoveResizeWindow :: proc "c" (
    	display: ^Display, 
    	window:  XID, 
    	x:       i32, 
    	y:       i32, 
    	width:   u32, 
    	height:  u32, 
    ) ---

    MoveWindow ¶

    MoveWindow :: proc "c" (display: ^Display, window: XID, x: i32, y: i32) ---

    NewModifiermap ¶

    NewModifiermap :: proc "c" (max_keys_per_mode: i32) -> ^XModifierKeymap ---

    NextEvent ¶

    NextEvent :: proc "c" (display: ^Display, event: ^XEvent) ---

    NextRequest ¶

    NextRequest :: proc "c" (display: ^Display) -> uint ---

    NoOp ¶

    NoOp :: proc "c" (display: ^Display) ---
     

    Generate a no-op request

    OffsetRegion ¶

    OffsetRegion :: proc "c" (region: Region, dx, dy: i32) ---
     

    Moving or shrinking regions

    OpenDisplay ¶

    OpenDisplay :: proc "c" (name: cstring) -> ^Display ---
     

    Opening/closing a display

    OpenIM ¶

    OpenIM :: proc "c" (display: ^Display, rdb: XrmHashBucket, res_name: cstring, res_class: cstring) -> XIM ---

    ParseGeometry ¶

    ParseGeometry :: proc "c" (parsestring: cstring, x_ret: ^i32, y_ret: ^i32, width: ^u32, height: ^u32) -> i32 ---
     

    Parsing the window geometry

    PeekEvent ¶

    PeekEvent :: proc "c" (display: ^Display, event: ^XEvent) ---

    PeekIfEvent ¶

    PeekIfEvent :: proc "c" (display: ^Display, event: ^XEvent, predicate: proc "c" (display: ^Display, event: ^XEvent, ctx: rawptr) -> b32, ctx: rawptr) ---

    Pending ¶

    Pending :: proc "c" (display: ^Display) -> i32 ---

    Permalloc ¶

    Permalloc :: proc "c" (size: u32) -> rawptr ---
     

    Allocating permanent storage

    PlanesOfScreen ¶

    PlanesOfScreen :: proc "c" (screen: ^Screen) -> i32 ---

    PointInRegion ¶

    PointInRegion :: proc "c" (reg: Region, x, y: i32) -> b32 ---

    PolygonRegion ¶

    PolygonRegion :: proc "c" (points: [^]XPoint, n: i32, fill: FillRule) -> Region ---

    ProcessInternalConnections ¶

    ProcessInternalConnections :: proc "c" (display: ^Display, fd: i32) ---

    ProtocolRevision ¶

    ProtocolRevision :: proc "c" (display: ^Display) -> i32 ---

    ProtocolVersion ¶

    ProtocolVersion :: proc "c" (display: ^Display) -> i32 ---

    PutBackEvent ¶

    PutBackEvent :: proc "c" (display: ^Display, event: ^XEvent) ---
     

    Putting events back

    PutImage ¶

    PutImage :: proc "c" (
    	display:  ^Display, 
    	drawable: XID, 
    	gc:       GC, 
    	image:    ^XImage, 
    	src_x:    i32, 
    	src_y:    i32, 
    	dst_x:    i32, 
    	dst_y:    i32, 
    	width:    u32, 
    	height:   u32, 
    ) ---

    PutPixel ¶

    PutPixel :: proc "c" (image: ^XImage, x: i32, y: i32, pixel: uint) ---

    QLength ¶

    QLength :: proc "c" (display: ^Display) -> i32 ---

    QueryBestCursor ¶

    QueryBestCursor :: proc "c" (
    	display:    ^Display, 
    	drawable:   XID, 
    	width:      u32, 
    	height:     u32, 
    	out_width:  ^u32, 
    	out_height: ^u32, 
    ) -> Status ---

    QueryBestSize ¶

    QueryBestSize :: proc "c" (
    	display:    ^Display, 
    	class:      i32, 
    	which:      XID, 
    	width:      u32, 
    	height:     u32, 
    	out_width:  ^u32, 
    	out_height: ^u32, 
    ) -> Status ---

    QueryBestStripple ¶

    QueryBestStripple :: proc "c" (
    	display:    ^Display, 
    	which:      XID, 
    	width:      u32, 
    	height:     u32, 
    	out_width:  u32, 
    	out_height: u32, 
    ) -> Status ---

    QueryBestTile ¶

    QueryBestTile :: proc "c" (
    	display:    ^Display, 
    	which:      XID, 
    	width:      u32, 
    	height:     u32, 
    	out_width:  ^u32, 
    	out_height: ^u32, 
    ) -> Status ---

    QueryColor ¶

    QueryColor :: proc "c" (display: ^Display, colormap: XID, color: ^XColor) ---

    QueryColors ¶

    QueryColors :: proc "c" (display: ^Display, colormap: XID, colors: [^]XColor, ncolors: i32) ---

    QueryExtension ¶

    QueryExtension :: proc "c" (display: ^Display, name: cstring, major_opcode_return: ^i32, first_event_return: ^i32, first_error_return: ^i32) -> b32 ---

    QueryFont ¶

    QueryFont :: proc "c" (display: ^Display, id: XID) -> ^XFontStruct ---

    QueryKeymap ¶

    QueryKeymap :: proc "c" (display: ^Display, keys: [^]u32) ---

    QueryPointer ¶

    QueryPointer :: proc "c" (
    	display: ^Display, 
    	window:  XID, 
    	root:    ^XID, 
    	child:   ^XID, 
    	root_x:  ^i32, 
    	root_y:  ^i32, 
    	x:       ^i32, 
    	y:       ^i32, 
    	mask:    ^KeyMask, 
    ) -> b32 ---

    QueryTextExtents ¶

    QueryTextExtents :: proc "c" (
    	display:   ^Display, 
    	font_id:   XID, 
    	string:    [^]u8, 
    	nchars:    i32, 
    	direction: ^FontDirection, 
    	ascent:    ^i32, 
    	descent:   ^i32, 
    	ret:       ^XCharStruct, 
    ) ---

    QueryTextExtents16 ¶

    QueryTextExtents16 :: proc "c" (
    	display:   ^Display, 
    	font_id:   XID, 
    	string:    [^]XChar2b, 
    	nchars:    i32, 
    	direction: ^FontDirection, 
    	ascent:    ^i32, 
    	descent:   ^i32, 
    	ret:       ^XCharStruct, 
    ) ---

    QueryTree ¶

    QueryTree :: proc "c" (
    	display:   ^Display, 
    	window:    XID, 
    	root:      ^XID, 
    	parent:    ^XID, 
    	children:  ^[^]XID, 
    	nchildren: ^u32, 
    ) -> Status ---
     

    Windows: querying information

    RaiseWindow ¶

    RaiseWindow :: proc "c" (display: ^Display, window: XID) ---
     

    Window: changing stacking order

    RebindKeysym ¶

    RebindKeysym :: proc "c" (
    	display:   ^Display, 
    	keysym:    KeySym, 
    	list:      [^]KeySym, 
    	mod_count: i32, 
    	string:    [^]u8, 
    	num_bytes: i32, 
    ) ---

    RecolorCursor ¶

    RecolorCursor :: proc "c" (display: ^Display, cursor: XID, fg: ^XColor, bg: ^XColor) ---

    ReconfigureWMWindow ¶

    ReconfigureWMWindow :: proc "c" (dipslay: ^Display, window: XID, screen_no: i32, mask: bit_set[WindowChangesMaskBits; i32], changes: ^XWindowChanges) -> Status ---

    RectInRegion ¶

    RectInRegion :: proc "c" (reg: Region, x, y: i32, w, h: u32) -> b32 ---

    RefreshKeyboardMapping ¶

    RefreshKeyboardMapping :: proc "c" (event_map: ^XMappingEvent) ---

    RemoveConnectionWatch ¶

    RemoveConnectionWatch :: proc "c" (display: ^Display, procedure: XConnectionWatchProc, data: rawptr) -> Status ---

    RemoveFromSaveSet ¶

    RemoveFromSaveSet :: proc "c" (display: ^Display, window: XID) ---

    RemoveHost ¶

    RemoveHost :: proc "c" (display: ^Display, host: XHostAddress) ---

    RemoveHosts ¶

    RemoveHosts :: proc "c" (display: ^Display, hosts: [^]XHostAddress, nhosts: i32) ---

    ReparentWindow ¶

    ReparentWindow :: proc "c" (display: ^Display, window: XID, parent: XID, x: i32, y: i32) ---
     

    Window and session manager functions

    ResetScreenSaver ¶

    ResetScreenSaver :: proc "c" (display: ^Display) ---

    ResizeWindow ¶

    ResizeWindow :: proc "c" (display: ^Display, window: XID, width: u32, height: u32) ---

    ResourceManagerString ¶

    ResourceManagerString :: proc "c" (display: ^Display) -> cstring ---

    RestackWindows ¶

    RestackWindows :: proc "c" (display: ^Display, windows: [^]XID, nwindows: i32) ---

    RootWindow ¶

    RootWindow :: proc "c" (display: ^Display, screen_no: i32) -> XID ---
     

    Display macros (other)

    RootWindowOfScreen ¶

    RootWindowOfScreen :: proc "c" (screen: ^Screen) -> XID ---

    RotateWindowProperties ¶

    RotateWindowProperties :: proc "c" (display: ^Display, window: XID, props: [^]Atom, nprops: i32, npos: i32) -> i32 ---

    ScreenCount ¶

    ScreenCount :: proc "c" (display: ^Display) -> i32 ---

    ScreenNumberOfScreen ¶

    ScreenNumberOfScreen :: proc "c" (screen: ^Screen) -> i32 ---

    ScreenOfDisplay ¶

    ScreenOfDisplay :: proc "c" (display: ^Display, screen_no: i32) -> ^Screen ---

    SelectInput ¶

    SelectInput :: proc "c" (display: ^Display, window: XID, mask: bit_set[EventMaskBits; int]) ---
     

    Events

    SendEvent ¶

    SendEvent :: proc "c" (display: ^Display, window: XID, propagate: b32, mask: bit_set[EventMaskBits; int], event: ^XEvent) -> Status ---
     

    Sending events to other applications

    ServerVendor ¶

    ServerVendor :: proc "c" (display: ^Display) -> cstring ---

    SetAccessControl ¶

    SetAccessControl :: proc "c" (display: ^Display, mode: AccessControlMode) ---
     

    Access control list

    SetAfterFunction ¶

    SetAfterFunction :: proc "c" (display: ^Display, procedure: proc "c" (display: ^Display) -> i32) -> i32 ---
     

    Enabling or disabling synchronization

    SetArcMode ¶

    SetArcMode :: proc "c" (display: ^Display, gc: GC, mode: ArcMode) ---

    SetBackground ¶

    SetBackground :: proc "c" (display: ^Display, gc: GC, bg: uint) ---

    SetClassHint ¶

    SetClassHint :: proc "c" (display: ^Display, window: XID, hint: ^XClassHint) ---

    SetClipMask ¶

    SetClipMask :: proc "c" (display: ^Display, gc: GC, pixmap: XID) ---

    SetClipOrigin ¶

    SetClipOrigin :: proc "c" (display: ^Display, gc: GC, x: i32, y: i32) ---

    SetClipRectangles ¶

    SetClipRectangles :: proc "c" (
    	display:  ^Display, 
    	gc:       GC, 
    	x:        i32, 
    	y:        i32, 
    	rects:    [^]XRectangle, 
    	n:        i32, 
    	ordering: i32, 
    ) ---

    SetCloseDownMode ¶

    SetCloseDownMode :: proc "c" (display: ^Display, mode: CloseMode) ---

    SetCommand ¶

    SetCommand :: proc "c" (display: ^Display, window: XID, argv: [^]cstring, argc: i32) ---
     

    Client to session manager communication

    SetDashes ¶

    SetDashes :: proc "c" (display: ^Display, gc: GC, dash_offs: i32, dash_list: [^]i8, n: i32) ---

    SetErrorHandler ¶

    SetErrorHandler :: proc "c" (handler: proc "c" (display: ^Display, event: ^XErrorEvent) -> i32) -> i32 ---
     

    Error handling

    SetFillRule ¶

    SetFillRule :: proc "c" (display: ^Display, gc: GC, rule: FillRule) ---

    SetFillStyle ¶

    SetFillStyle :: proc "c" (display: ^Display, gc: GC, style: FillStyle) ---

    SetFont ¶

    SetFont :: proc "c" (display: ^Display, gc: GC, font: XID) ---

    SetFontPath ¶

    SetFontPath :: proc "c" (display: ^Display, dirs: [^]cstring, ndirs: i32) ---
     

    Setting and retrieving font search paths

    SetForeground ¶

    SetForeground :: proc "c" (display: ^Display, gc: GC, fg: uint) ---

    SetFunction ¶

    SetFunction :: proc "c" (display: ^Display, gc: GC, fn: GCFunction) ---

    SetGraphicsExposures ¶

    SetGraphicsExposures :: proc "c" (display: ^Display, gc: GC, exp: b32) ---

    SetIOErrorHandler ¶

    SetIOErrorHandler :: proc "c" (handler: proc "c" (display: ^Display) -> i32) -> i32 ---

    SetIconName ¶

    SetIconName :: proc "c" (display: ^Display, window: XID, name: cstring) ---

    SetIconSizes ¶

    SetIconSizes :: proc "c" (display: ^Display, window: XID, size_list: [^]XIconSize, count: i32) ---

    SetInputFocus ¶

    SetInputFocus :: proc "c" (display: ^Display, focus: XID, revert_to: FocusRevert, time: Time) ---
     

    Controlling input focus

    SetLineAttributes ¶

    SetLineAttributes :: proc "c" (
    	display:    ^Display, 
    	gc:         GC, 
    	width:      u32, 
    	line_style: LineStyle, 
    	cap_style:  CapStyle, 
    	join_style: JoinStyle, 
    ) ---

    SetLocaleModifiers ¶

    SetLocaleModifiers :: proc "c" (modifiers: cstring) -> cstring ---

    SetModifierMapping ¶

    SetModifierMapping :: proc "c" (display: ^Display, modmap: ^XModifierKeymap) -> i32 ---

    SetPlaneMask ¶

    SetPlaneMask :: proc "c" (display: ^Display, gc: GC, pmask: uint) ---

    SetPointerMapping ¶

    SetPointerMapping :: proc "c" (display: ^Display, map_should_not_be_a_keyword: [^]u8, nmap: i32) -> i32 ---

    SetRGBColormaps ¶

    SetRGBColormaps :: proc "c" (display: ^Display, window: XID, colormap: ^XStandardColormap, prop: Atom) ---

    SetRegion ¶

    SetRegion :: proc "c" (display: ^Display, gc: GC, region: Region) ---

    SetScreenSaver ¶

    SetScreenSaver :: proc "c" (display: ^Display, timeout: i32, interval: i32, blanking: ScreenSaverBlanking, exposures: ScreenSavingExposures) ---
     

    Controlling the screen saver

    SetSelectionOwner ¶

    SetSelectionOwner :: proc "c" (display: ^Display, selection: Atom, owber: XID, time: Time) ---
     

    Selections

    SetState ¶

    SetState :: proc "c" (
    	display: ^Display, 
    	gc:      GC, 
    	fg:      uint, 
    	bg:      uint, 
    	fn:      GCFunction, 
    	pmask:   uint, 
    ) ---
     

    Convenience routines for GC

    SetStripple ¶

    SetStripple :: proc "c" (display: ^Display, gc: GC, stripple: XID) ---

    SetSubwindowMode ¶

    SetSubwindowMode :: proc "c" (display: ^Display, gc: GC, mode: SubwindowMode) ---

    SetTSOrigin ¶

    SetTSOrigin :: proc "c" (display: ^Display, gc: GC, x: i32, y: i32) ---

    SetTile ¶

    SetTile :: proc "c" (display: ^Display, gc: GC, tile: XID) ---

    SetTransientForHint ¶

    SetTransientForHint :: proc "c" (display: ^Display, window: XID, prop_window: XID) ---
     

    Setting and reading WM_TRANSIENT_FOR property

    SetWMClientMachine ¶

    SetWMClientMachine :: proc "c" (display: ^Display, window: XID, prop: ^XTextProperty) ---

    SetWMColormapWindows ¶

    SetWMColormapWindows :: proc "c" (display: ^Display, window: XID, colormap_windows: [^]XID, count: i32) -> Status ---
     

    Setting and reading the WM_COLORMAP_WINDOWS property

    SetWMHints ¶

    SetWMHints :: proc "c" (display: ^Display, window: XID, hints: ^XWMHints) ---

    SetWMIconName ¶

    SetWMIconName :: proc "c" (display: ^Display, window: XID, prop: ^XTextProperty) ---

    SetWMName ¶

    SetWMName :: proc "c" (display: ^Display, window: XID, prop: ^XTextProperty) ---
     

    Getting and setting the WM_NAME property

    SetWMNormalHints ¶

    SetWMNormalHints :: proc "c" (display: ^Display, window: XID, hints: ^XSizeHints) ---

    SetWMProperties ¶

    SetWMProperties :: proc "c" (
    	display:      ^Display, 
    	window:       XID, 
    	window_name:  ^XTextProperty, 
    	argv:         [^]cstring, 
    	argc:         i32, 
    	normal_hints: ^XSizeHints, 
    	wm_hints:     ^XWMHints, 
    	class_hints:  ^XWMHints, 
    ) ---

    SetWMProtocols ¶

    SetWMProtocols :: proc "c" (display: ^Display, window: XID, protocols: [^]Atom, count: i32) -> Status ---
     

    Setting and reading the WM_PROTOCOLS property

    SetWMSizeHints ¶

    SetWMSizeHints :: proc "c" (display: ^Display, window: XID, hints: ^XSizeHints, prop: Atom) ---

    SetWindowBackground ¶

    SetWindowBackground :: proc "c" (display: ^Display, window: XID, pixel: uint) ---

    SetWindowBackgroundMap ¶

    SetWindowBackgroundMap :: proc "c" (display: ^Display, window: XID, pixmap: XID) ---

    SetWindowBorder ¶

    SetWindowBorder :: proc "c" (display: ^Display, window: XID, pixel: uint) ---

    SetWindowBorderWidth ¶

    SetWindowBorderWidth :: proc "c" (display: ^Display, window: XID, width: u32) ---

    SetWindowColormap ¶

    SetWindowColormap :: proc "c" (display: ^Display, window: XID, colormap: XID) ---

    ShowCursor ¶

    ShowCursor :: proc "c" (display: ^Display, window: XID) ---

    ShrinkRegion ¶

    ShrinkRegion :: proc "c" (region: Region, dx, dy: i32) ---

    StoreBuffer ¶

    StoreBuffer :: proc "c" (display: ^Display, bytes: [^]u8, nbytes: i32, buffer: i32) ---

    StoreBytes ¶

    StoreBytes :: proc "c" (display: ^Display, bytes: [^]u8, nbytes: i32) ---
     

    Using cut buffers

    StoreColor ¶

    StoreColor :: proc "c" (display: ^Display, colormap: XID, color: ^XColor) ---
     

    Modifying and querying colormap cells

    StoreColors ¶

    StoreColors :: proc "c" (display: ^Display, colormap: XID, color: [^]XColor, ncolors: i32) ---

    StoreName ¶

    StoreName :: proc "c" (display: ^Display, window: XID, name: cstring) ---

    StoreNamedColor ¶

    StoreNamedColor :: proc "c" (display: ^Display, colormap: XID, name: cstring, pixel: uint, flags: bit_set[ColorFlagsBits; i32]) ---

    StringToKeysym ¶

    StringToKeysym :: proc "c" (str: cstring) -> KeySym ---

    SubImage ¶

    SubImage :: proc "c" (image: ^XImage, x: i32, y: i32, w: u32, h: u32) -> ^XImage ---

    SubtractRegion ¶

    SubtractRegion :: proc "c" (sra, srb, ret: Region) ---

    Sync ¶

    Sync :: proc "c" (display: ^Display, discard: bool) -> i32 ---

    Synchronize ¶

    Synchronize :: proc "c" (display: ^Display, onoff: b32) -> i32 ---

    TextExtents ¶

    TextExtents :: proc "c" (
    	font_struct: ^XFontStruct, 
    	string:      [^]u8, 
    	nchars:      i32, 
    	direction:   ^FontDirection, 
    	ascent:      ^i32, 
    	descent:     ^i32, 
    	ret:         ^XCharStruct, 
    ) ---

    TextExtents16 ¶

    TextExtents16 :: proc "c" (
    	font_struct: ^XFontStruct, 
    	string:      [^]XChar2b, 
    	nchars:      i32, 
    	direction:   ^FontDirection, 
    	ascent:      ^i32, 
    	descent:     ^i32, 
    	ret:         ^XCharStruct, 
    ) ---

    TextWidth ¶

    TextWidth :: proc "c" (font_struct: ^XFontStruct, string: [^]u8, count: i32) -> i32 ---
     

    Computing character string sizes

    TextWidth16 ¶

    TextWidth16 :: proc "c" (font_struct: ^XFontStruct, string: [^]XChar2b, count: i32) -> i32 ---

    TranslateCoordinates ¶

    TranslateCoordinates :: proc "c" (
    	display:    ^Display, 
    	src_window: XID, 
    	dst_window: XID, 
    	src_x:      i32, 
    	src_y:      i32, 
    	dst_x:      ^i32, 
    	dst_y:      ^i32, 
    ) -> b32 ---
     

    Windows: translating screen coordinates

    UndefineCursor ¶

    UndefineCursor :: proc "c" (display: ^Display, window: XID) -> i32 ---

    UngrabButton ¶

    UngrabButton :: proc "c" (display: ^Display, button: u32, modifiers: bit_set[InputMaskBits; i32], grab_window: XID) ---

    UngrabKey ¶

    UngrabKey :: proc "c" (display: ^Display, keycode: i32, modifiers: bit_set[InputMaskBits; i32], grab_window: XID) ---

    UngrabKeyboard ¶

    UngrabKeyboard :: proc "c" (display: ^Display, time: Time) ---

    UngrabPointer ¶

    UngrabPointer :: proc "c" (display: ^Display, time: Time) -> i32 ---

    UngrabServer ¶

    UngrabServer :: proc "c" (display: ^Display) ---

    UninstallColormap ¶

    UninstallColormap :: proc "c" (display: ^Display, colormap: XID) ---

    UnionRectWithRegion ¶

    UnionRectWithRegion :: proc "c" (rect: ^XRectangle, src, dst: Region) ---

    UnionRegion ¶

    UnionRegion :: proc "c" (sra, srb, ret: Region) ---

    UnloadFont ¶

    UnloadFont :: proc "c" (display: ^Display, font: XID) ---

    UnlockDisplay ¶

    UnlockDisplay :: proc "c" (display: ^Display) ---

    UnmapSubwindows ¶

    UnmapSubwindows :: proc "c" (display: ^Display, window: XID) ---

    UnmapWindow ¶

    UnmapWindow :: proc "c" (display: ^Display, window: XID) ---

    VendorRelease ¶

    VendorRelease :: proc "c" (display: ^Display) -> i32 ---

    VisualIDFromVisual ¶

    VisualIDFromVisual :: proc "c" (visual: ^Visual) -> VisualID ---
     

    Windows functions

    WMGeometry ¶

    WMGeometry :: proc "c" (
    	display:   ^Display, 
    	screen_no: i32, 
    	user_geom: cstring, 
    	def_geom:  cstring, 
    	bwidth:    u32, 
    	hints:     ^XSizeHints, 
    	x_ret:     ^i32, 
    	y_ret:     ^i32, 
    	w_ret:     ^u32, 
    	h_ret:     ^u32, 
    	grav:      ^Gravity, 
    ) -> i32 ---

    WarpPointer ¶

    WarpPointer :: proc "c" (
    	display:    ^Display, 
    	src_window: XID, 
    	dst_window: XID, 
    	src_x:      i32, 
    	src_y:      i32, 
    	src_width:  u32, 
    	src_height: u32, 
    	dst_x:      i32, 
    	dst_y:      i32, 
    ) ---
     

    Moving the pointer

    WhitePixel ¶

    WhitePixel :: proc "c" (display: ^Display, screen_no: i32) -> uint ---

    WhitePixelsOfScreen ¶

    WhitePixelsOfScreen :: proc "c" (screen: ^Screen) -> uint ---

    WidthMMOfScreen ¶

    WidthMMOfScreen :: proc "c" (screen: ^Screen) -> i32 ---

    WidthOfScreen ¶

    WidthOfScreen :: proc "c" (screen: ^Screen) -> i32 ---

    WindowEvent ¶

    WindowEvent :: proc "c" (display: ^Display, window: XID, mask: bit_set[EventMaskBits; int], event: ^XEvent) ---
     

    Selecting events using a window or event mask

    WithdrawWindow ¶

    WithdrawWindow :: proc "c" (dipslay: ^Display, window: XID, screen_no: i32) -> Status ---

    XIMaskIsSet ¶

    XIMaskIsSet :: proc(ptr: [^]u8, event: i32) -> bool {…}

    XIQueryVersion ¶

    XIQueryVersion :: proc "c" (display: ^Display, major: ^i32, minor: ^i32) -> Status ---

    XISelectEvents ¶

    XISelectEvents :: proc "c" (display: ^Display, window: XID, masks: [^]XIEventMask, num_masks: i32) -> i32 ---

    XISetMask ¶

    XISetMask :: proc(ptr: [^]u8, event: XIEventType) {…}

    XRRFreeCrtcInfo ¶

    XRRFreeCrtcInfo :: proc "c" (crtc_info: ^XRRCrtcInfo) ---

    XRRFreeOutputInfo ¶

    XRRFreeOutputInfo :: proc "c" (output_info: ^XRROutputInfo) ---

    XRRFreeScreenResources ¶

    XRRFreeScreenResources :: proc "c" (resources: ^XRRScreenResources) ---

    XRRGetCrtcInfo ¶

    XRRGetCrtcInfo :: proc "c" (display: ^Display, resources: ^XRRScreenResources, crtc: XID) -> ^XRRCrtcInfo ---

    XRRGetMonitors ¶

    XRRGetMonitors :: proc "c" (dpy: ^Display, window: XID, get_active: b32, nmonitors: ^i32) -> [^]XRRMonitorInfo ---

    XRRGetOutputInfo ¶

    XRRGetOutputInfo :: proc "c" (display: ^Display, resources: ^XRRScreenResources, output: XID) -> ^XRROutputInfo ---

    XRRGetScreenResources ¶

    XRRGetScreenResources :: proc "c" (display: ^Display, window: XID) -> ^XRRScreenResources ---

    XRRSizes ¶

    XRRSizes :: proc "c" (display: ^Display, screen: i32, nsizes: ^i32) -> [^]XRRScreenSize ---

    XcmsAllocColor ¶

    XcmsAllocColor :: proc "c" (display: ^Display, colormap: XID, color: ^XcmsColor, format: uint) -> Status ---

    XcmsAllocNamedColor ¶

    XcmsAllocNamedColor :: proc "c" (
    	display:  ^Display, 
    	colormap: XID, 
    	name:     cstring, 
    	screen:   ^XcmsColor, 
    	exact:    ^XcmsColor, 
    	format:   uint, 
    ) -> Status ---

    XcmsCCCOfColormap ¶

    XcmsCCCOfColormap :: proc "c" (display: ^Display, colormap: XID) -> XcmsCCC ---
     

    Getting and setting the color conversion context (CCC) of a colormap

    XcmsCIELabClipL ¶

    XcmsCIELabClipL :: proc "c" (ctx: XcmsCCC, colors: [^]XcmsColor, ncolors: u32, index: u32, flags: [^]b32) -> Status ---
     

    Pre-defined gamut compression callbacks

    XcmsCIELabClipLab ¶

    XcmsCIELabClipLab :: proc "c" (ctx: XcmsCCC, colors: [^]XcmsColor, ncolors: u32, index: u32, flags: [^]b32) -> Status ---

    XcmsCIELabClipab ¶

    XcmsCIELabClipab :: proc "c" (ctx: XcmsCCC, colors: [^]XcmsColor, ncolors: u32, index: u32, flags: [^]b32) -> Status ---

    XcmsCIELabQueryMaxC ¶

    XcmsCIELabQueryMaxC :: proc "c" (ccc: XcmsCCC, hue: f64, lstar: f64, color: ^XcmsColor) -> Status ---
     

    CIELab queries

    XcmsCIELabQueryMaxL ¶

    XcmsCIELabQueryMaxL :: proc "c" (ccc: XcmsCCC, hue: f64, chroma: f64, color: ^XcmsColor) -> Status ---

    XcmsCIELabQueryMaxLC ¶

    XcmsCIELabQueryMaxLC :: proc "c" (ccc: XcmsCCC, hue: f64, color: ^XcmsColor) -> Status ---

    XcmsCIELabQueryMinL ¶

    XcmsCIELabQueryMinL :: proc "c" (ccc: XcmsCCC, hue: f64, chroma: f64, color: ^XcmsColor) -> Status ---

    XcmsCIELabWhiteShiftColors ¶

    XcmsCIELabWhiteShiftColors :: proc "c" (
    	ctx:                 XcmsCCC, 
    	initial_white_point: ^XcmsColor, 
    	target_white_point:  ^XcmsColor, 
    	target_format:       uint, 
    	colors:              [^]XcmsColor, 
    	ncolors:             u32, 
    	compression:         [^]b32, 
    ) -> Status ---
     

    Pre-defined white-point adjustment procedures

    XcmsCIELuvClipL ¶

    XcmsCIELuvClipL :: proc "c" (ctx: XcmsCCC, colors: [^]XcmsColor, ncolors: u32, index: u32, flags: [^]b32) -> Status ---

    XcmsCIELuvClipLuv ¶

    XcmsCIELuvClipLuv :: proc "c" (ctx: XcmsCCC, colors: [^]XcmsColor, ncolors: u32, index: u32, flags: [^]b32) -> Status ---

    XcmsCIELuvClipuv ¶

    XcmsCIELuvClipuv :: proc "c" (ctx: XcmsCCC, colors: [^]XcmsColor, ncolors: u32, index: u32, flags: [^]b32) -> Status ---

    XcmsCIELuvQueryMaxC ¶

    XcmsCIELuvQueryMaxC :: proc "c" (ccc: XcmsCCC, hue: f64, lstar: f64, color: ^XcmsColor) -> Status ---
     

    CIEluv queries

    XcmsCIELuvQueryMaxL ¶

    XcmsCIELuvQueryMaxL :: proc "c" (ccc: XcmsCCC, hue: f64, chroma: f64, color: ^XcmsColor) -> Status ---

    XcmsCIELuvQueryMaxLC ¶

    XcmsCIELuvQueryMaxLC :: proc "c" (ccc: XcmsCCC, hue: f64, color: ^XcmsColor) -> Status ---

    XcmsCIELuvQueryMinL ¶

    XcmsCIELuvQueryMinL :: proc "c" (ccc: XcmsCCC, hue: f64, chroma: f64, color: ^XcmsColor) -> Status ---

    XcmsCIELuvWhiteShiftColors ¶

    XcmsCIELuvWhiteShiftColors :: proc "c" (
    	ctx:                 XcmsCCC, 
    	initial_white_point: ^XcmsColor, 
    	target_white_point:  ^XcmsColor, 
    	target_format:       uint, 
    	colors:              [^]XcmsColor, 
    	ncolors:             u32, 
    	compression:         [^]b32, 
    ) -> Status ---

    XcmsClientWhitePointOfCCC ¶

    XcmsClientWhitePointOfCCC :: proc "c" (ccc: XcmsCCC) -> XcmsColor ---

    XcmsConvertColors ¶

    XcmsConvertColors :: proc "c" (ccc: XcmsCCC, colors: [^]XcmsColor, ncolors: u32, format: uint, cflags: [^]b32) -> Status ---
     

    Converting between colorspaces

    XcmsCreateCCC ¶

    XcmsCreateCCC :: proc "c" (
    	display:     ^Display, 
    	screen_no:   i32, 
    	visual:      ^Visual, 
    	white_point: ^XcmsColor, 
    	cproc:       XcmsCompressionProc, 
    	cdata:       rawptr, 
    	aproc:       XcmsWhiteAdjustProc, 
    	adata:       rawptr, 
    ) -> XcmsCCC ---
     

    Creating and freeing the color conversion context

    XcmsDefaultCCC ¶

    XcmsDefaultCCC :: proc "c" (display: ^Display, screen_no: i32) -> XcmsCCC ---

    XcmsDisplayOfCCC ¶

    XcmsDisplayOfCCC :: proc "c" (ccc: XcmsCCC) -> ^Display ---
     

    Color conversion context macros

    XcmsFreeCCC ¶

    XcmsFreeCCC :: proc "c" (ccc: XcmsCCC) ---

    XcmsLookupColor ¶

    XcmsLookupColor :: proc "c" (
    	display:  ^Display, 
    	colormap: XID, 
    	name:     cstring, 
    	exact:    XcmsColor, 
    	screen:   XcmsColor, 
    	format:   uint, 
    ) -> Status ---

    XcmsQueryBlack ¶

    XcmsQueryBlack :: proc "c" (ccc: XcmsCCC, format: uint, color: ^XcmsColor) -> Status ---
     

    Color querying

    XcmsQueryBlue ¶

    XcmsQueryBlue :: proc "c" (ccc: XcmsCCC, format: uint, color: ^XcmsColor) -> Status ---

    XcmsQueryColor ¶

    XcmsQueryColor :: proc "c" (display: ^Display, colormap: XID, color: ^XcmsColor, format: uint) -> Status ---

    XcmsQueryColors ¶

    XcmsQueryColors :: proc "c" (display: ^Display, colormap: XID, color: [^]XcmsColor, ncolors: i32, format: uint) -> Status ---

    XcmsQueryGreen ¶

    XcmsQueryGreen :: proc "c" (ccc: XcmsCCC, format: uint, color: ^XcmsColor) -> Status ---

    XcmsQueryRed ¶

    XcmsQueryRed :: proc "c" (ccc: XcmsCCC, format: uint, color: ^XcmsColor) -> Status ---

    XcmsQueryWhite ¶

    XcmsQueryWhite :: proc "c" (ccc: XcmsCCC, format: uint, color: ^XcmsColor) -> Status ---

    XcmsScreenNumberOfCCC ¶

    XcmsScreenNumberOfCCC :: proc "c" (ccc: XcmsCCC) -> i32 ---

    XcmsScreenWhitePointOfCCC ¶

    XcmsScreenWhitePointOfCCC :: proc "c" (ccc: XcmsCCC) -> XcmsColor ---

    XcmsSetCCCOfColormap ¶

    XcmsSetCCCOfColormap :: proc "c" (display: ^Display, colormap: XID, ccc: XcmsCCC) -> XcmsCCC ---

    XcmsSetCompressionProc ¶

    XcmsSetCompressionProc :: proc "c" (ccc: XcmsCCC, cproc: XcmsCompressionProc, data: rawptr) -> XcmsCompressionProc ---

    XcmsSetWhiteAdjustProc ¶

    XcmsSetWhiteAdjustProc :: proc "c" (ccc: XcmsCCC, aproc: XcmsWhiteAdjustProc, data: rawptr) -> XcmsWhiteAdjustProc ---

    XcmsSetWhitePoint ¶

    XcmsSetWhitePoint :: proc "c" (ccc: XcmsCCC, color: ^XcmsColor) -> Status ---
     

    Modifying the attributes of color conversion context

    XcmsStoreColor ¶

    XcmsStoreColor :: proc "c" (display: ^Display, colormap: XID, color: ^XcmsColor) -> Status ---

    XcmsStoreColors ¶

    XcmsStoreColors :: proc "c" (display: ^Display, colormap: XID, colors: [^]XcmsColor, ncolors: XcmsColor, cflags: [^]b32) -> Status ---

    XcmsTekHVCClipC ¶

    XcmsTekHVCClipC :: proc "c" (ctx: XcmsCCC, colors: [^]XcmsColor, ncolors: u32, index: u32, flags: [^]b32) -> Status ---

    XcmsTekHVCClipV ¶

    XcmsTekHVCClipV :: proc "c" (ctx: XcmsCCC, colors: [^]XcmsColor, ncolors: u32, index: u32, flags: [^]b32) -> Status ---

    XcmsTekHVCClipVC ¶

    XcmsTekHVCClipVC :: proc "c" (ctx: XcmsCCC, colors: [^]XcmsColor, ncolors: u32, index: u32, flags: [^]b32) -> Status ---

    XcmsTekHVCQueryMaxC ¶

    XcmsTekHVCQueryMaxC :: proc "c" (ccc: XcmsCCC, hue: f64, value: f64, color: ^XcmsColor) -> Status ---
     

    TexHVX queries

    XcmsTekHVCQueryMaxV ¶

    XcmsTekHVCQueryMaxV :: proc "c" (ccc: XcmsCCC, hue: f64, chroma: f64, color: ^XcmsColor) -> Status ---

    XcmsTekHVCQueryMaxVC ¶

    XcmsTekHVCQueryMaxVC :: proc "c" (ccc: XcmsCCC, hue: f64, color: ^XcmsColor) -> Status ---

    XcmsTekHVCQueryMaxVSamples ¶

    XcmsTekHVCQueryMaxVSamples :: proc "c" (ccc: XcmsCCC, hue: f64, colors: [^]XcmsColor, nsamples: u32) -> Status ---

    XcmsTekHVCQueryMinV ¶

    XcmsTekHVCQueryMinV :: proc "c" (ccc: XcmsCCC, hue: f64, chroma: f64, color: ^XcmsColor) -> Status ---

    XcmsTekHVCWhiteShiftColors ¶

    XcmsTekHVCWhiteShiftColors :: proc "c" (
    	ctx:                 XcmsCCC, 
    	initial_white_point: ^XcmsColor, 
    	target_white_point:  ^XcmsColor, 
    	target_format:       uint, 
    	colors:              [^]XcmsColor, 
    	ncolors:             u32, 
    	compression:         [^]b32, 
    ) -> Status ---

    XcmsVisualOfCCC ¶

    XcmsVisualOfCCC :: proc "c" (ccc: XcmsCCC) -> ^Visual ---

    XkbGetKeySyms ¶

    XkbGetKeySyms :: proc "c" (display: ^Display, first: u32, num: u32, xkb: ^XkbDescRec) -> Status ---

    XkbGetMap ¶

    XkbGetMap :: proc "c" (display: ^Display, which: bit_set[XkbInfoMaskBits; int], device_spec: i32) -> ^XkbDescRec ---

    XkbGetState ¶

    XkbGetState :: proc "c" (display: ^Display, device_spec: u32, return_state: ^XkbStateRec) -> Status ---

    XkbGetUpdatedMap ¶

    XkbGetUpdatedMap :: proc "c" (display: ^Display, which: bit_set[XkbInfoMaskBits; int], desc: ^XkbDescRec) -> b32 ---

    XkbQueryExtension ¶

    XkbQueryExtension :: proc "c" (
    	display:           ^Display, 
    	opcode_return:     ^i32, 
    	event_base_return: ^i32, 
    	error_base_return: ^i32, 
    	major_return:      ^i32, 
    	minor_return:      ^i32, 
    ) -> b32 ---

    XkbSelectEvents ¶

    XkbSelectEvents :: proc "c" (display: ^Display, deviceID: u32, bits_to_change: bit_set[XkbEventType; int], values: bit_set[XkbEventType; int]) -> b32 ---

    XkbSetDetectableAutoRepeat ¶

    XkbSetDetectableAutoRepeat :: proc "c" (display: ^Display, detectable: b32, supported: ^b32) -> b32 ---

    XkbUseExtension ¶

    XkbUseExtension :: proc "c" (display: ^Display, major_return: ^i32, minor_return: ^i32) -> b32 ---

    XorRegion ¶

    XorRegion :: proc "c" (sra, srb, ret: Region) ---

    XrmGetResource ¶

    XrmGetResource :: proc "c" (db: XrmDatabase, name: cstring, class: cstring, type_return: ^cstring, val_return: ^XrmValue) -> b32 ---

    XrmGetStringDatabase ¶

    XrmGetStringDatabase :: proc "c" (data: cstring) -> XrmDatabase ---

    XrmInitialize ¶

    XrmInitialize :: proc "c" () -> ! ---

    cursorGetDefaultSize ¶

    cursorGetDefaultSize :: proc "c" (display: ^Display) -> i32 ---

    cursorGetTheme ¶

    cursorGetTheme :: proc "c" (display: ^Display) -> cstring ---

    cursorImageDestroy ¶

    cursorImageDestroy :: proc "c" (img: rawptr) ---

    cursorImageLoadCursor ¶

    cursorImageLoadCursor :: proc "c" (display: ^Display, img: rawptr) -> XID ---

    cursorLibraryLoadCursor ¶

    cursorLibraryLoadCursor :: proc "c" (display: ^Display, name: cstring) -> XID ---

    cursorLibraryLoadImage ¶

    cursorLibraryLoadImage :: proc "c" (name: cstring, theme: cstring, size: i32) -> rawptr ---

    mbSetWMProperties ¶

    mbSetWMProperties :: proc "c" (
    	display:      ^Display, 
    	window:       XID, 
    	window_name:  cstring, 
    	icon_name:    cstring, 
    	argv:         [^]cstring, 
    	argc:         i32, 
    	normal_hints: ^XSizeHints, 
    	wm_hints:     ^XWMHints, 
    	class_hints:  ^XClassHint, 
    ) ---
     

    Using window manager convenience functions

    utf8SetWMProperties ¶

    utf8SetWMProperties :: proc "c" (
    	display:      ^Display, 
    	window:       XID, 
    	window_name:  cstring, 
    	icon_name:    cstring, 
    	argv:         ^cstring, 
    	argc:         i32, 
    	normal_hints: ^XSizeHints, 
    	wm_hints:     ^XWMHints, 
    	class_hints:  ^XClassHint, 
    ) ---

    Procedure Groups

    This section is empty.

    Source Files

    Generation Information

    Generated with odin version dev-2025-06 (vendor "odin") Windows_amd64 @ 2025-06-09 21:13:52.566313300 +0000 UTC