diff semiconginev2/thirdparty/x11/xlib.nim @ 1218:56781cc0fc7c compiletime-tests

did: renamge main package
author sam <sam@basx.dev>
date Wed, 17 Jul 2024 21:01:37 +0700
parents semicongine/old/thirdparty/x11/xlib.nim@239adab121a3
children
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/semiconginev2/thirdparty/x11/xlib.nim	Wed Jul 17 21:01:37 2024 +0700
@@ -0,0 +1,2069 @@
+
+import
+  x
+
+include "x11pragma.nim"
+
+type
+  cunsigned* = cint
+  Pcint* = ptr cint
+  PPcint* = ptr Pcint
+  PPcuchar* = ptr ptr char
+  PWideChar* = ptr int16
+  PPChar* = ptr cstring
+  PPPChar* = ptr ptr cstring
+  Pculong* = ptr culong
+  Pcuchar* = cstring
+  Pcuint* = ptr cuint
+  Pcushort* = ptr uint16
+#  Automatically converted by H2Pas 0.99.15 from xlib.h
+#  The following command line parameters were used:
+#    -p
+#    -T
+#    -S
+#    -d
+#    -c
+#    xlib.h
+
+const
+  XlibSpecificationRelease* = 6
+
+type
+  PXPointer* = ptr XPointer
+  XPointer* = ptr char
+  PBool* = ptr XBool
+  XBool* = cint
+  PStatus* = ptr Status
+  Status* = cint
+
+const
+  QueuedAlready* = 0
+  QueuedAfterReading* = 1
+  QueuedAfterFlush* = 2
+
+type
+  PPXExtData* = ptr PXExtData
+  PXExtData* = ptr XExtData
+  XExtData*{.final.} = object
+    number*: cint
+    next*: PXExtData
+    free_private*: proc (extension: PXExtData): cint{.cdecl.}
+    private_data*: XPointer
+
+  PXExtCodes* = ptr XExtCodes
+  XExtCodes*{.final.} = object
+    extension*: cint
+    major_opcode*: cint
+    first_event*: cint
+    first_error*: cint
+
+  PXPixmapFormatValues* = ptr XPixmapFormatValues
+  XPixmapFormatValues*{.final.} = object
+    depth*: cint
+    bits_per_pixel*: cint
+    scanline_pad*: cint
+
+  PXGCValues* = ptr XGCValues
+  XGCValues*{.final.} = object
+    function*: cint
+    plane_mask*: culong
+    foreground*: culong
+    background*: culong
+    line_width*: cint
+    line_style*: cint
+    cap_style*: cint
+    join_style*: cint
+    fill_style*: cint
+    fill_rule*: cint
+    arc_mode*: cint
+    tile*: Pixmap
+    stipple*: Pixmap
+    ts_x_origin*: cint
+    ts_y_origin*: cint
+    font*: Font
+    subwindow_mode*: cint
+    graphics_exposures*: XBool
+    clip_x_origin*: cint
+    clip_y_origin*: cint
+    clip_mask*: Pixmap
+    dash_offset*: cint
+    dashes*: cchar
+
+  PXGC* = ptr XGC
+  XGC*{.final.} = object
+  GC* = PXGC
+  PGC* = ptr GC
+  PVisual* = ptr Visual
+  Visual*{.final.} = object
+    ext_data*: PXExtData
+    visualid*: VisualID
+    c_class*: cint
+    red_mask*, green_mask*, blue_mask*: culong
+    bits_per_rgb*: cint
+    map_entries*: cint
+
+  PDepth* = ptr Depth
+  Depth*{.final.} = object
+    depth*: cint
+    nvisuals*: cint
+    visuals*: PVisual
+
+  PXDisplay* = ptr XDisplay
+  XDisplay*{.final.} = object
+
+  PScreen* = ptr Screen
+  Screen*{.final.} = object
+    ext_data*: PXExtData
+    display*: PXDisplay
+    root*: Window
+    width*, height*: cint
+    mwidth*, mheight*: cint
+    ndepths*: cint
+    depths*: PDepth
+    root_depth*: cint
+    root_visual*: PVisual
+    default_gc*: GC
+    cmap*: Colormap
+    white_pixel*: culong
+    black_pixel*: culong
+    max_maps*, min_maps*: cint
+    backing_store*: cint
+    save_unders*: XBool
+    root_input_mask*: clong
+
+  PScreenFormat* = ptr ScreenFormat
+  ScreenFormat*{.final.} = object
+    ext_data*: PXExtData
+    depth*: cint
+    bits_per_pixel*: cint
+    scanline_pad*: cint
+
+  PXSetWindowAttributes* = ptr XSetWindowAttributes
+  XSetWindowAttributes*{.final.} = object
+    background_pixmap*: Pixmap
+    background_pixel*: culong
+    border_pixmap*: Pixmap
+    border_pixel*: culong
+    bit_gravity*: cint
+    win_gravity*: cint
+    backing_store*: cint
+    backing_planes*: culong
+    backing_pixel*: culong
+    save_under*: XBool
+    event_mask*: clong
+    do_not_propagate_mask*: clong
+    override_redirect*: XBool
+    colormap*: Colormap
+    cursor*: Cursor
+
+  PXWindowAttributes* = ptr XWindowAttributes
+  XWindowAttributes*{.final.} = object
+    x*, y*: cint
+    width*, height*: cint
+    border_width*: cint
+    depth*: cint
+    visual*: PVisual
+    root*: Window
+    c_class*: cint
+    bit_gravity*: cint
+    win_gravity*: cint
+    backing_store*: cint
+    backing_planes*: culong
+    backing_pixel*: culong
+    save_under*: XBool
+    colormap*: Colormap
+    map_installed*: XBool
+    map_state*: cint
+    all_event_masks*: clong
+    your_event_mask*: clong
+    do_not_propagate_mask*: clong
+    override_redirect*: XBool
+    screen*: PScreen
+
+  PXHostAddress* = ptr XHostAddress
+  XHostAddress*{.final.} = object
+    family*: cint
+    len*: cint
+    address*: cstring
+
+  PXServerInterpretedAddress* = ptr XServerInterpretedAddress
+  XServerInterpretedAddress*{.final.} = object
+    typelength*: cint
+    valuelength*: cint
+    theType*: cstring
+    value*: cstring
+
+  PXImage* = ptr XImage
+  F*{.final.} = object
+    create_image*: proc (para1: PXDisplay, para2: PVisual, para3: cuint,
+                         para4: cint, para5: cint, para6: cstring, para7: cuint,
+                         para8: cuint, para9: cint, para10: cint): PXImage{.
+        cdecl.}
+    destroy_image*: proc (para1: PXImage): cint{.cdecl.}
+    get_pixel*: proc (para1: PXImage, para2: cint, para3: cint): culong{.cdecl.}
+    put_pixel*: proc (para1: PXImage, para2: cint, para3: cint, para4: culong): cint{.
+        cdecl.}
+    sub_image*: proc (para1: PXImage, para2: cint, para3: cint, para4: cuint,
+                      para5: cuint): PXImage{.cdecl.}
+    add_pixel*: proc (para1: PXImage, para2: clong): cint{.cdecl.}
+
+  XImage*{.final.} = object
+    width*, height*: cint
+    xoffset*: cint
+    format*: cint
+    data*: cstring
+    byte_order*: cint
+    bitmap_unit*: cint
+    bitmap_bit_order*: cint
+    bitmap_pad*: cint
+    depth*: cint
+    bytes_per_line*: cint
+    bits_per_pixel*: cint
+    red_mask*: culong
+    green_mask*: culong
+    blue_mask*: culong
+    obdata*: XPointer
+    f*: F
+
+  PXWindowChanges* = ptr XWindowChanges
+  XWindowChanges*{.final.} = object
+    x*, y*: cint
+    width*, height*: cint
+    border_width*: cint
+    sibling*: Window
+    stack_mode*: cint
+
+  PXColor* = ptr XColor
+  XColor*{.final.} = object
+    pixel*: culong
+    red*, green*, blue*: cushort
+    flags*: cchar
+    pad*: cchar
+
+  PXSegment* = ptr XSegment
+  XSegment*{.final.} = object
+    x1*, y1*, x2*, y2*: cshort
+
+  PXPoint* = ptr XPoint
+  XPoint*{.final.} = object
+    x*, y*: cshort
+
+  PXRectangle* = ptr XRectangle
+  XRectangle*{.final.} = object
+    x*, y*: cshort
+    width*, height*: cushort
+
+  PXArc* = ptr XArc
+  XArc*{.final.} = object
+    x*, y*: cshort
+    width*, height*: cushort
+    angle1*, angle2*: cshort
+
+  PXKeyboardControl* = ptr XKeyboardControl
+  XKeyboardControl*{.final.} = object
+    key_click_percent*: cint
+    bell_percent*: cint
+    bell_pitch*: cint
+    bell_duration*: cint
+    led*: cint
+    led_mode*: cint
+    key*: cint
+    auto_repeat_mode*: cint
+
+  PXKeyboardState* = ptr XKeyboardState
+  XKeyboardState*{.final.} = object
+    key_click_percent*: cint
+    bell_percent*: cint
+    bell_pitch*, bell_duration*: cuint
+    led_mask*: culong
+    global_auto_repeat*: cint
+    auto_repeats*: array[0..31, cchar]
+
+  PXTimeCoord* = ptr XTimeCoord
+  XTimeCoord*{.final.} = object
+    time*: Time
+    x*, y*: cshort
+
+  PXModifierKeymap* = ptr XModifierKeymap
+  XModifierKeymap*{.final.} = object
+    max_keypermod*: cint
+    modifiermap*: PKeyCode
+
+  PDisplay* = ptr Display
+  Display* = XDisplay
+
+  PXPrivate* = ptr Private
+  Private*{.final.} = object
+
+  PXrmHashBucketRec* = ptr XrmHashBucketRec
+  XrmHashBucketRec*{.final.} = object
+
+  PXPrivDisplay* = ptr XPrivDisplay
+  XPrivDisplay*{.final.} = object
+    ext_data*: PXExtData
+    private1*: PXPrivate
+    fd*: cint
+    private2*: cint
+    proto_major_version*: cint
+    proto_minor_version*: cint
+    vendor*: cstring
+    private3*: XID
+    private4*: XID
+    private5*: XID
+    private6*: cint
+    resource_alloc*: proc (para1: PXDisplay): XID{.cdecl.}
+    byte_order*: cint
+    bitmap_unit*: cint
+    bitmap_pad*: cint
+    bitmap_bit_order*: cint
+    nformats*: cint
+    pixmap_format*: PScreenFormat
+    private8*: cint
+    release*: cint
+    private9*, private10*: PXPrivate
+    qlen*: cint
+    last_request_read*: culong
+    request*: culong
+    private11*: XPointer
+    private12*: XPointer
+    private13*: XPointer
+    private14*: XPointer
+    max_request_size*: cunsigned
+    db*: PXrmHashBucketRec
+    private15*: proc (para1: PXDisplay): cint{.cdecl.}
+    display_name*: cstring
+    default_screen*: cint
+    nscreens*: cint
+    screens*: PScreen
+    motion_buffer*: culong
+    private16*: culong
+    min_keycode*: cint
+    max_keycode*: cint
+    private17*: XPointer
+    private18*: XPointer
+    private19*: cint
+    xdefaults*: cstring
+
+  PXKeyEvent* = ptr XKeyEvent
+  XKeyEvent*{.final.} = object
+    theType*: cint
+    serial*: culong
+    send_event*: XBool
+    display*: PDisplay
+    window*: Window
+    root*: Window
+    subwindow*: Window
+    time*: Time
+    x*, y*: cint
+    x_root*, y_root*: cint
+    state*: cuint
+    keycode*: cuint
+    same_screen*: XBool
+
+  PXKeyPressedEvent* = ptr XKeyPressedEvent
+  XKeyPressedEvent* = XKeyEvent
+
+  PXKeyReleasedEvent* = ptr XKeyReleasedEvent
+  XKeyReleasedEvent* = XKeyEvent
+
+  PXButtonEvent* = ptr XButtonEvent
+  XButtonEvent*{.final.} = object
+    theType*: cint
+    serial*: culong
+    send_event*: XBool
+    display*: PDisplay
+    window*: Window
+    root*: Window
+    subwindow*: Window
+    time*: Time
+    x*, y*: cint
+    x_root*, y_root*: cint
+    state*: cuint
+    button*: cuint
+    same_screen*: XBool
+
+  PXButtonPressedEvent* = ptr XButtonPressedEvent
+  XButtonPressedEvent* = XButtonEvent
+
+  PXButtonReleasedEvent* = ptr XButtonReleasedEvent
+  XButtonReleasedEvent* = XButtonEvent
+
+  PXMotionEvent* = ptr XMotionEvent
+  XMotionEvent*{.final.} = object
+    theType*: cint
+    serial*: culong
+    send_event*: XBool
+    display*: PDisplay
+    window*: Window
+    root*: Window
+    subwindow*: Window
+    time*: Time
+    x*, y*: cint
+    x_root*, y_root*: cint
+    state*: cuint
+    is_hint*: cchar
+    same_screen*: XBool
+
+  PXPointerMovedEvent* = ptr XPointerMovedEvent
+  XPointerMovedEvent* = XMotionEvent
+
+  PXCrossingEvent* = ptr XCrossingEvent
+  XCrossingEvent*{.final.} = object
+    theType*: cint
+    serial*: culong
+    send_event*: XBool
+    display*: PDisplay
+    window*: Window
+    root*: Window
+    subwindow*: Window
+    time*: Time
+    x*, y*: cint
+    x_root*, y_root*: cint
+    mode*: cint
+    detail*: cint
+    same_screen*: XBool
+    focus*: XBool
+    state*: cuint
+
+  PXEnterWindowEvent* = ptr XEnterWindowEvent
+  XEnterWindowEvent* = XCrossingEvent
+
+  PXLeaveWindowEvent* = ptr XLeaveWindowEvent
+  XLeaveWindowEvent* = XCrossingEvent
+
+  PXFocusChangeEvent* = ptr XFocusChangeEvent
+  XFocusChangeEvent*{.final.} = object
+    theType*: cint
+    serial*: culong
+    send_event*: XBool
+    display*: PDisplay
+    window*: Window
+    mode*: cint
+    detail*: cint
+
+  PXFocusInEvent* = ptr XFocusInEvent
+  XFocusInEvent* = XFocusChangeEvent
+
+  PXFocusOutEvent* = ptr XFocusOutEvent
+  XFocusOutEvent* = XFocusChangeEvent
+
+  PXKeymapEvent* = ptr XKeymapEvent
+  XKeymapEvent*{.final.} = object
+    theType*: cint
+    serial*: culong
+    send_event*: XBool
+    display*: PDisplay
+    window*: Window
+    key_vector*: array[0..31, cchar]
+
+  PXExposeEvent* = ptr XExposeEvent
+  XExposeEvent*{.final.} = object
+    theType*: cint
+    serial*: culong
+    send_event*: XBool
+    display*: PDisplay
+    window*: Window
+    x*, y*: cint
+    width*, height*: cint
+    count*: cint
+
+  PXGraphicsExposeEvent* = ptr XGraphicsExposeEvent
+  XGraphicsExposeEvent*{.final.} = object
+    theType*: cint
+    serial*: culong
+    send_event*: XBool
+    display*: PDisplay
+    drawable*: Drawable
+    x*, y*: cint
+    width*, height*: cint
+    count*: cint
+    major_code*: cint
+    minor_code*: cint
+
+  PXNoExposeEvent* = ptr XNoExposeEvent
+  XNoExposeEvent*{.final.} = object
+    theType*: cint
+    serial*: culong
+    send_event*: XBool
+    display*: PDisplay
+    drawable*: Drawable
+    major_code*: cint
+    minor_code*: cint
+
+  PXVisibilityEvent* = ptr XVisibilityEvent
+  XVisibilityEvent*{.final.} = object
+    theType*: cint
+    serial*: culong
+    send_event*: XBool
+    display*: PDisplay
+    window*: Window
+    state*: cint
+
+  PXCreateWindowEvent* = ptr XCreateWindowEvent
+  XCreateWindowEvent*{.final.} = object
+    theType*: cint
+    serial*: culong
+    send_event*: XBool
+    display*: PDisplay
+    parent*: Window
+    window*: Window
+    x*, y*: cint
+    width*, height*: cint
+    border_width*: cint
+    override_redirect*: XBool
+
+  PXDestroyWindowEvent* = ptr XDestroyWindowEvent
+  XDestroyWindowEvent*{.final.} = object
+    theType*: cint
+    serial*: culong
+    send_event*: XBool
+    display*: PDisplay
+    event*: Window
+    window*: Window
+
+  PXUnmapEvent* = ptr XUnmapEvent
+  XUnmapEvent*{.final.} = object
+    theType*: cint
+    serial*: culong
+    send_event*: XBool
+    display*: PDisplay
+    event*: Window
+    window*: Window
+    from_configure*: XBool
+
+  PXMapEvent* = ptr XMapEvent
+  XMapEvent*{.final.} = object
+    theType*: cint
+    serial*: culong
+    send_event*: XBool
+    display*: PDisplay
+    event*: Window
+    window*: Window
+    override_redirect*: XBool
+
+  PXMapRequestEvent* = ptr XMapRequestEvent
+  XMapRequestEvent*{.final.} = object
+    theType*: cint
+    serial*: culong
+    send_event*: XBool
+    display*: PDisplay
+    parent*: Window
+    window*: Window
+
+  PXReparentEvent* = ptr XReparentEvent
+  XReparentEvent*{.final.} = object
+    theType*: cint
+    serial*: culong
+    send_event*: XBool
+    display*: PDisplay
+    event*: Window
+    window*: Window
+    parent*: Window
+    x*, y*: cint
+    override_redirect*: XBool
+
+  PXConfigureEvent* = ptr XConfigureEvent
+  XConfigureEvent*{.final.} = object
+    theType*: cint
+    serial*: culong
+    send_event*: XBool
+    display*: PDisplay
+    event*: Window
+    window*: Window
+    x*, y*: cint
+    width*, height*: cint
+    border_width*: cint
+    above*: Window
+    override_redirect*: XBool
+
+  PXGravityEvent* = ptr XGravityEvent
+  XGravityEvent*{.final.} = object
+    theType*: cint
+    serial*: culong
+    send_event*: XBool
+    display*: PDisplay
+    event*: Window
+    window*: Window
+    x*, y*: cint
+
+  PXResizeRequestEvent* = ptr XResizeRequestEvent
+  XResizeRequestEvent*{.final.} = object
+    theType*: cint
+    serial*: culong
+    send_event*: XBool
+    display*: PDisplay
+    window*: Window
+    width*, height*: cint
+
+  PXConfigureRequestEvent* = ptr XConfigureRequestEvent
+  XConfigureRequestEvent*{.final.} = object
+    theType*: cint
+    serial*: culong
+    send_event*: XBool
+    display*: PDisplay
+    parent*: Window
+    window*: Window
+    x*, y*: cint
+    width*, height*: cint
+    border_width*: cint
+    above*: Window
+    detail*: cint
+    value_mask*: culong
+
+  PXCirculateEvent* = ptr XCirculateEvent
+  XCirculateEvent*{.final.} = object
+    theType*: cint
+    serial*: culong
+    send_event*: XBool
+    display*: PDisplay
+    event*: Window
+    window*: Window
+    place*: cint
+
+  PXCirculateRequestEvent* = ptr XCirculateRequestEvent
+  XCirculateRequestEvent*{.final.} = object
+    theType*: cint
+    serial*: culong
+    send_event*: XBool
+    display*: PDisplay
+    parent*: Window
+    window*: Window
+    place*: cint
+
+  PXPropertyEvent* = ptr XPropertyEvent
+  XPropertyEvent*{.final.} = object
+    theType*: cint
+    serial*: culong
+    send_event*: XBool
+    display*: PDisplay
+    window*: Window
+    atom*: Atom
+    time*: Time
+    state*: cint
+
+  PXSelectionClearEvent* = ptr XSelectionClearEvent
+  XSelectionClearEvent*{.final.} = object
+    theType*: cint
+    serial*: culong
+    send_event*: XBool
+    display*: PDisplay
+    window*: Window
+    selection*: Atom
+    time*: Time
+
+  PXSelectionRequestEvent* = ptr XSelectionRequestEvent
+  XSelectionRequestEvent*{.final.} = object
+    theType*: cint
+    serial*: culong
+    send_event*: XBool
+    display*: PDisplay
+    owner*: Window
+    requestor*: Window
+    selection*: Atom
+    target*: Atom
+    property*: Atom
+    time*: Time
+
+  PXSelectionEvent* = ptr XSelectionEvent
+  XSelectionEvent*{.final.} = object
+    theType*: cint
+    serial*: culong
+    send_event*: XBool
+    display*: PDisplay
+    requestor*: Window
+    selection*: Atom
+    target*: Atom
+    property*: Atom
+    time*: Time
+
+  PXColormapEvent* = ptr XColormapEvent
+  XColormapEvent*{.final.} = object
+    theType*: cint
+    serial*: culong
+    send_event*: XBool
+    display*: PDisplay
+    window*: Window
+    colormap*: Colormap
+    c_new*: XBool
+    state*: cint
+
+  PXClientMessageEvent* = ptr XClientMessageEvent
+
+  XClientMessageData* {.union.} = object
+    b*: array[20, cchar]
+    s*: array[10, cshort]
+    l*: array[5, clong]
+
+  XClientMessageEvent*{.final.} = object
+    theType*: cint
+    serial*: culong
+    send_event*: XBool
+    display*: PDisplay
+    window*: Window
+    message_type*: Atom
+    format*: cint
+    data*: XClientMessageData
+
+  PXMappingEvent* = ptr XMappingEvent
+  XMappingEvent*{.final.} = object
+    theType*: cint
+    serial*: culong
+    send_event*: XBool
+    display*: PDisplay
+    window*: Window
+    request*: cint
+    first_keycode*: cint
+    count*: cint
+
+  PXErrorEvent* = ptr XErrorEvent
+  XErrorEvent*{.final.} = object
+    theType*: cint
+    display*: PDisplay
+    resourceid*: XID
+    serial*: culong
+    error_code*: char
+    request_code*: char
+    minor_code*: char
+
+  PXAnyEvent* = ptr XAnyEvent
+  XAnyEvent*{.final.} = object
+    theType*: cint
+    serial*: culong
+    send_event*: XBool
+    display*: PDisplay
+    window*: Window
+
+  PXGenericEvent* = ptr XGenericEvent
+  XGenericEvent*{.final.} = object
+    theType*: cint     ##  of event. Always GenericEvent
+    serial*: culong    ##  # of last request processed
+    send_event*: XBool ##  true if from SendEvent request
+    display*: PDisplay ##  Display the event was read from
+    extension*: cint   ##  major opcode of extension that caused the event
+    evtype*: cint      ##  actual event type.
+
+  PXGenericEventCookie* = ptr XGenericEventCookie
+  XGenericEventCookie*{.final.} = object
+    theType*: cint     ##  of event. Always GenericEvent
+    serial*: culong    ##  # of last request processed
+    send_event*: XBool ##  true if from SendEvent request
+    display*: PDisplay ##  Display the event was read from
+    extension*: cint   ##  major opcode of extension that caused the event
+    evtype*: cint      ##  actual event type.
+    cookie*: cuint
+    data*: pointer
+
+  PXEvent* = ptr XEvent
+  XEvent*{.final, union.} = object
+    theType*: cint
+    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
+    pad: array[0..23, clong]
+
+
+type
+  PXCharStruct* = ptr XCharStruct
+  XCharStruct*{.final.} = object
+    lbearing*: cshort
+    rbearing*: cshort
+    width*: cshort
+    ascent*: cshort
+    descent*: cshort
+    attributes*: cushort
+
+  PXFontProp* = ptr XFontProp
+  XFontProp*{.final.} = object
+    name*: Atom
+    card32*: culong
+
+  PPPXFontStruct* = ptr PPXFontStruct
+  PPXFontStruct* = ptr PXFontStruct
+  PXFontStruct* = ptr XFontStruct
+  XFontStruct*{.final.} = object
+    ext_data*: PXExtData
+    fid*: Font
+    direction*: cunsigned
+    min_char_or_byte2*: cunsigned
+    max_char_or_byte2*: cunsigned
+    min_byte1*: cunsigned
+    max_byte1*: cunsigned
+    all_chars_exist*: XBool
+    default_char*: cunsigned
+    n_properties*: cint
+    properties*: PXFontProp
+    min_bounds*: XCharStruct
+    max_bounds*: XCharStruct
+    per_char*: PXCharStruct
+    ascent*: cint
+    descent*: cint
+
+  PXTextItem* = ptr XTextItem
+  XTextItem*{.final.} = object
+    chars*: cstring
+    nchars*: cint
+    delta*: cint
+    font*: Font
+
+  PXChar2b* = ptr XChar2b
+  XChar2b*{.final.} = object
+    byte1*: char
+    byte2*: char
+
+  PXTextItem16* = ptr XTextItem16
+  XTextItem16*{.final.} = object
+    chars*: PXChar2b
+    nchars*: cint
+    delta*: cint
+    font*: Font
+
+  PXEDataObject* = ptr XEDataObject
+  XEDataObject*{.final.} = object
+    display*: PDisplay # case longint of
+                       #          0 : ( display : PDisplay );
+                       #          1 : ( gc : GC );
+                       #          2 : ( visual : PVisual );
+                       #          3 : ( screen : PScreen );
+                       #          4 : ( pixmap_format : PScreenFormat );
+                       #          5 : ( font : PXFontStruct );
+
+  PXFontSetExtents* = ptr XFontSetExtents
+  XFontSetExtents*{.final.} = object
+    max_ink_extent*: XRectangle
+    max_logical_extent*: XRectangle
+
+  PXOM* = ptr XOM
+  XOM*{.final.} = object
+
+  PXOC* = ptr XOC
+  XOC*{.final.} = object
+
+  PXFontSet* = ptr XFontSet
+  XFontSet* = PXOC
+
+  PXmbTextItem* = ptr XmbTextItem
+  XmbTextItem*{.final.} = object
+    chars*: cstring
+    nchars*: cint
+    delta*: cint
+    font_set*: XFontSet
+
+  PXwcTextItem* = ptr XwcTextItem
+  XwcTextItem*{.final.} = object
+    chars*: PWideChar #wchar_t*
+    nchars*: cint
+    delta*: cint
+    font_set*: XFontSet
+
+const
+  XNRequiredCharSet* = "requiredCharSet"
+  XNQueryOrientation* = "queryOrientation"
+  XNBaseFontName* = "baseFontName"
+  XNOMAutomatic* = "omAutomatic"
+  XNMissingCharSet* = "missingCharSet"
+  XNDefaultString* = "defaultString"
+  XNOrientation* = "orientation"
+  XNDirectionalDependentDrawing* = "directionalDependentDrawing"
+  XNContextualDrawing* = "contextualDrawing"
+  XNFontInfo* = "fontInfo"
+
+type
+  PXOMCharSetList* = ptr XOMCharSetList
+  XOMCharSetList*{.final.} = object
+    charset_count*: cint
+    charset_list*: PPChar
+
+  PXOrientation* = ptr XOrientation
+  XOrientation* = enum
+    XOMOrientation_LTR_TTB, XOMOrientation_RTL_TTB, XOMOrientation_TTB_LTR,
+    XOMOrientation_TTB_RTL, XOMOrientation_Context
+
+  PXOMOrientation* = ptr XOMOrientation
+  XOMOrientation*{.final.} = object
+    num_orientation*: cint
+    orientation*: PXOrientation
+
+  PXOMFontInfo* = ptr XOMFontInfo
+  XOMFontInfo*{.final.} = object
+    num_font*: cint
+    font_struct_list*: ptr PXFontStruct
+    font_name_list*: PPChar
+
+  XIM*{.final.} = ptr object
+
+  XIC*{.final.} = ptr object
+
+  XIMProc* = proc (para1: XIM, para2: XPointer, para3: XPointer){.cdecl.}
+
+  XICProc* = proc (para1: XIC, para2: XPointer, para3: XPointer): XBool{.
+      cdecl.}
+
+  XIDProc* = proc (para1: PDisplay, para2: XPointer, para3: XPointer){.cdecl.}
+
+  PXIMStyle* = ptr XIMStyle
+  XIMStyle* = culong
+
+  PXIMStyles* = ptr XIMStyles
+  XIMStyles*{.final.} = object
+    count_styles*: cushort
+    supported_styles*: PXIMStyle
+
+const
+  XIMPreeditArea* = 0x00000001
+  XIMPreeditCallbacks* = 0x00000002
+  XIMPreeditPosition* = 0x00000004
+  XIMPreeditNothing* = 0x00000008
+  XIMPreeditNone* = 0x00000010
+  XIMStatusArea* = 0x00000100
+  XIMStatusCallbacks* = 0x00000200
+  XIMStatusNothing* = 0x00000400
+  XIMStatusNone* = 0x00000800
+  XNVaNestedList* = "XNVaNestedList"
+  XNQueryInputStyle* = "queryInputStyle"
+  XNClientWindow* = "clientWindow"
+  XNInputStyle* = "inputStyle"
+  XNFocusWindow* = "focusWindow"
+  XNResourceName* = "resourceName"
+  XNResourceClass* = "resourceClass"
+  XNGeometryCallback* = "geometryCallback"
+  XNDestroyCallback* = "destroyCallback"
+  XNFilterEvents* = "filterEvents"
+  XNPreeditStartCallback* = "preeditStartCallback"
+  XNPreeditDoneCallback* = "preeditDoneCallback"
+  XNPreeditDrawCallback* = "preeditDrawCallback"
+  XNPreeditCaretCallback* = "preeditCaretCallback"
+  XNPreeditStateNotifyCallback* = "preeditStateNotifyCallback"
+  XNPreeditAttributes* = "preeditAttributes"
+  XNStatusStartCallback* = "statusStartCallback"
+  XNStatusDoneCallback* = "statusDoneCallback"
+  XNStatusDrawCallback* = "statusDrawCallback"
+  XNStatusAttributes* = "statusAttributes"
+  XNArea* = "area"
+  XNAreaNeeded* = "areaNeeded"
+  XNSpotLocation* = "spotLocation"
+  XNColormap* = "colorMap"
+  XNStdColormap* = "stdColorMap"
+  XNForeground* = "foreground"
+  XNBackground* = "background"
+  XNBackgroundPixmap* = "backgroundPixmap"
+  XNFontSet* = "fontSet"
+  XNLineSpace* = "lineSpace"
+  XNCursor* = "cursor"
+  XNQueryIMValuesList* = "queryIMValuesList"
+  XNQueryICValuesList* = "queryICValuesList"
+  XNVisiblePosition* = "visiblePosition"
+  XNR6PreeditCallback* = "r6PreeditCallback"
+  XNStringConversionCallback* = "stringConversionCallback"
+  XNStringConversion* = "stringConversion"
+  XNResetState* = "resetState"
+  XNHotKey* = "hotKey"
+  XNHotKeyState* = "hotKeyState"
+  XNPreeditState* = "preeditState"
+  XNSeparatorofNestedList* = "separatorofNestedList"
+  XBufferOverflow* = - (1)
+  XLookupNone* = 1
+  XLookupChars* = 2
+  XLookupKeySymVal* = 3
+  XLookupBoth* = 4
+
+type
+  PXVaNestedList* = ptr XVaNestedList
+  XVaNestedList* = pointer
+
+  PXIMCallback* = ptr XIMCallback
+  XIMCallback*{.final.} = object
+    client_data*: XPointer
+    callback*: XIMProc
+
+  PXICCallback* = ptr XICCallback
+  XICCallback*{.final.} = object
+    client_data*: XPointer
+    callback*: XICProc
+
+  PXIMFeedback* = ptr XIMFeedback
+  XIMFeedback* = culong
+
+const
+  XIMReverse* = 1
+  XIMUnderline* = 1 shl 1
+  XIMHighlight* = 1 shl 2
+  XIMPrimary* = 1 shl 5
+  XIMSecondary* = 1 shl 6
+  XIMTertiary* = 1 shl 7
+  XIMVisibleToForward* = 1 shl 8
+  XIMVisibleToBackword* = 1 shl 9
+  XIMVisibleToCenter* = 1 shl 10
+
+type
+  PXIMText* = ptr XIMText
+  XIMText*{.final.} = object
+    len*: cushort
+    feedback*: PXIMFeedback
+    encoding_is_wchar*: XBool
+    multi_byte*: cstring
+
+  PXIMPreeditState* = ptr XIMPreeditState
+  XIMPreeditState* = culong
+
+const
+  XIMPreeditUnKnown* = 0
+  XIMPreeditEnable* = 1
+  XIMPreeditDisable* = 1 shl 1
+
+type
+  PXIMPreeditStateNotifyCallbackStruct* = ptr XIMPreeditStateNotifyCallbackStruct
+  XIMPreeditStateNotifyCallbackStruct*{.final.} = object
+    state*: XIMPreeditState
+
+  PXIMResetState* = ptr XIMResetState
+  XIMResetState* = culong
+
+const
+  XIMInitialState* = 1
+  XIMPreserveState* = 1 shl 1
+
+type
+  PXIMStringConversionFeedback* = ptr XIMStringConversionFeedback
+  XIMStringConversionFeedback* = culong
+
+const
+  XIMStringConversionLeftEdge* = 0x00000001
+  XIMStringConversionRightEdge* = 0x00000002
+  XIMStringConversionTopEdge* = 0x00000004
+  XIMStringConversionBottomEdge* = 0x00000008
+  XIMStringConversionConcealed* = 0x00000010
+  XIMStringConversionWrapped* = 0x00000020
+
+type
+  PXIMStringConversionText* = ptr XIMStringConversionText
+  XIMStringConversionText*{.final.} = object
+    len*: cushort
+    feedback*: PXIMStringConversionFeedback
+    encoding_is_wchar*: XBool
+    mbs*: cstring
+
+  PXIMStringConversionPosition* = ptr XIMStringConversionPosition
+  XIMStringConversionPosition* = cushort
+
+  PXIMStringConversionType* = ptr XIMStringConversionType
+  XIMStringConversionType* = cushort
+
+const
+  XIMStringConversionBuffer* = 0x00000001
+  XIMStringConversionLine* = 0x00000002
+  XIMStringConversionWord* = 0x00000003
+  XIMStringConversionChar* = 0x00000004
+
+type
+  PXIMStringConversionOperation* = ptr XIMStringConversionOperation
+  XIMStringConversionOperation* = cushort
+
+const
+  XIMStringConversionSubstitution* = 0x00000001
+  XIMStringConversionRetrieval* = 0x00000002
+
+type
+  PXIMCaretDirection* = ptr XIMCaretDirection
+  XIMCaretDirection* = enum
+    XIMForwardChar, XIMBackwardChar, XIMForwardWord, XIMBackwardWord,
+    XIMCaretUp, XIMCaretDown, XIMNextLine, XIMPreviousLine, XIMLineStart,
+    XIMLineEnd, XIMAbsolutePosition, XIMDontChange
+
+  PXIMStringConversionCallbackStruct* = ptr XIMStringConversionCallbackStruct
+  XIMStringConversionCallbackStruct*{.final.} = object
+    position*: XIMStringConversionPosition
+    direction*: XIMCaretDirection
+    operation*: XIMStringConversionOperation
+    factor*: cushort
+    text*: PXIMStringConversionText
+
+  PXIMPreeditDrawCallbackStruct* = ptr XIMPreeditDrawCallbackStruct
+  XIMPreeditDrawCallbackStruct*{.final.} = object
+    caret*: cint
+    chg_first*: cint
+    chg_length*: cint
+    text*: PXIMText
+
+  PXIMCaretStyle* = ptr XIMCaretStyle
+  XIMCaretStyle* = enum
+    XIMIsInvisible, XIMIsPrimary, XIMIsSecondary
+
+  PXIMPreeditCaretCallbackStruct* = ptr XIMPreeditCaretCallbackStruct
+  XIMPreeditCaretCallbackStruct*{.final.} = object
+    position*: cint
+    direction*: XIMCaretDirection
+    style*: XIMCaretStyle
+
+  PXIMStatusDataType* = ptr XIMStatusDataType
+  XIMStatusDataType* = enum
+    XIMTextType, XIMBitmapType
+
+  PXIMStatusDrawCallbackStruct* = ptr XIMStatusDrawCallbackStruct
+  XIMStatusDrawCallbackStruct*{.final.} = object
+    theType*: XIMStatusDataType
+    bitmap*: Pixmap
+
+  PXIMHotKeyTrigger* = ptr XIMHotKeyTrigger
+  XIMHotKeyTrigger*{.final.} = object
+    keysym*: KeySym
+    modifier*: cint
+    modifier_mask*: cint
+
+  PXIMHotKeyTriggers* = ptr XIMHotKeyTriggers
+  XIMHotKeyTriggers*{.final.} = object
+    num_hot_key*: cint
+    key*: PXIMHotKeyTrigger
+
+  PXIMHotKeyState* = ptr XIMHotKeyState
+  XIMHotKeyState* = culong
+
+const
+  XIMHotKeyStateON* = 0x00000001
+  XIMHotKeyStateOFF* = 0x00000002
+
+type
+  PXIMValuesList* = ptr XIMValuesList
+  XIMValuesList*{.final.} = object
+    count_values*: cushort
+    supported_values*: PPChar
+
+
+type
+  funcdisp* = proc (display: PDisplay): cint{.cdecl.}
+  funcifevent* = proc (display: PDisplay, event: PXEvent, p: XPointer): XBool{.
+      cdecl.}
+  chararr32* = array[0..31, char]
+
+const
+  AllPlanes*: culong = not culong(0)
+
+proc XLoadQueryFont*(para1: PDisplay, para2: cstring): PXFontStruct{.libx11.}
+proc XQueryFont*(para1: PDisplay, para2: XID): PXFontStruct{.libx11.}
+proc XGetMotionEvents*(para1: PDisplay, para2: Window, para3: Time,
+                       para4: Time, para5: Pcint): PXTimeCoord{.libx11.}
+proc XDeleteModifiermapEntry*(para1: PXModifierKeymap, para2: KeyCode,
+                              para3: cint): PXModifierKeymap{.libx11.}
+proc XGetModifierMapping*(para1: PDisplay): PXModifierKeymap{.libx11.}
+proc XInsertModifiermapEntry*(para1: PXModifierKeymap, para2: KeyCode,
+                              para3: cint): PXModifierKeymap{.libx11.}
+proc XNewModifiermap*(para1: cint): PXModifierKeymap{.libx11.}
+proc XCreateImage*(para1: PDisplay, para2: PVisual, para3: cuint, para4: cint,
+                   para5: cint, para6: cstring, para7: cuint, para8: cuint,
+                   para9: cint, para10: cint): PXImage{.libx11.}
+proc XInitImage*(para1: PXImage): Status{.libx11.}
+proc XGetImage*(para1: PDisplay, para2: Drawable, para3: cint, para4: cint,
+                para5: cuint, para6: cuint, para7: culong, para8: cint): PXImage{.
+    libx11.}
+proc XGetSubImage*(para1: PDisplay, para2: Drawable, para3: cint, para4: cint,
+                   para5: cuint, para6: cuint, para7: culong, para8: cint,
+                   para9: PXImage, para10: cint, para11: cint): PXImage{.libx11.}
+proc XOpenDisplay*(para1: cstring): PDisplay{.libx11.}
+proc XrmInitialize*(){.libx11.}
+proc XFetchBytes*(para1: PDisplay, para2: Pcint): cstring{.libx11.}
+proc XFetchBuffer*(para1: PDisplay, para2: Pcint, para3: cint): cstring{.libx11.}
+proc XGetAtomName*(para1: PDisplay, para2: Atom): cstring{.libx11.}
+proc XGetAtomNames*(para1: PDisplay, para2: PAtom, para3: cint, para4: PPchar): Status{.
+    libx11.}
+proc XGetDefault*(para1: PDisplay, para2: cstring, para3: cstring): cstring{.
+    libx11.}
+proc XDisplayName*(para1: cstring): cstring{.libx11.}
+proc XKeysymToString*(para1: KeySym): cstring{.libx11.}
+proc XSynchronize*(para1: PDisplay, para2: XBool): funcdisp{.libx11.}
+proc XSetAfterFunction*(para1: PDisplay, para2: funcdisp): funcdisp{.libx11.}
+proc XInternAtom*(para1: PDisplay, para2: cstring, para3: XBool): Atom{.libx11.}
+proc XInternAtoms*(para1: PDisplay, para2: PPchar, para3: cint, para4: XBool,
+                   para5: PAtom): Status{.libx11.}
+proc XCopyColormapAndFree*(para1: PDisplay, para2: Colormap): Colormap{.libx11.}
+proc XCreateColormap*(para1: PDisplay, para2: Window, para3: PVisual,
+                      para4: cint): Colormap{.libx11.}
+proc XCreatePixmapCursor*(para1: PDisplay, para2: Pixmap, para3: Pixmap,
+                          para4: PXColor, para5: PXColor, para6: cuint,
+                          para7: cuint): Cursor{.libx11.}
+proc XCreateGlyphCursor*(para1: PDisplay, para2: Font, para3: Font,
+                         para4: cuint, para5: cuint, para6: PXColor,
+                         para7: PXColor): Cursor{.libx11.}
+proc XCreateFontCursor*(para1: PDisplay, para2: cuint): Cursor{.libx11.}
+proc XLoadFont*(para1: PDisplay, para2: cstring): Font{.libx11.}
+proc XCreateGC*(para1: PDisplay, para2: Drawable, para3: culong,
+                para4: PXGCValues): GC{.libx11.}
+proc XGContextFromGC*(para1: GC): GContext{.libx11.}
+proc XFlushGC*(para1: PDisplay, para2: GC){.libx11.}
+proc XCreatePixmap*(para1: PDisplay, para2: Drawable, para3: cuint,
+                    para4: cuint, para5: cuint): Pixmap{.libx11.}
+proc XCreateBitmapFromData*(para1: PDisplay, para2: Drawable, para3: cstring,
+                            para4: cuint, para5: cuint): Pixmap{.libx11.}
+proc XCreatePixmapFromBitmapData*(para1: PDisplay, para2: Drawable,
+                                  para3: cstring, para4: cuint, para5: cuint,
+                                  para6: culong, para7: culong, para8: cuint): Pixmap{.
+    libx11.}
+proc XCreateSimpleWindow*(para1: PDisplay, para2: Window, para3: cint,
+                          para4: cint, para5: cuint, para6: cuint, para7: cuint,
+                          para8: culong, para9: culong): Window{.libx11.}
+proc XGetSelectionOwner*(para1: PDisplay, para2: Atom): Window{.libx11.}
+proc XCreateWindow*(para1: PDisplay, para2: Window, para3: cint, para4: cint,
+                    para5: cuint, para6: cuint, para7: cuint, para8: cint,
+                    para9: cuint, para10: PVisual, para11: culong,
+                    para12: PXSetWindowAttributes): Window{.libx11.}
+proc XListInstalledColormaps*(para1: PDisplay, para2: Window, para3: Pcint): PColormap{.
+    libx11.}
+proc XListFonts*(para1: PDisplay, para2: cstring, para3: cint, para4: Pcint): PPChar{.
+    libx11.}
+proc XListFontsWithInfo*(para1: PDisplay, para2: cstring, para3: cint,
+                         para4: Pcint, para5: PPXFontStruct): PPChar{.libx11.}
+proc XGetFontPath*(para1: PDisplay, para2: Pcint): PPChar{.libx11.}
+proc XListExtensions*(para1: PDisplay, para2: Pcint): PPChar{.libx11.}
+proc XListProperties*(para1: PDisplay, para2: Window, para3: Pcint): PAtom{.
+    libx11.}
+proc XListHosts*(para1: PDisplay, para2: Pcint, para3: PBool): PXHostAddress{.
+    libx11.}
+proc XKeycodeToKeysym*(para1: PDisplay, para2: KeyCode, para3: cint): KeySym{.
+    libx11.}
+proc XLookupKeysym*(para1: PXKeyEvent, para2: cint): KeySym{.libx11.}
+proc XGetKeyboardMapping*(para1: PDisplay, para2: KeyCode, para3: cint,
+                          para4: Pcint): PKeySym{.libx11.}
+proc XStringToKeysym*(para1: cstring): KeySym{.libx11.}
+proc XMaxRequestSize*(para1: PDisplay): clong{.libx11.}
+proc XExtendedMaxRequestSize*(para1: PDisplay): clong{.libx11.}
+proc XResourceManagerString*(para1: PDisplay): cstring{.libx11.}
+proc XScreenResourceString*(para1: PScreen): cstring{.libx11.}
+proc XDisplayMotionBufferSize*(para1: PDisplay): culong{.libx11.}
+proc XVisualIDFromVisual*(para1: PVisual): VisualID{.libx11.}
+proc XInitThreads*(): Status{.libx11.}
+proc XLockDisplay*(para1: PDisplay){.libx11.}
+proc XUnlockDisplay*(para1: PDisplay){.libx11.}
+proc XInitExtension*(para1: PDisplay, para2: cstring): PXExtCodes{.libx11.}
+proc XAddExtension*(para1: PDisplay): PXExtCodes{.libx11.}
+proc XFindOnExtensionList*(para1: PPXExtData, para2: cint): PXExtData{.libx11.}
+proc XEHeadOfExtensionList*(para1: XEDataObject): PPXExtData{.libx11.}
+proc XRootWindow*(para1: PDisplay, para2: cint): Window{.libx11.}
+proc XDefaultRootWindow*(para1: PDisplay): Window{.libx11.}
+proc XRootWindowOfScreen*(para1: PScreen): Window{.libx11.}
+proc XDefaultVisual*(para1: PDisplay, para2: cint): PVisual{.libx11.}
+proc XDefaultVisualOfScreen*(para1: PScreen): PVisual{.libx11.}
+proc XDefaultGC*(para1: PDisplay, para2: cint): GC{.libx11.}
+proc XDefaultGCOfScreen*(para1: PScreen): GC{.libx11.}
+proc XBlackPixel*(para1: PDisplay, para2: cint): culong{.libx11.}
+proc XWhitePixel*(para1: PDisplay, para2: cint): culong{.libx11.}
+proc XAllPlanes*(): culong{.libx11.}
+proc XBlackPixelOfScreen*(para1: PScreen): culong{.libx11.}
+proc XWhitePixelOfScreen*(para1: PScreen): culong{.libx11.}
+proc XNextRequest*(para1: PDisplay): culong{.libx11.}
+proc XLastKnownRequestProcessed*(para1: PDisplay): culong{.libx11.}
+proc XServerVendor*(para1: PDisplay): cstring{.libx11.}
+proc XDisplayString*(para1: PDisplay): cstring{.libx11.}
+proc XDefaultColormap*(para1: PDisplay, para2: cint): Colormap{.libx11.}
+proc XDefaultColormapOfScreen*(para1: PScreen): Colormap{.libx11.}
+proc XDisplayOfScreen*(para1: PScreen): PDisplay{.libx11.}
+proc XScreenOfDisplay*(para1: PDisplay, para2: cint): PScreen{.libx11.}
+proc XDefaultScreenOfDisplay*(para1: PDisplay): PScreen{.libx11.}
+proc XEventMaskOfScreen*(para1: PScreen): clong{.libx11.}
+proc XScreenNumberOfScreen*(para1: PScreen): cint{.libx11.}
+
+type
+  XErrorHandler* = proc (para1: PDisplay, para2: PXErrorEvent): cint{.cdecl.}
+
+proc XSetErrorHandler*(para1: XErrorHandler): XErrorHandler{.libx11.}
+type
+  XIOErrorHandler* = proc (para1: PDisplay): cint{.cdecl.}
+
+proc XSetIOErrorHandler*(para1: XIOErrorHandler): XIOErrorHandler{.libx11.}
+proc XListPixmapFormats*(para1: PDisplay, para2: Pcint): PXPixmapFormatValues{.
+    libx11.}
+proc XListDepths*(para1: PDisplay, para2: cint, para3: Pcint): Pcint{.libx11.}
+proc XReconfigureWMWindow*(para1: PDisplay, para2: Window, para3: cint,
+                           para4: cuint, para5: PXWindowChanges): Status{.
+    libx11.}
+proc XGetWMProtocols*(para1: PDisplay, para2: Window, para3: PPAtom,
+                      para4: Pcint): Status{.libx11.}
+proc XSetWMProtocols*(para1: PDisplay, para2: Window, para3: PAtom, para4: cint): Status{.
+    libx11.}
+proc XIconifyWindow*(para1: PDisplay, para2: Window, para3: cint): Status{.
+    libx11.}
+proc XWithdrawWindow*(para1: PDisplay, para2: Window, para3: cint): Status{.
+    libx11.}
+proc XGetCommand*(para1: PDisplay, para2: Window, para3: PPPchar, para4: Pcint): Status{.
+    libx11.}
+proc XGetWMColormapWindows*(para1: PDisplay, para2: Window, para3: PPWindow,
+                            para4: Pcint): Status{.libx11.}
+proc XSetWMColormapWindows*(para1: PDisplay, para2: Window, para3: PWindow,
+                            para4: cint): Status{.libx11.}
+proc XFreeStringList*(para1: PPchar){.libx11.}
+proc XSetTransientForHint*(para1: PDisplay, para2: Window, para3: Window): cint{.
+    libx11.}
+proc XActivateScreenSaver*(para1: PDisplay): cint{.libx11.}
+proc XAddHost*(para1: PDisplay, para2: PXHostAddress): cint{.libx11.}
+proc XAddHosts*(para1: PDisplay, para2: PXHostAddress, para3: cint): cint{.
+    libx11.}
+proc XAddToExtensionList*(para1: PPXExtData, para2: PXExtData): cint{.libx11.}
+proc XAddToSaveSet*(para1: PDisplay, para2: Window): cint{.libx11.}
+proc XAllocColor*(para1: PDisplay, para2: Colormap, para3: PXColor): Status{.
+    libx11.}
+proc XAllocColorCells*(para1: PDisplay, para2: Colormap, para3: XBool,
+                       para4: Pculong, para5: cuint, para6: Pculong,
+                       para7: cuint): Status{.libx11.}
+proc XAllocColorPlanes*(para1: PDisplay, para2: Colormap, para3: XBool,
+                        para4: Pculong, para5: cint, para6: cint, para7: cint,
+                        para8: cint, para9: Pculong, para10: Pculong,
+                        para11: Pculong): Status{.libx11.}
+proc XAllocNamedColor*(para1: PDisplay, para2: Colormap, para3: cstring,
+                       para4: PXColor, para5: PXColor): Status{.libx11.}
+proc XAllowEvents*(para1: PDisplay, para2: cint, para3: Time): cint{.libx11.}
+proc XAutoRepeatOff*(para1: PDisplay): cint{.libx11.}
+proc XAutoRepeatOn*(para1: PDisplay): cint{.libx11.}
+proc XBell*(para1: PDisplay, para2: cint): cint{.libx11.}
+proc XBitmapBitOrder*(para1: PDisplay): cint{.libx11.}
+proc XBitmapPad*(para1: PDisplay): cint{.libx11.}
+proc XBitmapUnit*(para1: PDisplay): cint{.libx11.}
+proc XCellsOfScreen*(para1: PScreen): cint{.libx11.}
+proc XChangeActivePointerGrab*(para1: PDisplay, para2: cuint, para3: Cursor,
+                               para4: Time): cint{.libx11.}
+proc XChangeGC*(para1: PDisplay, para2: GC, para3: culong, para4: PXGCValues): cint{.
+    libx11.}
+proc XChangeKeyboardControl*(para1: PDisplay, para2: culong,
+                             para3: PXKeyboardControl): cint{.libx11.}
+proc XChangeKeyboardMapping*(para1: PDisplay, para2: cint, para3: cint,
+                             para4: PKeySym, para5: cint): cint{.libx11.}
+proc XChangePointerControl*(para1: PDisplay, para2: XBool, para3: XBool,
+                            para4: cint, para5: cint, para6: cint): cint{.libx11.}
+proc XChangeProperty*(para1: PDisplay, para2: Window, para3: Atom,
+                      para4: Atom, para5: cint, para6: cint, para7: Pcuchar,
+                      para8: cint): cint{.libx11.}
+proc XChangeSaveSet*(para1: PDisplay, para2: Window, para3: cint): cint{.libx11.}
+proc XChangeWindowAttributes*(para1: PDisplay, para2: Window, para3: culong,
+                              para4: PXSetWindowAttributes): cint{.libx11.}
+proc XCheckIfEvent*(para1: PDisplay, para2: PXEvent, para3: funcifevent,
+                    para4: XPointer): XBool{.libx11.}
+proc XCheckMaskEvent*(para1: PDisplay, para2: clong, para3: PXEvent): XBool{.
+    libx11.}
+proc XCheckTypedEvent*(para1: PDisplay, para2: cint, para3: PXEvent): XBool{.
+    libx11.}
+proc XCheckTypedWindowEvent*(para1: PDisplay, para2: Window, para3: cint,
+                             para4: PXEvent): XBool{.libx11.}
+proc XCheckWindowEvent*(para1: PDisplay, para2: Window, para3: clong,
+                        para4: PXEvent): XBool{.libx11.}
+proc XCirculateSubwindows*(para1: PDisplay, para2: Window, para3: cint): cint{.
+    libx11.}
+proc XCirculateSubwindowsDown*(para1: PDisplay, para2: Window): cint{.libx11.}
+proc XCirculateSubwindowsUp*(para1: PDisplay, para2: Window): cint{.libx11.}
+proc XClearArea*(para1: PDisplay, para2: Window, para3: cint, para4: cint,
+                 para5: cuint, para6: cuint, para7: XBool): cint{.libx11.}
+proc XClearWindow*(para1: PDisplay, para2: Window): cint{.libx11.}
+proc XCloseDisplay*(para1: PDisplay): cint{.libx11.}
+proc XConfigureWindow*(para1: PDisplay, para2: Window, para3: cuint,
+                       para4: PXWindowChanges): cint{.libx11.}
+proc XConnectionNumber*(para1: PDisplay): cint{.libx11.}
+proc XConvertSelection*(para1: PDisplay, para2: Atom, para3: Atom,
+                        para4: Atom, para5: Window, para6: Time): cint{.
+    libx11.}
+proc XCopyArea*(para1: PDisplay, para2: Drawable, para3: Drawable, para4: GC,
+                para5: cint, para6: cint, para7: cuint, para8: cuint,
+                para9: cint, para10: cint): cint{.libx11.}
+proc XCopyGC*(para1: PDisplay, para2: GC, para3: culong, para4: GC): cint{.
+    libx11.}
+proc XCopyPlane*(para1: PDisplay, para2: Drawable, para3: Drawable,
+                 para4: GC, para5: cint, para6: cint, para7: cuint,
+                 para8: cuint, para9: cint, para10: cint, para11: culong): cint{.
+    libx11.}
+proc XDefaultDepth*(para1: PDisplay, para2: cint): cint{.libx11.}
+proc XDefaultDepthOfScreen*(para1: PScreen): cint{.libx11.}
+proc XDefaultScreen*(para1: PDisplay): cint{.libx11.}
+proc XDefineCursor*(para1: PDisplay, para2: Window, para3: Cursor): cint{.
+    libx11.}
+proc XDeleteProperty*(para1: PDisplay, para2: Window, para3: Atom): cint{.
+    libx11.}
+proc XDestroyWindow*(para1: PDisplay, para2: Window): cint{.libx11.}
+proc XDestroySubwindows*(para1: PDisplay, para2: Window): cint{.libx11.}
+proc XDoesBackingStore*(para1: PScreen): cint{.libx11.}
+proc XDoesSaveUnders*(para1: PScreen): XBool{.libx11.}
+proc XDisableAccessControl*(para1: PDisplay): cint{.libx11.}
+proc XDisplayCells*(para1: PDisplay, para2: cint): cint{.libx11.}
+proc XDisplayHeight*(para1: PDisplay, para2: cint): cint{.libx11.}
+proc XDisplayHeightMM*(para1: PDisplay, para2: cint): cint{.libx11.}
+proc XDisplayKeycodes*(para1: PDisplay, para2: Pcint, para3: Pcint): cint{.
+    libx11.}
+proc XDisplayPlanes*(para1: PDisplay, para2: cint): cint{.libx11.}
+proc XDisplayWidth*(para1: PDisplay, para2: cint): cint{.libx11.}
+proc XDisplayWidthMM*(para1: PDisplay, para2: cint): cint{.libx11.}
+proc XDrawArc*(para1: PDisplay, para2: Drawable, para3: GC, para4: cint,
+               para5: cint, para6: cuint, para7: cuint, para8: cint, para9: cint): cint{.
+    libx11.}
+proc XDrawArcs*(para1: PDisplay, para2: Drawable, para3: GC, para4: PXArc,
+                para5: cint): cint{.libx11.}
+proc XDrawImageString*(para1: PDisplay, para2: Drawable, para3: GC,
+                       para4: cint, para5: cint, para6: cstring, para7: cint): cint{.
+    libx11.}
+proc XDrawImageString16*(para1: PDisplay, para2: Drawable, para3: GC,
+                         para4: cint, para5: cint, para6: PXChar2b, para7: cint): cint{.
+    libx11.}
+proc XDrawLine*(para1: PDisplay, para2: Drawable, para3: GC, para4: cint,
+                para5: cint, para6: cint, para7: cint): cint{.libx11.}
+proc XDrawLines*(para1: PDisplay, para2: Drawable, para3: GC, para4: PXPoint,
+                 para5: cint, para6: cint): cint{.libx11.}
+proc XDrawPoint*(para1: PDisplay, para2: Drawable, para3: GC, para4: cint,
+                 para5: cint): cint{.libx11.}
+proc XDrawPoints*(para1: PDisplay, para2: Drawable, para3: GC, para4: PXPoint,
+                  para5: cint, para6: cint): cint{.libx11.}
+proc XDrawRectangle*(para1: PDisplay, para2: Drawable, para3: GC, para4: cint,
+                     para5: cint, para6: cuint, para7: cuint): cint{.libx11.}
+proc XDrawRectangles*(para1: PDisplay, para2: Drawable, para3: GC,
+                      para4: PXRectangle, para5: cint): cint{.libx11.}
+proc XDrawSegments*(para1: PDisplay, para2: Drawable, para3: GC,
+                    para4: PXSegment, para5: cint): cint{.libx11.}
+proc XDrawString*(para1: PDisplay, para2: Drawable, para3: GC, para4: cint,
+                  para5: cint, para6: cstring, para7: cint): cint{.libx11.}
+proc XDrawString16*(para1: PDisplay, para2: Drawable, para3: GC, para4: cint,
+                    para5: cint, para6: PXChar2b, para7: cint): cint{.libx11.}
+proc XDrawText*(para1: PDisplay, para2: Drawable, para3: GC, para4: cint,
+                para5: cint, para6: PXTextItem, para7: cint): cint{.libx11.}
+proc XDrawText16*(para1: PDisplay, para2: Drawable, para3: GC, para4: cint,
+                  para5: cint, para6: PXTextItem16, para7: cint): cint{.libx11.}
+proc XEnableAccessControl*(para1: PDisplay): cint{.libx11.}
+proc XEventsQueued*(para1: PDisplay, para2: cint): cint{.libx11.}
+proc XFetchName*(para1: PDisplay, para2: Window, para3: PPchar): Status{.
+    libx11.}
+proc XFillArc*(para1: PDisplay, para2: Drawable, para3: GC, para4: cint,
+               para5: cint, para6: cuint, para7: cuint, para8: cint, para9: cint): cint{.
+    libx11.}
+proc XFillArcs*(para1: PDisplay, para2: Drawable, para3: GC, para4: PXArc,
+                para5: cint): cint{.libx11.}
+proc XFillPolygon*(para1: PDisplay, para2: Drawable, para3: GC,
+                   para4: PXPoint, para5: cint, para6: cint, para7: cint): cint{.
+    libx11.}
+proc XFillRectangle*(para1: PDisplay, para2: Drawable, para3: GC, para4: cint,
+                     para5: cint, para6: cuint, para7: cuint): cint{.libx11.}
+proc XFillRectangles*(para1: PDisplay, para2: Drawable, para3: GC,
+                      para4: PXRectangle, para5: cint): cint{.libx11.}
+proc XFlush*(para1: PDisplay): cint{.libx11.}
+proc XForceScreenSaver*(para1: PDisplay, para2: cint): cint{.libx11.}
+proc XFree*(para1: pointer): cint{.libx11.}
+proc XFreeColormap*(para1: PDisplay, para2: Colormap): cint{.libx11.}
+proc XFreeColors*(para1: PDisplay, para2: Colormap, para3: Pculong,
+                  para4: cint, para5: culong): cint{.libx11.}
+proc XFreeCursor*(para1: PDisplay, para2: Cursor): cint{.libx11.}
+proc XFreeExtensionList*(para1: PPchar): cint{.libx11.}
+proc XFreeFont*(para1: PDisplay, para2: PXFontStruct): cint{.libx11.}
+proc XFreeFontInfo*(para1: PPchar, para2: PXFontStruct, para3: cint): cint{.
+    libx11.}
+proc XFreeFontNames*(para1: PPchar): cint{.libx11.}
+proc XFreeFontPath*(para1: PPchar): cint{.libx11.}
+proc XFreeGC*(para1: PDisplay, para2: GC): cint{.libx11.}
+proc XFreeModifiermap*(para1: PXModifierKeymap): cint{.libx11.}
+proc XFreePixmap*(para1: PDisplay, para2: Pixmap): cint{.libx11.}
+proc XGeometry*(para1: PDisplay, para2: cint, para3: cstring, para4: cstring,
+                para5: cuint, para6: cuint, para7: cuint, para8: cint,
+                para9: cint, para10: Pcint, para11: Pcint, para12: Pcint,
+                para13: Pcint): cint{.libx11.}
+proc XGetErrorDatabaseText*(para1: PDisplay, para2: cstring, para3: cstring,
+                            para4: cstring, para5: cstring, para6: cint): cint{.
+    libx11.}
+proc XGetErrorText*(para1: PDisplay, para2: cint, para3: cstring, para4: cint): cint{.
+    libx11.}
+proc XGetFontProperty*(para1: PXFontStruct, para2: Atom, para3: Pculong): XBool{.
+    libx11.}
+proc XGetGCValues*(para1: PDisplay, para2: GC, para3: culong, para4: PXGCValues): Status{.
+    libx11.}
+proc XGetGeometry*(para1: PDisplay, para2: Drawable, para3: PWindow,
+                   para4: Pcint, para5: Pcint, para6: Pcuint, para7: Pcuint,
+                   para8: Pcuint, para9: Pcuint): Status{.libx11.}
+proc XGetIconName*(para1: PDisplay, para2: Window, para3: PPchar): Status{.
+    libx11.}
+proc XGetInputFocus*(para1: PDisplay, para2: PWindow, para3: Pcint): cint{.
+    libx11.}
+proc XGetKeyboardControl*(para1: PDisplay, para2: PXKeyboardState): cint{.libx11.}
+proc XGetPointerControl*(para1: PDisplay, para2: Pcint, para3: Pcint,
+                         para4: Pcint): cint{.libx11.}
+proc XGetPointerMapping*(para1: PDisplay, para2: Pcuchar, para3: cint): cint{.
+    libx11.}
+proc XGetScreenSaver*(para1: PDisplay, para2: Pcint, para3: Pcint, para4: Pcint,
+                      para5: Pcint): cint{.libx11.}
+proc XGetTransientForHint*(para1: PDisplay, para2: Window, para3: PWindow): Status{.
+    libx11.}
+proc XGetWindowProperty*(para1: PDisplay, para2: Window, para3: Atom,
+                         para4: clong, para5: clong, para6: XBool, para7: Atom,
+                         para8: PAtom, para9: Pcint, para10: Pculong,
+                         para11: Pculong, para12: PPcuchar): cint{.libx11.}
+proc XGetWindowAttributes*(para1: PDisplay, para2: Window,
+                           para3: PXWindowAttributes): Status{.libx11.}
+proc XGrabButton*(para1: PDisplay, para2: cuint, para3: cuint, para4: Window,
+                  para5: XBool, para6: cuint, para7: cint, para8: cint,
+                  para9: Window, para10: Cursor): cint{.libx11.}
+proc XGrabKey*(para1: PDisplay, para2: cint, para3: cuint, para4: Window,
+               para5: XBool, para6: cint, para7: cint): cint{.libx11.}
+proc XGrabKeyboard*(para1: PDisplay, para2: Window, para3: XBool, para4: cint,
+                    para5: cint, para6: Time): cint{.libx11.}
+proc XGrabPointer*(para1: PDisplay, para2: Window, para3: XBool, para4: cuint,
+                   para5: cint, para6: cint, para7: Window, para8: Cursor,
+                   para9: Time): cint{.libx11.}
+proc XGrabServer*(para1: PDisplay): cint{.libx11.}
+proc XHeightMMOfScreen*(para1: PScreen): cint{.libx11.}
+proc XHeightOfScreen*(para1: PScreen): cint{.libx11.}
+proc XIfEvent*(para1: PDisplay, para2: PXEvent, para3: funcifevent,
+               para4: XPointer): cint{.libx11.}
+proc XImageByteOrder*(para1: PDisplay): cint{.libx11.}
+proc XInstallColormap*(para1: PDisplay, para2: Colormap): cint{.libx11.}
+proc XKeysymToKeycode*(para1: PDisplay, para2: KeySym): KeyCode{.libx11.}
+proc XKillClient*(para1: PDisplay, para2: XID): cint{.libx11.}
+proc XLookupColor*(para1: PDisplay, para2: Colormap, para3: cstring,
+                   para4: PXColor, para5: PXColor): Status{.libx11.}
+proc XLowerWindow*(para1: PDisplay, para2: Window): cint{.libx11.}
+proc XMapRaised*(para1: PDisplay, para2: Window): cint{.libx11.}
+proc XMapSubwindows*(para1: PDisplay, para2: Window): cint{.libx11.}
+proc XMapWindow*(para1: PDisplay, para2: Window): cint{.libx11.}
+proc XMaskEvent*(para1: PDisplay, para2: clong, para3: PXEvent): cint{.libx11.}
+proc XMaxCmapsOfScreen*(para1: PScreen): cint{.libx11.}
+proc XMinCmapsOfScreen*(para1: PScreen): cint{.libx11.}
+proc XMoveResizeWindow*(para1: PDisplay, para2: Window, para3: cint,
+                        para4: cint, para5: cuint, para6: cuint): cint{.libx11.}
+proc XMoveWindow*(para1: PDisplay, para2: Window, para3: cint, para4: cint): cint{.
+    libx11.}
+proc XNextEvent*(para1: PDisplay, para2: PXEvent): cint{.libx11.}
+proc XNoOp*(para1: PDisplay): cint{.libx11.}
+proc XParseColor*(para1: PDisplay, para2: Colormap, para3: cstring,
+                  para4: PXColor): Status{.libx11.}
+proc XParseGeometry*(para1: cstring, para2: Pcint, para3: Pcint, para4: Pcuint,
+                     para5: Pcuint): cint{.libx11.}
+proc XPeekEvent*(para1: PDisplay, para2: PXEvent): cint{.libx11.}
+proc XPeekIfEvent*(para1: PDisplay, para2: PXEvent, para3: funcifevent,
+                   para4: XPointer): cint{.libx11.}
+proc XPending*(para1: PDisplay): cint{.libx11.}
+proc XPlanesOfScreen*(para1: PScreen): cint{.libx11.}
+proc XProtocolRevision*(para1: PDisplay): cint{.libx11.}
+proc XProtocolVersion*(para1: PDisplay): cint{.libx11.}
+proc XPutBackEvent*(para1: PDisplay, para2: PXEvent): cint{.libx11.}
+proc XPutImage*(para1: PDisplay, para2: Drawable, para3: GC, para4: PXImage,
+                para5: cint, para6: cint, para7: cint, para8: cint,
+                para9: cuint, para10: cuint): cint{.libx11.}
+proc XQLength*(para1: PDisplay): cint{.libx11.}
+proc XQueryBestCursor*(para1: PDisplay, para2: Drawable, para3: cuint,
+                       para4: cuint, para5: Pcuint, para6: Pcuint): Status{.
+    libx11.}
+proc XQueryBestSize*(para1: PDisplay, para2: cint, para3: Drawable,
+                     para4: cuint, para5: cuint, para6: Pcuint, para7: Pcuint): Status{.
+    libx11.}
+proc XQueryBestStipple*(para1: PDisplay, para2: Drawable, para3: cuint,
+                        para4: cuint, para5: Pcuint, para6: Pcuint): Status{.
+    libx11.}
+proc XQueryBestTile*(para1: PDisplay, para2: Drawable, para3: cuint,
+                     para4: cuint, para5: Pcuint, para6: Pcuint): Status{.
+    libx11.}
+proc XQueryColor*(para1: PDisplay, para2: Colormap, para3: PXColor): cint{.
+    libx11.}
+proc XQueryColors*(para1: PDisplay, para2: Colormap, para3: PXColor,
+                   para4: cint): cint{.libx11.}
+proc XQueryExtension*(para1: PDisplay, para2: cstring, para3: Pcint,
+                      para4: Pcint, para5: Pcint): XBool{.libx11.}
+  #?
+proc XQueryKeymap*(para1: PDisplay, para2: chararr32): cint{.libx11.}
+proc XQueryPointer*(para1: PDisplay, para2: Window, para3: PWindow,
+                    para4: PWindow, para5: Pcint, para6: Pcint, para7: Pcint,
+                    para8: Pcint, para9: Pcuint): XBool{.libx11.}
+proc XQueryTextExtents*(para1: PDisplay, para2: XID, para3: cstring,
+                        para4: cint, para5: Pcint, para6: Pcint, para7: Pcint,
+                        para8: PXCharStruct): cint{.libx11.}
+proc XQueryTextExtents16*(para1: PDisplay, para2: XID, para3: PXChar2b,
+                          para4: cint, para5: Pcint, para6: Pcint, para7: Pcint,
+                          para8: PXCharStruct): cint{.libx11.}
+proc XQueryTree*(para1: PDisplay, para2: Window, para3: PWindow,
+                 para4: PWindow, para5: PPWindow, para6: Pcuint): Status{.
+    libx11.}
+proc XRaiseWindow*(para1: PDisplay, para2: Window): cint{.libx11.}
+proc XReadBitmapFile*(para1: PDisplay, para2: Drawable, para3: cstring,
+                      para4: Pcuint, para5: Pcuint, para6: PPixmap,
+                      para7: Pcint, para8: Pcint): cint{.libx11.}
+proc XReadBitmapFileData*(para1: cstring, para2: Pcuint, para3: Pcuint,
+                          para4: PPcuchar, para5: Pcint, para6: Pcint): cint{.
+    libx11.}
+proc XRebindKeysym*(para1: PDisplay, para2: KeySym, para3: PKeySym,
+                    para4: cint, para5: Pcuchar, para6: cint): cint{.libx11.}
+proc XRecolorCursor*(para1: PDisplay, para2: Cursor, para3: PXColor,
+                     para4: PXColor): cint{.libx11.}
+proc XRefreshKeyboardMapping*(para1: PXMappingEvent): cint{.libx11.}
+proc XRemoveFromSaveSet*(para1: PDisplay, para2: Window): cint{.libx11.}
+proc XRemoveHost*(para1: PDisplay, para2: PXHostAddress): cint{.libx11.}
+proc XRemoveHosts*(para1: PDisplay, para2: PXHostAddress, para3: cint): cint{.
+    libx11.}
+proc XReparentWindow*(para1: PDisplay, para2: Window, para3: Window,
+                      para4: cint, para5: cint): cint{.libx11.}
+proc XResetScreenSaver*(para1: PDisplay): cint{.libx11.}
+proc XResizeWindow*(para1: PDisplay, para2: Window, para3: cuint, para4: cuint): cint{.
+    libx11.}
+proc XRestackWindows*(para1: PDisplay, para2: PWindow, para3: cint): cint{.
+    libx11.}
+proc XRotateBuffers*(para1: PDisplay, para2: cint): cint{.libx11.}
+proc XRotateWindowProperties*(para1: PDisplay, para2: Window, para3: PAtom,
+                              para4: cint, para5: cint): cint{.libx11.}
+proc XScreenCount*(para1: PDisplay): cint{.libx11.}
+proc XSelectInput*(para1: PDisplay, para2: Window, para3: clong): cint{.libx11.}
+proc XSendEvent*(para1: PDisplay, para2: Window, para3: XBool, para4: clong,
+                 para5: PXEvent): Status{.libx11.}
+proc XSetAccessControl*(para1: PDisplay, para2: cint): cint{.libx11.}
+proc XSetArcMode*(para1: PDisplay, para2: GC, para3: cint): cint{.libx11.}
+proc XSetBackground*(para1: PDisplay, para2: GC, para3: culong): cint{.libx11.}
+proc XSetClipMask*(para1: PDisplay, para2: GC, para3: Pixmap): cint{.libx11.}
+proc XSetClipOrigin*(para1: PDisplay, para2: GC, para3: cint, para4: cint): cint{.
+    libx11.}
+proc XSetClipRectangles*(para1: PDisplay, para2: GC, para3: cint, para4: cint,
+                         para5: PXRectangle, para6: cint, para7: cint): cint{.
+    libx11.}
+proc XSetCloseDownMode*(para1: PDisplay, para2: cint): cint{.libx11.}
+proc XSetCommand*(para1: PDisplay, para2: Window, para3: PPchar, para4: cint): cint{.
+    libx11.}
+proc XSetDashes*(para1: PDisplay, para2: GC, para3: cint, para4: cstring,
+                 para5: cint): cint{.libx11.}
+proc XSetFillRule*(para1: PDisplay, para2: GC, para3: cint): cint{.libx11.}
+proc XSetFillStyle*(para1: PDisplay, para2: GC, para3: cint): cint{.libx11.}
+proc XSetFont*(para1: PDisplay, para2: GC, para3: Font): cint{.libx11.}
+proc XSetFontPath*(para1: PDisplay, para2: PPchar, para3: cint): cint{.libx11.}
+proc XSetForeground*(para1: PDisplay, para2: GC, para3: culong): cint{.libx11.}
+proc XSetFunction*(para1: PDisplay, para2: GC, para3: cint): cint{.libx11.}
+proc XSetGraphicsExposures*(para1: PDisplay, para2: GC, para3: XBool): cint{.
+    libx11.}
+proc XSetIconName*(para1: PDisplay, para2: Window, para3: cstring): cint{.
+    libx11.}
+proc XSetInputFocus*(para1: PDisplay, para2: Window, para3: cint, para4: Time): cint{.
+    libx11.}
+proc XSetLineAttributes*(para1: PDisplay, para2: GC, para3: cuint, para4: cint,
+                         para5: cint, para6: cint): cint{.libx11.}
+proc XSetModifierMapping*(para1: PDisplay, para2: PXModifierKeymap): cint{.
+    libx11.}
+proc XSetPlaneMask*(para1: PDisplay, para2: GC, para3: culong): cint{.libx11.}
+proc XSetPointerMapping*(para1: PDisplay, para2: Pcuchar, para3: cint): cint{.
+    libx11.}
+proc XSetScreenSaver*(para1: PDisplay, para2: cint, para3: cint, para4: cint,
+                      para5: cint): cint{.libx11.}
+proc XSetSelectionOwner*(para1: PDisplay, para2: Atom, para3: Window,
+                         para4: Time): cint{.libx11.}
+proc XSetState*(para1: PDisplay, para2: GC, para3: culong, para4: culong,
+                para5: cint, para6: culong): cint{.libx11.}
+proc XSetStipple*(para1: PDisplay, para2: GC, para3: Pixmap): cint{.libx11.}
+proc XSetSubwindowMode*(para1: PDisplay, para2: GC, para3: cint): cint{.libx11.}
+proc XSetTSOrigin*(para1: PDisplay, para2: GC, para3: cint, para4: cint): cint{.
+    libx11.}
+proc XSetTile*(para1: PDisplay, para2: GC, para3: Pixmap): cint{.libx11.}
+proc XSetWindowBackground*(para1: PDisplay, para2: Window, para3: culong): cint{.
+    libx11.}
+proc XSetWindowBackgroundPixmap*(para1: PDisplay, para2: Window, para3: Pixmap): cint{.
+    libx11.}
+proc XSetWindowBorder*(para1: PDisplay, para2: Window, para3: culong): cint{.
+    libx11.}
+proc XSetWindowBorderPixmap*(para1: PDisplay, para2: Window, para3: Pixmap): cint{.
+    libx11.}
+proc XSetWindowBorderWidth*(para1: PDisplay, para2: Window, para3: cuint): cint{.
+    libx11.}
+proc XSetWindowColormap*(para1: PDisplay, para2: Window, para3: Colormap): cint{.
+    libx11.}
+proc XStoreBuffer*(para1: PDisplay, para2: cstring, para3: cint, para4: cint): cint{.
+    libx11.}
+proc XStoreBytes*(para1: PDisplay, para2: cstring, para3: cint): cint{.libx11.}
+proc XStoreColor*(para1: PDisplay, para2: Colormap, para3: PXColor): cint{.
+    libx11.}
+proc XStoreColors*(para1: PDisplay, para2: Colormap, para3: PXColor,
+                   para4: cint): cint{.libx11.}
+proc XStoreName*(para1: PDisplay, para2: Window, para3: cstring): cint{.libx11.}
+proc XStoreNamedColor*(para1: PDisplay, para2: Colormap, para3: cstring,
+                       para4: culong, para5: cint): cint{.libx11.}
+proc XSync*(para1: PDisplay, para2: XBool): cint{.libx11.}
+proc XTextExtents*(para1: PXFontStruct, para2: cstring, para3: cint,
+                   para4: Pcint, para5: Pcint, para6: Pcint, para7: PXCharStruct): cint{.
+    libx11.}
+proc XTextExtents16*(para1: PXFontStruct, para2: PXChar2b, para3: cint,
+                     para4: Pcint, para5: Pcint, para6: Pcint,
+                     para7: PXCharStruct): cint{.libx11.}
+proc XTextWidth*(para1: PXFontStruct, para2: cstring, para3: cint): cint{.libx11.}
+proc XTextWidth16*(para1: PXFontStruct, para2: PXChar2b, para3: cint): cint{.
+    libx11.}
+proc XTranslateCoordinates*(para1: PDisplay, para2: Window, para3: Window,
+                            para4: cint, para5: cint, para6: Pcint,
+                            para7: Pcint, para8: PWindow): XBool{.libx11.}
+proc XUndefineCursor*(para1: PDisplay, para2: Window): cint{.libx11.}
+proc XUngrabButton*(para1: PDisplay, para2: cuint, para3: cuint, para4: Window): cint{.
+    libx11.}
+proc XUngrabKey*(para1: PDisplay, para2: cint, para3: cuint, para4: Window): cint{.
+    libx11.}
+proc XUngrabKeyboard*(para1: PDisplay, para2: Time): cint{.libx11.}
+proc XUngrabPointer*(para1: PDisplay, para2: Time): cint{.libx11.}
+proc XUngrabServer*(para1: PDisplay): cint{.libx11.}
+proc XUninstallColormap*(para1: PDisplay, para2: Colormap): cint{.libx11.}
+proc XUnloadFont*(para1: PDisplay, para2: Font): cint{.libx11.}
+proc XUnmapSubwindows*(para1: PDisplay, para2: Window): cint{.libx11.}
+proc XUnmapWindow*(para1: PDisplay, para2: Window): cint{.libx11.}
+proc XVendorRelease*(para1: PDisplay): cint{.libx11.}
+proc XWarpPointer*(para1: PDisplay, para2: Window, para3: Window, para4: cint,
+                   para5: cint, para6: cuint, para7: cuint, para8: cint,
+                   para9: cint): cint{.libx11.}
+proc XWidthMMOfScreen*(para1: PScreen): cint{.libx11.}
+proc XWidthOfScreen*(para1: PScreen): cint{.libx11.}
+proc XWindowEvent*(para1: PDisplay, para2: Window, para3: clong, para4: PXEvent): cint{.
+    libx11.}
+proc XWriteBitmapFile*(para1: PDisplay, para2: cstring, para3: Pixmap,
+                       para4: cuint, para5: cuint, para6: cint, para7: cint): cint{.
+    libx11.}
+proc XSupportsLocale*(): XBool{.libx11.}
+proc XSetLocaleModifiers*(para1: cstring): cstring{.libx11.}
+proc XOpenOM*(para1: PDisplay, para2: PXrmHashBucketRec, para3: cstring,
+              para4: cstring): XOM{.libx11.}
+proc XCloseOM*(para1: XOM): Status{.libx11.}
+proc XSetOMValues*(para1: XOM): cstring{.varargs, libx11.}
+proc XGetOMValues*(para1: XOM): cstring{.varargs, libx11.}
+proc XDisplayOfOM*(para1: XOM): PDisplay{.libx11.}
+proc XLocaleOfOM*(para1: XOM): cstring{.libx11.}
+proc XCreateOC*(para1: XOM): XOC{.varargs, libx11.}
+proc XDestroyOC*(para1: XOC){.libx11.}
+proc XOMOfOC*(para1: XOC): XOM{.libx11.}
+proc XSetOCValues*(para1: XOC): cstring{.varargs, libx11.}
+proc XGetOCValues*(para1: XOC): cstring{.varargs, libx11.}
+proc XCreateFontSet*(para1: PDisplay, para2: cstring, para3: PPPchar,
+                     para4: Pcint, para5: PPchar): XFontSet{.libx11.}
+proc XFreeFontSet*(para1: PDisplay, para2: XFontSet){.libx11.}
+proc XFontsOfFontSet*(para1: XFontSet, para2: PPPXFontStruct, para3: PPPchar): cint{.
+    libx11.}
+proc XBaseFontNameListOfFontSet*(para1: XFontSet): cstring{.libx11.}
+proc XLocaleOfFontSet*(para1: XFontSet): cstring{.libx11.}
+proc XContextDependentDrawing*(para1: XFontSet): XBool{.libx11.}
+proc XDirectionalDependentDrawing*(para1: XFontSet): XBool{.libx11.}
+proc XContextualDrawing*(para1: XFontSet): XBool{.libx11.}
+proc XExtentsOfFontSet*(para1: XFontSet): PXFontSetExtents{.libx11.}
+proc XmbTextEscapement*(para1: XFontSet, para2: cstring, para3: cint): cint{.
+    libx11.}
+proc XwcTextEscapement*(para1: XFontSet, para2: PWideChar, para3: cint): cint{.
+    libx11.}
+proc Xutf8TextEscapement*(para1: XFontSet, para2: cstring, para3: cint): cint{.
+    libx11.}
+proc XmbTextExtents*(para1: XFontSet, para2: cstring, para3: cint,
+                     para4: PXRectangle, para5: PXRectangle): cint{.libx11.}
+proc XwcTextExtents*(para1: XFontSet, para2: PWideChar, para3: cint,
+                     para4: PXRectangle, para5: PXRectangle): cint{.libx11.}
+proc Xutf8TextExtents*(para1: XFontSet, para2: cstring, para3: cint,
+                       para4: PXRectangle, para5: PXRectangle): cint{.libx11.}
+proc XmbTextPerCharExtents*(para1: XFontSet, para2: cstring, para3: cint,
+                            para4: PXRectangle, para5: PXRectangle, para6: cint,
+                            para7: Pcint, para8: PXRectangle, para9: PXRectangle): Status{.
+    libx11.}
+proc XwcTextPerCharExtents*(para1: XFontSet, para2: PWideChar, para3: cint,
+                            para4: PXRectangle, para5: PXRectangle, para6: cint,
+                            para7: Pcint, para8: PXRectangle, para9: PXRectangle): Status{.
+    libx11.}
+proc Xutf8TextPerCharExtents*(para1: XFontSet, para2: cstring, para3: cint,
+                              para4: PXRectangle, para5: PXRectangle,
+                              para6: cint, para7: Pcint, para8: PXRectangle,
+                              para9: PXRectangle): Status{.libx11.}
+proc XmbDrawText*(para1: PDisplay, para2: Drawable, para3: GC, para4: cint,
+                  para5: cint, para6: PXmbTextItem, para7: cint){.libx11.}
+proc XwcDrawText*(para1: PDisplay, para2: Drawable, para3: GC, para4: cint,
+                  para5: cint, para6: PXwcTextItem, para7: cint){.libx11.}
+proc Xutf8DrawText*(para1: PDisplay, para2: Drawable, para3: GC, para4: cint,
+                    para5: cint, para6: PXmbTextItem, para7: cint){.libx11.}
+proc XmbDrawString*(para1: PDisplay, para2: Drawable, para3: XFontSet,
+                    para4: GC, para5: cint, para6: cint, para7: cstring,
+                    para8: cint){.libx11.}
+proc XwcDrawString*(para1: PDisplay, para2: Drawable, para3: XFontSet,
+                    para4: GC, para5: cint, para6: cint, para7: PWideChar,
+                    para8: cint){.libx11.}
+proc Xutf8DrawString*(para1: PDisplay, para2: Drawable, para3: XFontSet,
+                      para4: GC, para5: cint, para6: cint, para7: cstring,
+                      para8: cint){.libx11.}
+proc XmbDrawImageString*(para1: PDisplay, para2: Drawable, para3: XFontSet,
+                         para4: GC, para5: cint, para6: cint, para7: cstring,
+                         para8: cint){.libx11.}
+proc XwcDrawImageString*(para1: PDisplay, para2: Drawable, para3: XFontSet,
+                         para4: GC, para5: cint, para6: cint, para7: PWideChar,
+                         para8: cint){.libx11.}
+proc Xutf8DrawImageString*(para1: PDisplay, para2: Drawable, para3: XFontSet,
+                           para4: GC, para5: cint, para6: cint, para7: cstring,
+                           para8: cint){.libx11.}
+proc XOpenIM*(para1: PDisplay, para2: PXrmHashBucketRec, para3: cstring,
+              para4: cstring): XIM{.libx11.}
+proc XCloseIM*(para1: XIM): Status{.libx11.}
+proc XGetIMValues*(para1: XIM): cstring{.varargs, libx11.}
+proc XSetIMValues*(para1: XIM): cstring{.varargs, libx11.}
+proc XDisplayOfIM*(para1: XIM): PDisplay{.libx11.}
+proc XLocaleOfIM*(para1: XIM): cstring{.libx11.}
+proc XCreateIC*(para1: XIM): XIC{.varargs, libx11.}
+proc XDestroyIC*(para1: XIC){.libx11.}
+proc XSetICFocus*(para1: XIC){.libx11.}
+proc XUnsetICFocus*(para1: XIC){.libx11.}
+proc XwcResetIC*(para1: XIC): PWideChar{.libx11.}
+proc XmbResetIC*(para1: XIC): cstring{.libx11.}
+proc Xutf8ResetIC*(para1: XIC): cstring{.libx11.}
+proc XSetICValues*(para1: XIC): cstring{.varargs, libx11.}
+proc XGetICValues*(para1: XIC): cstring{.varargs, libx11.}
+proc XIMOfIC*(para1: XIC): XIM{.libx11.}
+proc XFilterEvent*(para1: PXEvent, para2: Window): XBool{.libx11.}
+proc XmbLookupString*(para1: XIC, para2: PXKeyPressedEvent, para3: cstring,
+                      para4: cint, para5: PKeySym, para6: PStatus): cint{.libx11.}
+proc XwcLookupString*(para1: XIC, para2: PXKeyPressedEvent, para3: PWideChar,
+                      para4: cint, para5: PKeySym, para6: PStatus): cint{.libx11.}
+proc Xutf8LookupString*(para1: XIC, para2: PXKeyPressedEvent, para3: cstring,
+                        para4: cint, para5: PKeySym, para6: PStatus): cint{.
+    libx11.}
+proc XVaCreateNestedList*(unused: cint): XVaNestedList{.varargs, libx11.}
+proc XRegisterIMInstantiateCallback*(para1: PDisplay, para2: PXrmHashBucketRec,
+                                     para3: cstring, para4: cstring,
+                                     para5: XIDProc, para6: XPointer): XBool{.
+    libx11.}
+proc XUnregisterIMInstantiateCallback*(para1: PDisplay,
+                                       para2: PXrmHashBucketRec, para3: cstring,
+                                       para4: cstring, para5: XIDProc,
+                                       para6: XPointer): XBool{.libx11.}
+type
+  XConnectionWatchProc* = proc (para1: PDisplay, para2: XPointer, para3: cint,
+                                 para4: XBool, para5: PXPointer){.cdecl.}
+
+proc XInternalConnectionNumbers*(para1: PDisplay, para2: PPcint, para3: Pcint): Status{.
+    libx11.}
+proc XProcessInternalConnection*(para1: PDisplay, para2: cint){.libx11.}
+proc XAddConnectionWatch*(para1: PDisplay, para2: XConnectionWatchProc,
+                          para3: XPointer): Status{.libx11.}
+proc XRemoveConnectionWatch*(para1: PDisplay, para2: XConnectionWatchProc,
+                             para3: XPointer){.libx11.}
+proc XSetAuthorization*(para1: cstring, para2: cint, para3: cstring, para4: cint){.
+    libx11.}
+  #
+  #  _Xmbtowc?
+  #  _Xwctomb?
+  #
+proc XGetEventData*(para1: PDisplay, para2: PXGenericEventCookie): XBool {.libX11.}
+proc XFreeEventData*(para1: PDisplay, para2: PXGenericEventCookie) {.libX11.}
+#when defined(MACROS):
+proc ConnectionNumber*(dpy: PDisplay): cint
+proc RootWindow*(dpy: PDisplay, scr: cint): Window
+proc DefaultScreen*(dpy: PDisplay): cint
+proc DefaultRootWindow*(dpy: PDisplay): Window
+proc DefaultVisual*(dpy: PDisplay, scr: cint): PVisual
+proc DefaultGC*(dpy: PDisplay, scr: cint): GC
+proc BlackPixel*(dpy: PDisplay, scr: cint): culong
+proc WhitePixel*(dpy: PDisplay, scr: cint): culong
+proc QLength*(dpy: PDisplay): cint
+proc DisplayWidth*(dpy: PDisplay, scr: cint): cint
+proc DisplayHeight*(dpy: PDisplay, scr: cint): cint
+proc DisplayWidthMM*(dpy: PDisplay, scr: cint): cint
+proc DisplayHeightMM*(dpy: PDisplay, scr: cint): cint
+proc DisplayPlanes*(dpy: PDisplay, scr: cint): cint
+proc DisplayCells*(dpy: PDisplay, scr: cint): cint
+proc ScreenCount*(dpy: PDisplay): cint
+proc ServerVendor*(dpy: PDisplay): cstring
+proc ProtocolVersion*(dpy: PDisplay): cint
+proc ProtocolRevision*(dpy: PDisplay): cint
+proc VendorRelease*(dpy: PDisplay): cint
+proc DisplayString*(dpy: PDisplay): cstring
+proc DefaultDepth*(dpy: PDisplay, scr: cint): cint
+proc DefaultColormap*(dpy: PDisplay, scr: cint): Colormap
+proc BitmapUnit*(dpy: PDisplay): cint
+proc BitmapBitOrder*(dpy: PDisplay): cint
+proc BitmapPad*(dpy: PDisplay): cint
+proc ImageByteOrder*(dpy: PDisplay): cint
+proc NextRequest*(dpy: PDisplay): culong
+proc LastKnownRequestProcessed*(dpy: PDisplay): culong
+proc ScreenOfDisplay*(dpy: PDisplay, scr: cint): PScreen
+proc DefaultScreenOfDisplay*(dpy: PDisplay): PScreen
+proc DisplayOfScreen*(s: PScreen): PDisplay
+proc RootWindowOfScreen*(s: PScreen): Window
+proc BlackPixelOfScreen*(s: PScreen): culong
+proc WhitePixelOfScreen*(s: PScreen): culong
+proc DefaultColormapOfScreen*(s: PScreen): Colormap
+proc DefaultDepthOfScreen*(s: PScreen): cint
+proc DefaultGCOfScreen*(s: PScreen): GC
+proc DefaultVisualOfScreen*(s: PScreen): PVisual
+proc WidthOfScreen*(s: PScreen): cint
+proc HeightOfScreen*(s: PScreen): cint
+proc WidthMMOfScreen*(s: PScreen): cint
+proc HeightMMOfScreen*(s: PScreen): cint
+proc PlanesOfScreen*(s: PScreen): cint
+proc CellsOfScreen*(s: PScreen): cint
+proc MinCmapsOfScreen*(s: PScreen): cint
+proc MaxCmapsOfScreen*(s: PScreen): cint
+proc DoesSaveUnders*(s: PScreen): XBool
+proc DoesBackingStore*(s: PScreen): cint
+proc EventMaskOfScreen*(s: PScreen): clong
+proc XAllocID*(dpy: PDisplay): XID
+# implementation
+
+#when defined(MACROS):
+template privDisp: untyped = cast[PXPrivDisplay](dpy)
+
+proc ConnectionNumber(dpy: PDisplay): cint =
+  privDisp.fd
+
+proc RootWindow(dpy: PDisplay, scr: cint): Window =
+  ScreenOfDisplay(dpy, scr).root
+
+proc DefaultScreen(dpy: PDisplay): cint =
+  privDisp.default_screen
+
+proc DefaultRootWindow(dpy: PDisplay): Window =
+  ScreenOfDisplay(dpy, DefaultScreen(dpy)).root
+
+proc DefaultVisual(dpy: PDisplay, scr: cint): PVisual =
+  ScreenOfDisplay(dpy, scr).root_visual
+
+proc DefaultGC(dpy: PDisplay, scr: cint): GC =
+  ScreenOfDisplay(dpy, scr).default_gc
+
+proc BlackPixel(dpy: PDisplay, scr: cint): culong =
+  ScreenOfDisplay(dpy, scr).black_pixel
+
+proc WhitePixel(dpy: PDisplay, scr: cint): culong =
+  ScreenOfDisplay(dpy, scr).white_pixel
+
+proc QLength(dpy: PDisplay): cint =
+  privDisp.qlen
+
+proc DisplayWidth(dpy: PDisplay, scr: cint): cint =
+  ScreenOfDisplay(dpy, scr).width
+
+proc DisplayHeight(dpy: PDisplay, scr: cint): cint =
+  ScreenOfDisplay(dpy, scr).height
+
+proc DisplayWidthMM(dpy: PDisplay, scr: cint): cint =
+  ScreenOfDisplay(dpy, scr).mwidth
+
+proc DisplayHeightMM(dpy: PDisplay, scr: cint): cint =
+  ScreenOfDisplay(dpy, scr).mheight
+
+proc DisplayPlanes(dpy: PDisplay, scr: cint): cint =
+  ScreenOfDisplay(dpy, scr).root_depth
+
+proc DisplayCells(dpy: PDisplay, scr: cint): cint =
+  DefaultVisual(dpy, scr).map_entries
+
+proc ScreenCount(dpy: PDisplay): cint =
+  privDisp.nscreens
+
+proc ServerVendor(dpy: PDisplay): cstring =
+  privDisp.vendor
+
+proc ProtocolVersion(dpy: PDisplay): cint =
+  privDisp.proto_major_version
+
+proc ProtocolRevision(dpy: PDisplay): cint =
+  privDisp.proto_minor_version
+
+proc VendorRelease(dpy: PDisplay): cint =
+  privDisp.release
+
+proc DisplayString(dpy: PDisplay): cstring =
+  privDisp.display_name
+
+proc DefaultDepth(dpy: PDisplay, scr: cint): cint =
+  ScreenOfDisplay(dpy, scr).root_depth
+
+proc DefaultColormap(dpy: PDisplay, scr: cint): Colormap =
+  ScreenOfDisplay(dpy, scr).cmap
+
+proc BitmapUnit(dpy: PDisplay): cint =
+  privDisp.bitmap_unit
+
+proc BitmapBitOrder(dpy: PDisplay): cint =
+  privDisp.bitmap_bit_order
+
+proc BitmapPad(dpy: PDisplay): cint =
+  privDisp.bitmap_pad
+
+proc ImageByteOrder(dpy: PDisplay): cint =
+  privDisp.byte_order
+
+proc NextRequest(dpy: PDisplay): culong =
+  privDisp.request + 1.culong
+
+proc LastKnownRequestProcessed(dpy: PDisplay): culong =
+  privDisp.last_request_read
+
+# from fowltek/pointer_arithm, required for ScreenOfDisplay()
+proc offset[A] (some: ptr A; b: int): ptr A =
+  cast[ptr A](cast[int](some) + (b * sizeof(A)))
+proc ScreenOfDisplay(dpy: PDisplay, scr: cint): PScreen =
+  #addr(((privDisp.screens)[scr]))
+  privDisp.screens.offset(scr.int)
+
+proc DefaultScreenOfDisplay(dpy: PDisplay): PScreen =
+  ScreenOfDisplay(dpy, DefaultScreen(dpy))
+
+proc DisplayOfScreen(s: PScreen): PDisplay =
+  s.display
+
+proc RootWindowOfScreen(s: PScreen): Window =
+  s.root
+
+proc BlackPixelOfScreen(s: PScreen): culong =
+  s.black_pixel
+
+proc WhitePixelOfScreen(s: PScreen): culong =
+  s.white_pixel
+
+proc DefaultColormapOfScreen(s: PScreen): Colormap =
+  s.cmap
+
+proc DefaultDepthOfScreen(s: PScreen): cint =
+  s.root_depth
+
+proc DefaultGCOfScreen(s: PScreen): GC =
+  s.default_gc
+
+proc DefaultVisualOfScreen(s: PScreen): PVisual =
+  s.root_visual
+
+proc WidthOfScreen(s: PScreen): cint =
+  s.width
+
+proc HeightOfScreen(s: PScreen): cint =
+  s.height
+
+proc WidthMMOfScreen(s: PScreen): cint =
+  s.mwidth
+
+proc HeightMMOfScreen(s: PScreen): cint =
+  s.mheight
+
+proc PlanesOfScreen(s: PScreen): cint =
+  s.root_depth
+
+proc CellsOfScreen(s: PScreen): cint =
+  DefaultVisualOfScreen(s).map_entries
+
+proc MinCmapsOfScreen(s: PScreen): cint =
+  s.min_maps
+
+proc MaxCmapsOfScreen(s: PScreen): cint =
+  s.max_maps
+
+proc DoesSaveUnders(s: PScreen): XBool =
+  s.save_unders
+
+proc DoesBackingStore(s: PScreen): cint =
+  s.backing_store
+
+proc EventMaskOfScreen(s: PScreen): clong =
+  s.root_input_mask
+
+proc XAllocID(dpy: PDisplay): XID =
+  privDisp.resource_alloc(dpy)