I'm trying to install Qtile on a fresh install of Ubuntu 20.04. According to the Qtile installation documentation, Qtile is no longer supported by apt, and an installation from source is advised. Instructions are provided here.

When I follow those instructions to the letter, I get an error that the command errored out with the following message:

ERROR: Command errored out with exit status 1:
     command: /home/yehuda/anaconda3/bin/python -u -c 'import sys, setuptools, tokenize; sys.argv[0] = '"'"'/tmp/pip-install-kvdwotq7/qtile_78329e7437d44395920938573a2554c8/setup.py'"'"'; __file__='"'"'/tmp/pip-install-kvdwotq7/qtile_78329e7437d44395920938573a2554c8/setup.py'"'"';f=getattr(tokenize, '"'"'open'"'"', open)(__file__);code=f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))' install --record /tmp/pip-record-ja04qda9/install-record.txt --single-version-externally-managed --compile --install-headers /home/yehuda/anaconda3/include/python3.8/qtile
         cwd: /tmp/pip-install-kvdwotq7/qtile_78329e7437d44395920938573a2554c8/
    Complete output (21 lines):
    Failed to find pulseaudio headers. PulseVolume widget will be unavailable
    running install
    Traceback (most recent call last):
      File "<string>", line 1, in <module>
      File "/tmp/pip-install-kvdwotq7/qtile_78329e7437d44395920938573a2554c8/setup.py", line 91, in <module>
      File "/home/yehuda/anaconda3/lib/python3.8/site-packages/setuptools/__init__.py", line 153, in setup
        return distutils.core.setup(**attrs)
      File "/home/yehuda/anaconda3/lib/python3.8/distutils/core.py", line 148, in setup
      File "/home/yehuda/anaconda3/lib/python3.8/distutils/dist.py", line 966, in run_commands
      File "/home/yehuda/anaconda3/lib/python3.8/distutils/dist.py", line 984, in run_command
      File "/home/yehuda/anaconda3/lib/python3.8/distutils/cmd.py", line 107, in ensure_finalized
      File "/tmp/pip-install-kvdwotq7/qtile_78329e7437d44395920938573a2554c8/setup.py", line 46, in finalize_options
        if not self.cairo_xcb_check():
      File "/tmp/pip-install-kvdwotq7/qtile_78329e7437d44395920938573a2554c8/setup.py", line 40, in cairo_xcb_check
    ffi.error: symbol 'cairo_xcb_surface_create' not found in library 'libcairo.so.2': /home/yehuda/anaconda3/lib/python3.8/site-packages/../../libcairo.so.2: undefined symbol: cairo_xcb_surface_create
ERROR: Command errored out with exit status 1: /home/yehuda/anaconda3/bin/python -u -c 'import sys, setuptools, tokenize; sys.argv[0] = '"'"'/tmp/pip-install-kvdwotq7/qtile_78329e7437d44395920938573a2554c8/setup.py'"'"'; __file__='"'"'/tmp/pip-install-kvdwotq7/qtile_78329e7437d44395920938573a2554c8/setup.py'"'"';f=getattr(tokenize, '"'"'open'"'"', open)(__file__);code=f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))' install --record /tmp/pip-record-ja04qda9/install-record.txt --single-version-externally-managed --compile --install-headers /home/yehuda/anaconda3/include/python3.8/qtile Check the logs for full command output.

What is happening, and how can I properly install Qtile on a Debian-Ubuntu system?

  • What is the method that you are using to perform the install? Commented Mar 18, 2021 at 23:06
  • looks like your cairo may have been built without xcb support, which is odd because the official package has xcb as a dependency. so unless you've built your own cairo at some point this explanation feels unlikely
    – Fox
    Commented Mar 18, 2021 at 23:59
  • I'm also having this problem, please share a solution if you ever find one op Commented Mar 31, 2021 at 22:19
  • @NasirRiley I’m following the commands in the link I posted in the CLI.
    – Yehuda
    Commented Apr 2, 2021 at 21:22

2 Answers 2


I just ran into the same issue on Ubuntu 20.04. I solved the problem by installing python3 and pip3 as system packages, before that I had only used anaconda and had it's base environment sourced in my .bashrc. I successfully installed qtile doing the following:

sudo apt install python3 python3-distutils
curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py
python3 get-pip.py  # I got a warning that /home/$USER/.local/bin wasn't on path so I added that in my .bashrc
pip3 install xcffib
pip3 install --no-cache-dir cairocffi
pip3 install dbus-next
pip3 install qtile

That worked for me. Don't forget to source your .bashrc after changing it!


I was having the same issue but after a bit finding I got it working

sudo apt install pip
pip install xcffib
pip install qtile
sudo cd /usr/share/xsessions/
sudo touch qtile.desktop
sudo echo "[Desktop Entry]
Comment=Qtile Session
Exec=qtile start
Keywords=wm;tiling" >> qtile.desktop

Also add the following to the start of ~/.bashrc :


Just copy and paste the above commands into your terminal, and it will take care of the installation process for you. If you also want to use my Qtile configuration, you can find it here.

I hope this helps others who might face similar issues with Qtile installation on Linux Mint!

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .