StumpWM: my new Window Manager

I used Awesome as my window manager for over two years and I really like it. It was my first “tiling” WM (although it’s described as a tiling wm, but more of a floating-tiling mix, see its features and non-features). Besides that, it was really configurable, and I mean it. Your configuration file (.config/rc.lua) may seem like half of the implementation of the WM, because there is defined which layouts are supported, how many tags to use, how to name them, the default keybindings, the mouse actions, etc. (here is mine). Probably, as with many WM, Awesome is too spartan for Gnome/KDE users. But again, it is for people that like minimalism. If you want to give it a try, do it, and do it for a week at least. It’s nice.

If it is soooo good, why did I change it? well, I had some stability issues with it for a while (which ended been problems with Xorg, so it’s not their fault). Also, there are two features I don’t like. First, while bringing lots of flexibility, the config file is usually “cluttered” with code you don’t want to see. As I said, it seems like half of the WM is written in the config file, so you have tons of code defining the default WM behaviour and, after a while, you stop feeling like you are configuring the WM and start feeling that you are patching it. Every new release was an exercise of retrofitting your changes to the new default config file, otherwise you may lose some of the new features bring by the update. Awful. Second, lua. The config file and other parts of the WM are written in lua, which is not part of my personal preferences. I may be biased by my lack of knowledge about programming in lua, or maybe not, even Julien Danjou, the original author of Awesome, has ranted about it.

So, one day I decided to try other tiling WM. I installed stumpwm, i3, ratpoison, and xmonad. I never got pass the first one.

StumpWM is not the most stable WM out there, nor the most lightweight (it requires a CL interpreter), and it has neither a large nor extremely active community (its latest stable release is from March 2010, but the repository is active so you get your code from there). Now, to the good stuff.

StumpWM is tiling, but has some support for floating “groups” (desktops). AFAIK, it doesn’t have the advance automatic tiling layouts of Awesome, so its window placement capabilities are more closely related to GNU Screen or Emacs Frames, but given that I usually have a single app in full-screen mode it doesn’t matter. What really make StumpWM shine is that it’s written in Common-Lisp. It’s at least as configurable as awesome while keeping your configuration file clean. Being Common-lisp, you can write a new function and it will override the previous one (not as powerful as advices in emacs, but close enough). If you don’t know lisp, learning it is very easy. Once you passed the feeling of “why there are so many parenthesis?” and get use to the prefix (+ 3 2) syntax, you will see it’s pure genius.

If you want to give it a try, the best way to do it is following the ArchLinux wiki. Also, take a look at the awesome Stumpwm experience video.


5 thoughts on “StumpWM: my new Window Manager

  1. I’ve tried i3 and awesome. Awesome is real ‘awesome’. I want to try stumpwm after sometime. Nice article

Comments are closed.