WARNING: This code is old and most likely out of sync with current CVS.
I highly suggest you use Christian Neukirchen's portable cwm: https://github.com/chneukirchen/cwm.
OpenBSD's cwm is based on calmwm, itself originally based on evilwm. It is actively maintained by the OpenBSD community and is relatively clean and lightweight. Since it does not compile directly out of CVS, I provide a slightly tweaked tarball allowing you to do:
$ sudo apt-get install libxft-dev libxinerama-dev libxrandr-dev $ make $ sudo make install
2010-12-25: Update to latest CVS, converted to a full tarball to avoid a script to fall out of date.
2010-01-29: Update to latest cvs thanks to Christian Neukirchen.
2009-08-15: Initial patch.
Report the bugs regarding the compilation to me (email in the footer). Since other bugs could possibly be due to the crappy quality of this port, do not contact the OpenBSD community unless you have looked at the code and offer a fix tested to be working also on OpenBSD.
2009-11-15. With Xinerama enabled, switching between groups will show/hide the windows on ALL your screens. I am used to other window manager handling their virtual desktops on a per-screen basis, this patch is an attempt to replicate this behavior on OpenBSD <http://www.openbsd.org/>'s cwm.
UPDATE (2010-01-29): this patch is now obsolete, cwm as of 2009-12 is behaving like that by default.
2009-09-15. OpenBSD's cwm has a nice maximize mode where none of the chrome is left on the screen. One issue though, the borders of the maximized windows appear on adjacent screens in Xinerama mode. This patch hides the borders on maximized windows.
UPDATE (2009-09-25): This patch is included in OpenBSD 4.7.