[Xcb] [Awesome 3] Awesome port from Xlib to XCB
Arnaud Fontaine
arnaud at andesi.org
Wed Apr 9 07:55:24 PDT 2008
Hello,
Julien already made an short announce about the Awesome[0] roadmap[1],
so it's time for me to give some details about Awesome 3.0 and
especially about XCB. BTW, sorry for the delay about this announce, I
should have done it before but didn't have time before...
XCB is a client library to the X protocol aiming to replace Xlib. More
precisely it is a C binding for the X Window System, which provides the
following features compared to Xlib (only the ones related tightly to
Awesome are given here, for further details, please take a look at XCB
homepage[1]):
* modular architecture;
* direct access to the protocol;
* multithreading;
* asynchronous requests/replies;
I worked as my yearly school project on port of Awesome from Xlib to
XCB. At the moment, the port is considered stable but not in a
releasable shape yet because it needs to take fully-advantage of
asynchronous requests/replies and multithreading provided by XCB.
If you want to give a try at this port, you have to follow these steps:
1/ Get xcb main library and also Xinerama, Shape, Render and RandR.
2/ Build and install xcb-util:
You can't use the official xcb-util git repository as some patches
have unfortunately not been applied yet by XCB developers (I hope it
will be done soon though), so basically you have to do the following:
$ git clone git://git.naquadah.org/arnau/xcb-util.git
$ cd xcb-util && ./autogen.sh && make
# make install
3/ Build and install cairo with XCB support:
$ wget http://cairographics.org/snapshots/cairo-1.5.20.tar.gz
$ tar zxvf cairo-1.5.20.tar.gz && cd cairo-1.5.20
$ ./configure --enable-xcb && make
# make install
4/ Build and install awesome:
$ git clone git://git.naquadah.org/arnau/awesome.git
$ cd awesome && ./autogen.sh && ./configure && make
# make install
5/ Have fun with this new awesome Awesome and don't forget to report
bugs...
However, there is still one issue in current port: XKB
support. Actually, at the moment XKB extension is not ready yet for XCB,
so you can't use properly awesome-menu, and all modifiers don't work as
expected. I need to work on that...
I would like to particularly thank Julien Danjou, Vincent Torri and Josh
Triplett for their help.
Arnaud Fontaine
[0] http://awesome.naquadah.org
[1] http://lists.naquadah.org/awesome_naquadah.org/msg01520.html
[2] http://xcb.freedesktop.org/
More information about the Xcb
mailing list