Xcb mode for linux Xorg port?



Currently, it seems that Xlib is kind of deprecated in favor of XCB (which is automatically generated from the Xorg XML protocol file).
I’m doing some work involving low level X programming, and I was wondering if you intended to switch to the new format anytime like you did for core{graphic,audio} on Mac ?

The main advantages of XCB is lower latency (request & answer can be queued, and become asynchronous), good multithreading support (no more global XLockDisplay), smaller size & memory footprint, multi-touch support (no more work is done in XLib).
The main cons: Having to rewrite the calls from Xlib to Xcb.


I’d like to, though I’ve got very little experience of xcb so it’d be a bit of a learning curve. What’s the general availability of xcb these days? Is it there by default in most distros?


I can’t say for the pletora of linux distribution, but since Xorg 1.6 and later, it’s the library used to communicate with X server (in fact the entire Xlib is rewritten on top of xcb on Debian, Ubuntu, and Gentoo).
All new features will be in xcb only (multi-touch, advanced compositing, double buffering, protocol compression), and it seems most highlevel libraries are switching to xcb too (clutter, compiz for one).

The issue with X in general is the poor documentation for the API (Xlib is better than xcb because it’s older, you can find more sources).


Sounds interesting, I didn’t realise it was actually running below xlib these days. Thanks for the heads-up!