Use XCB instead of XLIB
XCB is the modern library to use to communicate with the X server. It can combine multi api calls and talks the way X wants you to talk to it. However, this acts kinda like a network connection where you send the API requests then you have to receive the API requests.
This is just a thought. I may work on a port to XCB in the future when I get time to re-read the XCB documentation.
uTox depends on some Xlib functions that are not available using XCB directly, but from what I understand you can use both XCB and Xlib calls. I don't think it is necessary but feel free to replace Xlib functionality with equivalent XCB functionality when it is better.
@irungentoo do you know of any of the Xlib calls that don't exist in xcb?
There is little to no benefit to switching to xcb. Xlib is not a bottleneck, so it's not worth the effort.
Besides, Xlib is implemented using xcb internally