Wednesday, May 30, 2012

Alternative Window Managers


For sometime I have been using Ubuntu, and been very happy with it. More recently I have started to be less satisfied. Not sure why. Since upgrading to 12.04 things have not been so good. It is probably about time that the machine was installed fresh as that last happened at 10.04.

Before doing something that drastic, I decided to have a look at some alternative Window Managers. This is what I found.

Unity is where I was starting from. When logging in, I found that it would take a long time to get to a working desktop. Why? What is it doing? All I want is a window manager and to be able to start some applications. I don't think I really understand why a window manager needs a 3D graphics card. Anyhow, that was my starting point.

In the past, I have used Gnome Panel. This is another great piece of work. But not sure it is what I want, so we won't go there again for a bit.


Reading some notes on the web, I saw a mention of Xmonad. A quick Google, and that looked interesting. So I installed it. A tiling Window Manager. This must be the first time I have come across one of these. Being able to have the windows organised for me was great. I like to have my applications running full screen, or tile them so that I can see them all. Having windows overlap is irritating. So to find a Window Manager that does that for me was great.

The problem came with the configuration. It is all done in Haskell. Not being much of a programmer, and having no experience of using Haskell, that was a pain. I did manage to follow a step-by-step guide, but fell over when I wanted to deviate and add my own customisations.

That lead me think that there must be other similar Window Managers available. Back to Google, and I found a table comparing alternative Tiling Window Managers on the Arch Linux website.

Looking at this list, and a few pointers from elsewhere on the web, I decided to try Qtile. This is supposed to be written all in Python. It should also be easy to configure as the configuration is a Python script. At least I could read an existing configuration and make enough sense from it to be able to tweak it for me.

This looked really nice.

Then it fell apart. The problems I had were:-

  • Dialogue boxes would be full screen.
  • It crashed easily
  • Flash would not work full screen.
  • A Java app I use was horrible.
While playing with this I did learn that the main players in the Tiled Window Manger world are Xmonad and Awesome. I had already tried Xmonad, so next up was Awesome.

This is written in C but the configuration is by Lua scripts. Not sure that I have come across this language before, but unlike Haskel, I could grasp what the config file was doing so managed to make some simple modifications. That is all I wanted to do.

So far, Awesome has been that. It is still early days, and I need to get a bit more settled with the keyboard short cuts. It seems stable. Programs by default behave in a sensible manner. Dialogue boxes float, and main windows get tiled. In the Ubuntu package, there are three themes provided. I could do with tweaking these a bit, but they will do for now.

One real advantage is there is a menu. It can be helpful to be able select a program from a list on occasion.

So, in conclusion, Unity is good, but there may well be something out there that fits my way of using a computer a bit better. If it is also light weight, that is a bonus too.