some thoughts on tiling window managers

So I've been using tiling window managers for the past ~4 years and really like them but hate how the community treats them. The primary assertion is that they make you more productive because you aren't switching between your keyboard and mouse constantly. The thing is, at least with me, I still am using the mouse fairly regularly, even just for changing the focused window. I know! sacrilege! A series of videos by Wolfgang's Channel, "Tiling Window Managers suck. Here's why" and "We need to talk about GNOME", kinda made me realize the time saved argument is a bunch of bologna, and that floating DEs/WMs aren't the great Satan they're made out to be. I had to use gnome for about a week when I was using Syd's computer and its really quite good after you add a few extensions, but it made me realize why I love WMs.

What really makes stand alone window managers so great is the customizability. Not just tweaking the window borders, but writing scripts for your info bar or adding special window rules. Additionally with tools like dmenu/rofi you can end up building some very powerful tools that seamlessly integrate with the rest of your system. And specifically with tilers, terminal applications become a first class citizen of the desktop. When I used xfce, I never understood why people liked terminal apps (besides package managers) since they always were so clunky, being crammed into a tiny floating window. With tilers, since windows are maximized, terminal apps get to thrive in the wide windows of text. In fact most of the time they scale better than their gui counterparts.

Tiling window managers I've used:

As you can see from the list the vast majority of the ones I've tried are dynamic tilers and that's the paradigm WMs ought to follow if you ask me. Most of these were just fine but had a couple issues that caused me to switch.

dwm

dwm is the best dynamic tiling window manager. I have switched away from it and back to it a number of times (currently away), but the overall experience, speed, and simplicity are unrivaled. However that doesn't mean it doesn't have faults. The built in bar is bad, a WM should manage windows, not handle an info bar. Each monitor has it's own tags as opposed to having shared workspaces that monitors display, which is my preferred way of handling workspaces. Oh right and its a suckless tool :/ meaning its configured in raw C code with a config header file. This also means it has barely any features out of the box and you have to patch them in! :') This is the greatest weakness of dwm, unless you write a patch management system like HexDSL did, your config is bound to break and so updating means rewriting your config each time. I only ever had 4 or 5 patches installed at a time so it wasn't that bad but it is an awful way to add functionality to a program.

Qtile

Qtile is good, but has a major downfall built into it: it was written in python. I'm no python hater, in fact it's probably my favorite language, but it's undeniable that compiled languages are faster and python is not compiled. Most of the time this doesn't matter, but the minor lag is felt when using Qtile. Also a lack of major community support makes it a little frustrating to use. Also it has a built in bar (bad)

HerbstluftWM

This window manager is what I've been looking for. Now you might be thinking, "sud0nim, You said you like dynamic tilers but HLWM is manual!". That's where HLWM shines, it actually does very little window management but gives access to pretty much everything through herbstclient. You can write your own tiling script which allows you to add every little weird thing you want. For instance I don't have MPV count as a window to be tiled, so that way it ends up being placed on top of whatever window that called it! This is amazing! And in the most recent version they added tabs! TABBED WINDOWS! The best feature of i3 now in an actually good WM! Ok I got myself worked up a bit there. I just really love tabbed windows. Oh and did I mention the config file is a bash script! So cool!

Email me

sudon1m@pm.me