The Qtile Window Manager: A Python-Powered Tiling Experience
6 comments
·November 21, 2025slightwinder
icommentedtoday
Qtile Dev here (jwijenbergh) on GitHub. We just rewrote the Wayland backend in C and will do a new release hopefully this weekend. Feedback welcome!
stonecharioteer
OP here.thank you so much for your work on Qtile. It is so underrated, it is really really good and I absolutely love it.
zahlman
> Additionally, I disagreed with the default way of installing Qtile. As a principle, I never sudo pip install anything. Instead, I asked my friend Karthikeyan Singaravel, who is a Python core developer, and he recommended using the deadsnakes PPA for Ubuntu to install any version of Python that I chose. I tried compiling python 3.10 myself, installing to /opt/qtile/ using configure --prefix /opt/qtile/ during the configuration stage of the source code. However, I admit that using deadsnakes is a far better idea since I could create a virtual environment based on python3.10 into /opt/qtile/ instead. I had to change the owner of the folder to my user account. Note that I could store the virtual environment in my home folder and just use that, but I wanted to isolate this outside of my home folder.
Qtile doesn't appear to be tied to a specific Python version. Could you not have made a virtual environment based off the system Python? For that matter, could you not have made a virtual environment from a local compiled-from-source Python? (I do that all the time, because I'm interested in testing against specific Python versions and comparing their performance characteristics.)
> Then, I changed the owner of the folder to my regular user account.
> Then, it was time to install qtile.
> I created /usr/share/xsessions/qtile.desktop and filled it with the following:
Doesn't this require the environment to be owned by root? Doesn't it make more sense to leave things that are in /opt as root-owned anyway? (Or at least, change them back after running the installation as an unprivileged user.)
> After this, I logged out of my previous window manager and switched to the new entry for Qtile.
Will any random greeter program just naturally pick up the contents of /usr/share/xsessions, then?
> Qtile’s config file rests at ~/.config/qtile/config.py
So does it just ignore all your other dotfiles? Can I safely just try this out regardless of my usual WM/DE choices?
stonecharioteer
> Doesn't this require the environment to be owned by root? Doesn't it make more sense to leave things that are in /opt as root-owned anyway? (Or at least, change them back after running the installation as an unprivileged user.)
I changed the permissions so everyone can run the binary.
You _can_ use a venv. I prefer a dedicated environment for this. I've been using Mise-en-place lately, it's great.
> Will any random greeter program just naturally pick up the contents of /usr/share/xsessions, then?
Yep. Your login manager will pick it up.
> So does it just ignore all your other dotfiles? Can I safely just try this out regardless of my usual WM/DE choices?
Yeah, you can. It's self-contained. I even setup ansible-based dotfile installation in https://GitHub.com/stonecharioteer/distributed-dotfiles.
While qtile doesn't care about the python version, I do. I've grown wary of environment clobbering, it's an issue that Python has had, one that even Ruby does better than it, I've discovered. I like isolating these, helps debug a lot. Now I have added more shortcuts to my config using Rofi scripts, I can see the Qtile log, access, the dunst notification history and other stuff easily with rofi. Give Qtile a go if you've been looking for a Tiling Window Manager. It's married to the Qtile Bar, though, but the Bar can do almost everything.
stonecharioteer
I've been using Qtile for over 4 years now, and I absolutely love it. I'd written a while ago about my updated config, and thought I'd share.
How is the state of Wayland these days with QTile? I remember some years ago it was somewhat running, but stalling. Did it improve in the meanwhile?