I switched to QTile from I3
Author: -fab- <fab@redterminal.org>
License: CC BY-SA 4.0
Published on: Mon, 24 Jan 2022 12:20:24 +0100
Last updated: Mon, 24 Jan 2022 12:20:24 +0100
For about 4 years I was using the i3 window manager. I got late to the party of tiling window managers even though I was using Linux since '95 I think (with a period of a few years of running Windows until I had a standing internet connection around '08). I didn't know what I was missing!
I3 Window Manager
When I was first introduced to i3wm I was immediately convinced. It was so much easier to use a tiler than all those floating windows overlapping each other. I switched from a mainly mouse driven experience to a keyboard centric workflow. The workspace concept of tiling WMs was mind boggling. Before I3 I was used to have all my windows in one workspace. With I3 there is one workspace for every task (or group of tasks), easily switchable with a keyboard shortcut. And for around 4 years I was happy with I3 and never tried any other tiler.
But a while ago I got a little unsatisfied with the manual tiling approach of I3. I wanted to try a dynamic tiler. At first I wanted to add this feature to I3WM with a module named "i3-layout". But it always felt alien. A poor substitute. It also broke my window swallowing setup (which was also a poor substitute called "i3-swallow").
QTile
So I had to choose a new window manager. A lot of youtubers swear on DWM and its speed, but I'm not convinced. It would be difficult for me to hack on it in C. I'm sure I would be able to configure and compile it, but C makes me feel uncomfortable. I'm sure the suckless people and their followers would say that QTile is bloated. I like minimalism too, but getting from a full blown DE over I3 to QTile is enough. I don't need to exaggerate this only for bringing minimalism to the extreme.
I got stuck with QTile and its little conveniences. It's written and configured in python. Python is an easy and high level language and you get results fast. Although it's considered a slow language, I never noticed any performance degradation over I3.
Scratchpads, window swallowing and dynamic tiling work much better in Qtile (in my opinion) than in I3. Scratchpads are automatically restarted on next activation, if you've killed them before. Swallowing works as expected, it unswallows windows to the right position and is added with some simple hooks.
After some days of using QTile, I much prefer dynamic tiling over the manual tiling in I3. Why not earlier? No need to split containers or resize windows anymore. Simply switch the layout and all the windows are arranged automatically to your liking.
It's easy to write new status bar widgets and you can even implement new layouts in python. In fact, that Qtile is written in python was the big selling point to me. I really like python and it's easy to get into it again after some time.
Conclusion
I think I3WM is well suited for first time users of tiling window managers. But using a dynamic tiler over a manual one seems to me like the next iteration of progress. QTile is therefore suitable for users, who learned or are learning python as their first programming language. And I think QTile shows that python is not just a simple toy language.
I can recommend QTile to all people who want to try a dynamic tiler for the first time.
--
Back to index
Homepage