Two years ago I wrote Thoughts on window
management,
and in the meantime, I returned to using Linux
computers for a really significant part
of my digital life. Thus, it was time got pick a window manager
again. I think I then tried just about every significant one and lots
of unknown forks, experiments and abandoned ones.
Revisiting the ten points, I consider them still all to be valid
and applied them with minor tweaks in my current setup.

I now use the
cwm
window manager, an OpenBSD fork of
calmwm which runs with
a few small patches under any Unix.
(I wrote an Arch
PKGBUILD for it and
also keep a Git mirror.)
cwm is a small window manager without many frills or decoration other
than a simple border, but it has good and customizable keyboard
control, and features just what I need: cwm uses “focus follows mouse”
(the one true thing for X11 in my opinion) but does not use “click to
raise”. Thus your window setup only changes when you really need it,
and due to overlapping you can use your (always) limited screen space fully.
Each window can belong to one cwm group. I defined four groups:
terminals, editors, browsers, distraction (e.g. IM, Twitter). By
pressing the appropriate keybindings (Super-1 to Super-4), I can
quickly toggle display of these windows.
Windows stay at their fixed size and position, though it is easy to
maximize them full or vertically if I need it (most run vertically
maximized anyway as it’s only 768 pixels). cwm doesn’t save
positions, but many do it themselves or are started with appropriate
geometry. Thus, spatial memory can be used as applications don’t jump
around wildly.
Super-Button1 raises a window, while Super-Button3 lowers it. This is
incredibly useful for an operation I call “drill-down”. Just press
Super-Button3 a few times where you expect the window until you found
it. This and Meta-Tab to switch between the last focused window are
my main means of reaching lowered windows.
cwm itself doesn’t have a status bar, and only features a launch menu
I rarely use: I wrote a status bar using conky and a launcher with
dzen2. The status bar displays useful information on the top right
like the time, current networks and my IP address on them, audio
volume, CPU temperature, memory, CPU and battery usage as well as the
currently playing song. On the top left there’s my launcher, which
tries to switch to applications if they already run. I wrote a small script
featuring xdotool for this task. There’s also a small dzen in the top right
corner than locks my screen when I click on it.
This top bar is visible all the time, except for full-screen when
watching a movie.
The structure of my desktop continues inside the applications: Almost
everything uses tabs (Firefox, Pidgin, Emacs, URxvt with tmux), and I
configured all applications to use Meta-Left/Right for switching tabs.
Conformity really pays out here once you have the keybindings in
muscle memory. In general, I only have one window open of any kind
and use tabs to multiplex them. But when I really need to look at a
few things at once, I can just drag out the tab (or copy the tmux
session) into a new window. I rarely need other windows than these,
most things are done in the shell, Emacs or the browser.
NP: Gang of Four—Natural’s Not In It (Ladytron Remodel)