xobl icon indicating copy to clipboard operation
xobl copied to clipboard

[WIP] Pure OCaml bindings to the X11 protocol

xobl

The X11 OCaml Bindings Library. A Pure OCaml implementation of the X11 protocol.

TODO

  • Tweaks to HIR
    • [ ] GetProperty reply: remove value_len. It's left in because the length field is calculated using both value_len and format.
    • [ ] prune unused enums and masks after converting them to variants and optional fields.
    • [ ] fix QueryTextExtents
      • there is a field that depends on the length of the whole request(!) so we should probably handle it.
  • Bindings
    • [ ] come up with a better API for sending multiple requests at once.
      • how do we encode stuff which needs a reply?
    • [ ] events/variant structs/errors that are only made of one field should be converted to that one field.
      • notify_variant
  • OCaml backend
    • [ ] encode/decode events and errors.
    • [ ] change handling of flags?

Documentation

  • https://www.x.org/releases/X11R7.7/doc/
  • https://www.x.org/wiki/Development/
  • Many of the reasons behind decisions in the XCB protocol spec were documented in the commit messages on https://cgit.freedesktop.org/xcb/proto/log/

Other implementations generated from the spec

Xlib implementations (not generated) of note

Further reading/watching