I tried KDE and hated it. I tried Gnome and barely tolerated it. When I accidentally clobbered the expat library with a newer version (I had used FreeBSD’s pkg_add to install a newer version of Apache, I think, and pkg_add blindly clobbered the existing expat), Gnome stopped working. Entirely. I was up in the mountains with no access to the Net, so I made do...

I set up twm.

Now, you might laugh and scoff and grimace and say “Ewwww!”, but twm has at least one redeeming feature: it is a part of X, and is always there. If you have a workable twm setup, you need never fear the barrenness of a new OS installation. And, actually, twm is quite usable. “Out of the box” it is a joke, but it is very configurable, and within an hour or so I had a nice background color, a simple root menu, and root window “hotkeys” to start up the applications I always use.

This is my root menu:

  menu "root"
  {
  "windows"       f.menu "TwmWindows"
  "terminal"      f.exec "exec rxvt &"
  "wide terminal" f.exec "exec rxvt -geometry 160x55 &"
  "emacs"         f.exec "exec emacs &"
  "bowser"        f.exec "exec mozilla/mozilla &"
  "acrobat"       f.exec "exec acroread &"
  "restart"       f.restart
  "quit"          f.quit
  }

Pretty darn simple. And I have hotkeys for the same set of apps:

  # t = term
  "t" = control : root : f.exec "exec rxvt &"
  # w = wide term
  "w" = control : root : f.exec "exec rxvt -geometry 160x55 &"
  # b = bowser
  "b" = control : root : f.exec "exec mozilla/mozilla &"
  # e = emacs/editor
  "e" = control : root : f.exec "exec emacs &"
  # a = acrobat reader
  "a" = control : root : f.exec "exec acroread &"
  # r = restart
  "r" = control : root : f.restart
  # q = quit
  "q" = control : root : f.quit

Once configured reasonably, twm isn’t that bad, but it does have its weaknesses:

This last lack forced me to constantly click thru piles of windows. But it was still usable.


XFCE

Last night (2005 February 13) I decided to make a change. I would install XFCE, which I tried to install (from FreeBSD’s ports tree) last November, but failed because some of the libraries built were the wrong version. This time I installed binary packages instead, and after removing some of the cruft from that earlier failure, succeeded in installing XFCE.

XFCE is much faster to start than KDE or Gnome, but after using it for about five seconds I realized that on the small screen on my laptop I can’t give up space for panels and taskbars. Even the window title “decorations” that twm insists on take up useful space. (Without title bars my xterms can be 58 rows high; with title bars, only 55.)

For someone who wants a “desktop”, though, XFCE seems like a good choice, much lighter weight than Gnome, but compatible with all the Gnome applications.


Truly minimal window managers

So, I uninstalled XFCE and thought, “What next?”

A few months ago I compiled a list of “minimal” window managers (WMs) that I wanted to try out: aewm, evilwm, larswm, ion, ratpoison. So, I installed them all and tried them out. The short answer: none of them does what I want! evilwm and ratpoison come closest (I’m actually running evilwm right now), but both have behaviors that I consider to be Severely Broken.

Before I say anything more I should clarify what my desiderata in a WM are. I want to be able to:

I’m open to tiling window managers (as ion, ratpoison, and larswm claim to be). I really liked the design of the Oberon system’s “track” tiling display.

Amazingly, I couldn’t make any of the WMs I tried do what I wanted. And the ones I didn’t try were all about theming, window decorations, Gnome compliance, and things like that – making me think that they’re not worth even trying out.

This is all, in some sense, hilariously funny because there are no fewer than 136 WMs in the FreeBSD ports tree, and not one of them even gets close to what I want! That’s just bizarre. Am I that strange? The minimal ones are either too minimal and rely on the mouse (aewm – the binary on x86 is 19k!) or very keyboard-centric but so quirky as to be unusable (ratpoison). evilwm keeps getting the focus wrong – both when switching workspaces and when opening and closing windows.

It’s looking like I might have to be the next person to take the 9wm or aewm sources and roll my own...