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; 18 years ago (2004-07-10)
Stable release
3[1] Edit this on Wikidata / 28 August 2005
Written inC
Operating systemUnix-like
TypeWindow manager
LicenseISC License Edit this on Wikidata

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


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

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

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


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

cwm includes several menus:[11]

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

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

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


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

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

See also


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