The Calm Window Manager (cwm) - a quick start guide

in #technology2 years ago (edited)

While the Motif Window Manager (mwm) has become my mainstay when it comes to striking a balance between simplicity and ease-of-use (think twm, but with easier window handling), there's a part of me that needs to go totally Spartan every now and then. Given that the Ultrix Window Manager (uwm) is now largely unavailable outside of NetBSD or its pgksrc system, the prize would go to the Calm Window Manager (cwm) - besides, it one-ups uwm by dispensing with the right-click dropdown menu on the root window. (It takes a very special window manager to make uwm look extravagant.)

If you're an OpenBSD user like me, then cwm comes out of the box, and is maintained by the OpenBSD project itself. If you've never used it before, here's what you should know ahead of time, in order of priority:

  1. You spawn a new terminal window by pressing Ctrl-Alt-Enter. (The manual page represents Alt as M, as in "Meta".) Also, as reader Matthew Graybosch pointed out in response to the initial published draft of this post, "If a user wants to run something else, they should press ALT+?. A list of available apps will appear, and cwm will narrow it down as they type the name of the app they want." (Matthew: Thanks for the assist on that one as well as for pointing out the needed clarification regarding Ctrl-Alt-Enter.)
  2. Window handling (i.e. moving, resizing, minimizing, etc.) is a two-handed affair, often involving combinations of keyboard keys and multiple mouse keys. (I've seen this referenced in the Plan 9 from Bell Labs world as "mouse-chording".) See the screenshot of the manual page below for the nitty gritty.
  3. When a window is minimized in cwm, it doesn't turn into a desktop icon. Rather, it simply disappears. (There is a mouse-keyboard combo that allows you to see a dropdown menu of all minimized windows.)
  4. To exit cwm, you can either press Ctrl-Alt-Shift-q if that doesn't feel too awkward for your left hand, or you can always obtain the process number ($ ps | grep cwm) and then stick a knife in your session ($ kill process number).


This blazingly simple window manager is a wonder to behold, and is at least fun to think about if initially frustrating or non-intuitive to use. However, if you stick with it until the point of internalizing the basics and leave yourself open to learning the more exotic functions, you may start to feel like a wizard or, even better, you may find yourself forgetting that there's any sort of abstraction between you and your work. (I'm still working towards attaining a certain level of cwm wizardry, though I can handle the basics quite easily. Having said that, after having spent any sort of time away from cwm, I always need at least a few minutes to become acclimatized to its ways all over again.)

I consider cwm to be akin to UNIX in general on two fronts, one being that it doesn't adjust to you but vice versa, and the other being that it's hard to learn but easy to use.