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.

Ekiga finally working

I’ve been trying to make ekiga work on my laptop, using pulseaudio and the internal mics for months without success. Today, while procrastinating after lunch, I finally make it work.

My laptop is a Thinkpad T61, and my first problem was that I couldn’t make ekiga recognize any input from my internal mics, but I found this page with a step-by-step process on how to make it work:

1. do 'alsamixer -Va' and set the microphone to capture and unmute it.
2. get out of there, then go ahead and do 'alsamixer -c 0 -V capture'
3. make sure it's set to record from internal, make sure that both channels from mic are set to capture
4. press space bar on the capture to enable capturing
5. now test if it works by recording your voice by 'arecord test.wav' --speak-- Ctrl-C, then play it with 'aplay test.wav'

On the original post the record was set to mic but I set it to internal. To get ekiga to recognize the input I changed all the devices from default to Intel HDA.

If you don’t know why ekiga is great, read this blog post, in a nutshell ekiga gives you a communication based on open standards, different options on VoIP providers, and a regular phone number for free :)

Hope this helps somebody with a similar problem.