August 7, 2008

Big Monitors, Window Management Frustration, and finding StumpWM

You may be like me, and have a large (20"+, or especially 30" in this case) monitor attached to your computer. You’re also a avid computer user and have more than one program open at a time which you want to view simultaneously. You also use the keyboard much more than the mouse (except when lazily surfing the web). How often have you noticed spending large amounts of time moving your windows around, resizing, moving, rearranging, and all the normal window management jazz? How often do you find yourself switching among windows with alt-tab, just to refer to some information which is currently obscured by the window you’re currently in?

If your answer is very often, then you may be a candidate for what is known as a Tiling window manager. I’ve been using both KDE and Gnome on Linux for many years, and also use the Redmond user-interface (aka Windows). I also own a Mac. The Macintosh (OS X) and Windows are similar models, and Gnome and KDE are even more similar to Windows.

Now, I am not saying that either interface is unusable, but it is an inefficient choice if you fall into the categories above. Granted, the classic window management paradigms are very familiar. I won’t say natural, since computers are really not natural, they’re a learned behavior. Computers only feel natural when they operate in a similar fashion to other computers you’ve used or seen in the past. The problem with this user interface paradigm is becoming apparent as screen sizes grow (and shrink!).

Your desktop is simply far too large to use properly in its overlapping window mode. Plus all the mouse work moves you away from your primary user interface device: the keyboard. Many program designers have noticed this. They’ve moved away from the nightmare of MDI (multiple overlapping windows inside of your overlapping window), and developed docking elements. The toolbar you can dock and move. The properties editor on the right. You can’t (generally) overlap the dockable elements. But in all cases, the elements are on the side or around your document or main view. Stuff stays put, is intelligently placed, and doesn’t get in your way constantly. Why can’t a window manager work the same way?

But it can! Enter the Tiling window manager. I like StumpWM, which is a tiling window manager modeled after ratpoison (and all other tiling managers before it). Its command set is a good mix of GNU Screen and emacs. Its also written in pure Common Lisp. There are other tiling managers out there, such as my second favorite, XMonad, which can even work flawlessly in Gnome and KDE (or mostly flawlessly anyway). XMonad has the advantage of automatic layout modes which StumpWM currently lacks. I didn’t particularly like Ion3 or WmII: the multi-monitor support is not as developed as StumpWM), plus Ion3 open-source development could be at risk. .

I’ve been using StumpWM for a couple of days. I am trying to quit Gnome cold-turkey, and so far have been successful. All of my applications work. The few gnome specific management applications I used I’ve managed to replace (such as NetworkManager for the laptop). My environment is lighter without the 50 background processes Gnome uses for automagic abilities (HAL, DBUS, etc). It doesn’t suffer the “users like simple, so lets not complicate stuff” philosophy Gnome uses in several places (an example: gnome-screensaver vs xscreensaver). Plus, I can use the keyboard almost exclusively, only touching the mouse to use certain applications.

All window operations are entirely keyboard driven. But if you’re not trying to quit Gnome completely, both window managers can show the normal Gnome panel for you. One thing you’ll have to scrap is the Desktop paradigm - you can put a picture on your root window, but the cluttered mass of icons isn’t available - you’ve put something far more useful there instead. Your applications.

It may seem scary at first, but I encourage you to try a tiling manager. Give yourself several hours of dedicated time. Will yourself not to switch back to the old familiar interface. Print out the quick reference or the whole manual, just in case you get lost in how to move around. Its well worth the effort.

© 2020 Yann Ramin