the current state

You may or may not have given much thought to the window manager you use every day on your *nix box, but it really defines how you interact with (and think about) your computer. Chances are you’re either running KDE or Gnome. Both are fine window managers, but they really go beyond that. They’re full desktop environments, giving you a desktop with a place for icons, menu bars on the top and/or bottom, and nice good-looking windows that you can drag around and minimize.

For many, this is fine. But try to notice how much time you’re spending just dragging windows around, minimizing and maximizing them just to get the most out of your screen. Most of the time you’ll open up an application and immediately have to resize and/or move it to a different part of the screen.

the alternative exists

If you’re comfortable using your computer, or would just like to try out something new, I’d like to suggest that you try a tiling window manager. Essentially, you let the window manager do what it should — manage your windows.

No menu bars, no window decorations, no windows. Yes, it does sound scary! But trust me, it’s a far better experience when all you want to do is actually use your computer. I guess a picture speaks for a thousand words, so here’s a screenshot:

Desktop screenshot of wmii with windows open.

Doesn’t look like much, does it now? Well, it’s not supposed to. The idea is that you divide your screen into frames, which can be further subdivided horizontally or vertially. The other main point is that windows cannot overlap. Just think about how many times you find yourself needing to focus to a window that’s partially hidden by your current window, usually just to see some small amount of text. Sure, alt-tabbing is pretty fast, but it’s annoying nonetheless. Not allowing windows to overlap will probably drastically change how you create windows and think about applications. You can’t resize applications, because they always take up the extents of the frame that they’re running in.

making the switch

The most compelling statement I’ve read about tiling window managers is written by Tuomo Valkonen, the creator of ion, the first of the tiling window managers. I quote (but you should definitely give the full article a good read on the ion homepage):

Those of us who prefer to use the computer primarily with the keyboard for reasons of efficiency or health, are forgotten when “modern” graphical programs are designed. Mouse-based search-and-click interfaces simply are not efficient except for some very specialised tasks and in other cases involve lots of tedious repetitive clicking and searching. While most widget-based GUIs provide keyboard shortcuts to some operations, these are often sub-optimal — for example, commands can often be superior to cryptic shortcuts — and the general application design still makes them difficult to use from the keyboard.

I’ve only recently begun to use a tiling window manager, and I’m finding it’s loads faster and more efficient than Gnome or KDE. A point to remember is that you’re not getting rid of the mouse — you’re just changing your way of interacting with the window manager. Instead of dragging windows around and minimizing them, you run apps in frames and divide up the screen. You’ll still use the mouse to interact with apps, and they still work like normal. The idea is that you’re more efficient with the keyboard, so why not use it more often?

How easy is it to switch? About one line, at least if you’re using Ubuntu or another Debian-based machine. I wouldn’t expect the build process to be overly difficult, however, and might actually give you better results if you like to tweak options. Most of the popular window managers are available via apt-get, and after installation the option to use your sparkling new window manager should be available on the login screen. Just set your session to whatever you want.

some tiling window managers I’ve found

This list is far from complete, but I’m pretty sure it has most of the major players:

  • ion3: The first of its kind, and definitely still popular. Likes to use the function keys for global commands. I’m not a fan of how you resize frames, but that’s probably just me.

  • wmii: My current weapon of choice. I haven’t quite grok’d it yet, but it seems very easy to use and forgiving.

  • dwm: Way small, and way fast. To change any configuration, you have to edit the source and recompile.

  • ratpoison: Old, but still popular and with a loyal following. Check out command line warriors and search for ratpoison. This kid likes to use it.

  • stumpwm:: The successor to ratpoison. Described as emacs-like, mainly because of the Lisp roots and the keyboard shortcuts.

Be sure to check some of these out! Install a few, play around with them, and remember that you can always switch back to Gnome or KDE with no hitch if it’s not your cup of tea.