Qtile relies on some cutting-edge features in PyCairo, XCB, and xpyb. Until the latest versions of these projects make it into distros, it’s best to use recent checkouts from their repositories. You’ll need python’s setuptools installed. Here’s a brief step-by-step guide:
git clone git://anongit.freedesktop.org/git/xcb/libxcb cd libxcb ./autogen.sh make sudo make install
Either xpyb-ng or xpyb versions >= 1.3.1 should work. The xpyb build itself has historically had some package config issues, so we provide xpyb-ng for people who want to use setuptools. (The implementations are also slightly different, but users have reported that qtile is stable on either fork.) For users with a system version of xcb-proto < 1.7, xpyb will not build correctly (you get an AttributeError: 'ListType' object has no attribute 'parent'). However, xpyb-ng provides a branch called pre-1.7-xproto which has a hack to fix this issue.
git clone git://anongit.freedesktop.org/xcb/xpyb cd xpyb && ./autogen.sh ./configure make install
The latest cairo release works, but recompiling with xcb support is needed.
wget http://cairographics.org/releases/cairo-1.10.0.tar.gz tar xvzf cairo-1.10.0.tar.gz cd cairo-1.10.0 ./autogen.sh --enable-xcb make sudo make install
git clone git://git.cairographics.org/git/py2cairo cd py2cairo ./autogen.sh --enable-xcb
Check the configure output to make sure that XPYB is correctly detected.
make sudo make install
We also require a reasonably recent version of the Python GTK bindings, in particular, the pango module. You should just be able to install this using your chosen distribution’s package manager.
git clone git://github.com/qtile/qtile.git cd qtile sudo python setup.py install