Installing Qtile

Distro Guides

Below are the preferred installation methods for specific distros. If you are running something else, please see Installing From Source.

Installing From Source

Python interpreters

We aim to always support the last three versions of CPython, the reference Python interpreter. We usually support the latest stable version of PyPy as well. You can check the versions and interpreters we currently run our test suite against in our tox configuration file.

There are not many differences between versions aside from Python features you may or may not be able to use in your config. PyPy should be faster at runtime than any corresponding CPython version under most circumstances, especially for bits of Python code that are run many times. CPython should start up faster than PyPy and has better compatibility for external libraries.

Core Dependencies

Here are Qtile’s core runtime dependencies and where available the package name that provides them in Ubuntu. Note that Qtile can run with one of two backends – X11 and Wayland – so only the dependencies of one of these is required.

Dependency

Ubuntu Package

Needed for

CFFI

python3-cffi

Both backends, bars and popups

X server

xserver-xorg

X11 backend

xcffib

python3-xcffib

X11 backend

wlroots

libwlroots-dev

Wayland backend (see below)

pywlroots

Wayland backend

pywayland

Wayland backend

python-xkbcommon

Wayland backend

cairocffi

python3-cairocffi

Drawing on bars and popups (see below)

libpangocairo

libpangocairo-1.0-0

Writing on bars and popups

dbus-next

Sending notifications with dbus (optional)

cairocffi

Qtile uses cairocffi for drawing on status bars and popup windows. Under X11, cairocffi requires XCB support via xcffib, which you should be sure to have installed before installing cairocffi, otherwise the needed cairo-xcb bindings will not be built. Once you’ve got the dependencies installed, you can use the latest version on PyPI:

pip install --no-cache-dir cairocffi

Qtile

With the dependencies in place, you can now install qtile:

git clone git://github.com/qtile/qtile.git
cd qtile
pip install .

Stable versions of Qtile can be installed from PyPI:

pip install qtile

As long as the necessary libraries are in place, this can be done at any point, however, it is recommended that you first install xcffib to ensure the cairo-xcb bindings are built (X11 only) (see above).

Wayland

Qtile can be run as a Wayland compositor rather than an X11 window manager. For this, Qtile uses wlroots, a compositor library which is undergoing fast development. This means we can only support the latest release. Be aware that some distributions package outdated versions of wlroots. More up-to-date distributions such as Arch Linux may also package pywayland, pywlroots and python-xkbcommon.

With the Wayland dependencies in place, Qtile can be run either from a TTY, or within an existing X11 or Wayland session where it will run inside a nested window:

qtile start -b wayland

If you want your config file to work with different backends but want some options set differently per backend, something like this may be useful:

from libqtile import qtile

if qtile.core.name == "x11":
    term = "urxvt"
elif qtile.core.name == "wayland":
    term = "foot"