This documentation is still quite partial. I'm improving it gradually. liblx documentation is broken up into various categories. However, note that the documentation assumes familiarity with X concepts in general; while these files do contain some explanation of X things, they are primarily inteded to explain liblx, not X. liblx is based around callbacks. Most things which don't complete immediately deal with the delay by calling a callback on completion. The idea is that the application should never block inside the library. (This ideal is not quite achieved - in particular, when opening a connection, the library can block inside getaddrinfo() - but close.) X uses some words which have differing spellings in USA and British English. It usually uses the USA spelling (not surprising, since most of X's genesis was in the USA) - this is most visible in `colo(u)r' and related words (such as `colo(u)rmap'). I have not created aliases using the British spellings; I may do that at some point. Here's what the various files describe: abort.txt - handling can't-happen errors. batching.txt - collapsing back-to-back drawing operations. convenience.txt - various convenience routines. core.txt - calls for issuing core requests. errors.txt - error handling (both X errors and library errors). events.txt - event handling. extensions.txt - how extensions are dealt with. font-info.txt - font and character info and utility routines. gc.txt - graphics contexts and related facilities. geometry.txt - geometry string utilities. index.txt - this file. kbmap.txt - keyboard mapping utilities. lists.txt - lists of host entries, strings, and X IDs. local.txt - calls which never issue requests. pending-operations.txt - issued-but-incomplete operations. private-data - associating private data with connections. resource-db - resource database utilities. setup - setup and teardown of server connections. types - the various types used by the API. visual - how Visuals are handled.