cwm running on OpenBSD
Original author(s)Marius Aamodt Eriksen
Developer(s)Marius Aamodt Eriksen, Andy Adamson, Niels Provos, Martin Murray, Dimitris Economou, Antti Nykänen
Initial release10 July 2004; 17 years ago (2004-07-10)
Stable release7.0 (14 October 2021; 48 days ago (2021-10-14)) [±]
Written inC
Operating systemUnix-like
TypeWindow manager
LicenseISC License Edit this on Wikidata

cwm (Calm Window Manager)[1] is a stacking window manager for the X Window System. While it is primarily developed as a part of OpenBSD's base system,[2] portable versions are available on other Unix-like operating systems.


Development of cwm started from patches to evilwm by Marius Aamodt Eriksen.[3] To ease the implementation of new features, cwm was eventually rewritten using some code from 9wm.[4] The last release by the original author came out in August 2005.[3]

In April 2007, cwm was imported into OpenBSD source tree.[5] By January 2008, a substantial part of the original source code, including all of the 9wm code, was rewritten.[6]

cwm has been distributed with OpenBSD since version 4.2, where it replaced wm2.[7] A third-party Linux port also exists.[8]


cwm is a stacking window manager oriented towards heavy keyboard usage,[9][10] small footprint and ease of use. While it lacks explicit virtual desktops functionality, it can be emulated by using the window groups mechanism.[11] cwm does not draw window decorations except for a 1-pixel border around windows.

cwm includes several menus:[10]

All these menus operate in a "search as you type" manner.[10]

cwm allows raising, hiding, switching between, and searching for windows using just the keyboard, making it suitable to use as terminal emulator multiplexer.[12] Furthermore, it allows manipulating pointing devices, such as mice, with the keyboard.[1]

Additional key bindings and configuration options can be specified in the configuration file ~/.cwmrc.


cwm is generally well received in software minimalist communities.[10]

cwm is noted to be used mainly due to its status as one of the default window managers in OpenBSD,[13] though other reasons are sometimes cited.[14][15] cwm is also praised for its flexibility, ease of use, and the fact that it can be used without a mouse.[12][16]

See also


  1. ^ a b Czarkoff, Dmitrij D. (22 November 2011), "Introduction: calm window manager", OSNews, retrieved 23 November 2011
  2. ^ "The X Window System", OpenBSD Frequently Asked Questions, OpenBSD, retrieved 7 May 2016
  3. ^ a b Eriksen, Marius Aamodt, Old home page, archived from the original on 18 November 2011, retrieved 16 November 2011
  4. ^ "cwm — a lightweight and efficient window manager for X11", OpenBSD manual pages, The OpenBSD project, retrieved 16 November 2011, The from-scratch rewrite borrowed some code from 9wm, however that code has since been removed or rewritten.
  5. ^ "xenocara/app/cwm/calmwm.c", OpenBSD CVS, OpenBSD, 27 April 2007, retrieved 30 April 2017
  6. ^ OpenBSD CVS log, The OpenBSD CVS, retrieved 16 November 2011
  7. ^ "OpenBSD 4.2", OpenBSD, 1 November 2007, retrieved 30 April 2017
  8. ^ Neukirchen, Leah, portable version of OpenBSD's cwm(1) window manager, GitHub, retrieved 16 November 2011
  9. ^ Adriaanse, Jasper Lievisse (11 July 2007), cwm in Xenocara, OpenBSD Journal, retrieved 5 October 2011
  10. ^ a b c d O'Higgins, Niall (9 July 2007), Keyboard-only X, cwm hacks and Vimperator, retrieved 16 November 2011
  11. ^ Gouveia, Rodolfo (2 May 2009), Getting started with cwm, OpenBSD Journal, retrieved 5 October 2011
  12. ^ a b O'Higgins, Niall (19 June 2007), Typing, window managers and sore hands, retrieved 5 October 2011
  13. ^ Skinwalker (13 September 2011), OpenBSD – EEEPC, retrieved 16 November 2011
  14. ^ Mandla, K. (18 June 2010), Short and sweet: cwm, retrieved 16 November 2011
  15. ^ Pfennigs, Thilo (3 May 2008), Virtualized servers & OpenBSD, retrieved 16 November 2011
  16. ^ Lucas, Michael W. (31 May 2011), my .cwmrc, retrieved 16 November 2011