Skip to content

Four tiling window managers: spectrwm, i3, dwm, xmonad

Revised 22 August 2017

For several months last year I was trying out various tiling window managers and here I offer my assessment of the ones I've used most. There's more about many of them, including configuration files, elsewhere in this blog (see the tags list).

My outright favourite is Spectrwm because I find that it offers all the features I want without making things over-complicated. Configuration via the text file is easy and the commands quickly become intuitive and automatic.

Dwm is almost as good as spectrwm but lacks some features that I want.

i3 seems to be a popular WM and is better known than Spectrwm, I like it quite a lot but I find Spectrwm more intuitive to use (perhaps because I'm more used to it). I prefer the master/stacking area arrangement of Spectrwm and Dwm to the "containers" used by i3. The i3 system does allow you to split new windows either horizontally or vertically in various ways, but in practice I never want to do this.

Xmonad is an attractive WM but is irretrievably let down by requring Haskell to configure it.

My final ranking:
(1)spectrwm => (2)dwm => (3)i3 => (4)xmonad


1. Spectrwm
This is currently my favourite. It used to be called scrotwm and this rather unfortunate and juvenile-sounding name put some people off. When I tried it some time ago it seemed a little buggy but that is much better now. Configuration by a plain text file is simple. I prefer the lack of window titles at the top and I find spectrwm more intuitive to use than i3. The default window layout is similar to those of dwm and xmonad; it is easy to change the arrangement. It is also easy to switch to a different workspace (desktop) with Mod+Arrow, which I particularly like. The bar at the bottom of the screen is toggled on and off with Mod+B, another good feature. I should say that spectrwm is the most flexible and intuitive WM that I've tried. Currently I'm using it as my default window manager. Download Spectrwm here (updated link).

Here are some screenshots. (Actually, I work fullscreen much of the time, with a browser on one workspace, mutt on another, and so on.)

A screen with three windows (left = master)—vertical split
Screenshot 1

Change master window (Mod + Return)

Screenshot 2

Enlarge master window (Mod + L)
Screenshot 3

Chang to horizontal split (Mod + Space)

Screenshot 4

Make a window fullscreen.(Mod + E)

Screenshot 5

Switch to Workspace 2 from Workspace 1 (Mod +2 or Mod + R. arrow)
Screenshot 6

Note: the xsane windows are floating (set via Quirk in ~/.spectrwm.conf).

2. Dwm
Dwm is the forerunner from which many other tiling WMs forked. There is still a lot going for it: it's simple and functional and easy to learn. Configuration is via C, but don't be put off; it's easier than it looks even if you don't know C (I don't). If you are not willing to embark on learning Haskell, dwm would be an attractive alternative.

3. I3
I liked i3 quite a lot and used it for a time. Configuration is simple since it is done in plain text. The default tiled layout has the windows arranged in columns across the screen which I don't much care for. But I mostly work in stacked mode, and i3 does well like this. The only problem is that if you have a number of windows open their titles list takes up a lot of space at the top of the screen in stacked mode. Admittedly you can fix this by going into full-screen mode, although you must exit that to switch to a different window. But while I liked i3, I found that everything I wanted to do with it could also be done in spectrwm and usually more easily and intuitively.

4. Xmonad
his has a large user base and a helpful mailing list. It has many of the features I want but is let down by its being written in Haskell, which makes any configuration beyond the most basic a major undertaking requiring hours of research on the internet. There is also a large overhead in terms of disk space required to house the libraries needed for said configuration. For these reasons Xmonad loses out to its competitors, at least for me.


No Trackbacks


Display comments as Linear | Threaded

Asem on :

Yeah, XMonad is really nice. Especially the total freeodm of configuration, the numerous layouts, the easy keyboard shortcuts I really think that tiling WM are the way to go, floating every windows just wastes so much time in reorganization and resizing. As to why this is still the predominant paradigm I would venture that tradition has much to do with it (going back to the first WMs by Xerox) and also the fact that most tiling WMs target a keyboard-using audience which is traditionally limited to advanced computer users.Getting to know a tiling WM is slightly more demanding than KDE, Metacity or Windows (though those now sports some shortcuts that beginners never know exist) but it's much more rewarding in the end and XMonad's stability and reactivity makes it one of the best choice in this field nowadays.My first contact with XMonad came after I grew tired with some bugs in Metacity (Gnome's WM) and I might say that I won't ever be coming back to Metacity since I can't see anything in it that XMonad don't do better already.

Greg Strockbine on :

Xmonad has another problem, it doesn't handle Java applications, like Netbeans and Eclipse.

the first time you launch, say Netbeans, you get a grayish blank window. The fix is to lie about the name of the window manager.

the second time you launch Netbeans, it looks okay. But when you try to type text into the search box of the find in projects dialog box, you discover you can't type anything. It doesn't have the focus.

I found several blog entries that claim to fix it, but I never got it to work.

I changed to spectrwm and Netbeans works fine without any tuning.

Xmonad was my first tiling WM. I had known about tiling WMs for a while, but never tried one, they didn't seem to make sense to me. Now I love them.

msx on :

spectrwm was my real first tiling WM, understanding for real the first one that took over my heart (thanks to E1NS for that!). Before it I played with lot of different WMs for some time like Musca (I loved it), Ratpoison, StumpWM, Awesome, wmi, Subtle... you name it; however those were just fleeting affairs.
Like you say spectrwm brings a sane configuration file which you can edit without learning a new programming language - nice to see some common sense.

However I eventually departed from it as I discovered I wanted still more control than any dynamic tiling WM could ever give me...
That's how I briefly tried Notion which I liked a lot but found somewhat outdated. Then I experienced this old-love revival with hlwm (herbstluftwm is THE minimalist manual tiling WM), Musca's sucesor.

But yet again after some months I hit some invisible walls so once again I took my gear and hit the road again. And I couldn't be any happier nor more grateful: i3

msx on :

Hum, no idea why the entry was chopped, anyways here's the mising part:
And I couldn't be any happier nor more grateful: i3

Add Comment

Enclosing asterisks marks text as bold (*word*), underscore are made via _word_.
E-Mail addresses will not be displayed and will only be used for E-Mail notifications.
How many legs do snakes have?
Form options