cwm (window manager)

From Wikipedia, the free encyclopedia
Jump to: navigation, search
cwm in action
OpenBSD desktop managed by cwm (taken with scrot)
Original author(s) Marius Aamodt Eriksen
Developer(s) Marius Aamodt Eriksen, Andy Adamson, Niels Provos, Martin Murray, Dimitris Economou, Antti Nyknen, Christian Neukirchen
Initial release 2004-07-10
Stable release within OpenBSD 5.5 / 2014-05-01
Development status Active
Written in C
Operating system Unix-like
Type Window manager
License ISC License

cwm (sometimes referred to as calmwm) is a stacking window manager for X Window System available on OpenBSD (included in base system),[1] NetBSD, DragonFlyBSD and Linux distributions using pkgsrc, Gentoo Linux and some other Linux distributions.

The acronym cwm stands for Calm Window Manager.[2]


Development of cwm started from patches to evilwm by Marius Aamodt Eriksen, but the evilwm's codebase "did not accomodate [sic] well for the new features added".[3] Some of 9wm code was used for rewrite.[4] The last release by the original author came out in August 2005.

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

Currently cwm is distributed with OpenBSD since release 4.2, where it replaced wm2.[6] Some Linux ports also exist.[7][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 doesn't draw window decorations except for 1 pixel border around the windows.

cwm includes several menus:[10]

  • exec menu (application launcher)
  • window menu (searching windows of running applications)
  • ssh to menu (start a Secure Shell session)
  • exec wm menu (switch window manager)

All these menus are operated in search as you type manner.[10]

cwm allows raising, hiding switching and searching windows with no use of mouse, making it suitable to use as terminal emulator multiplexer.[12] Furthermore, it allows manipulating pointing device with keyboard.[2]

The additional key bindings and configuration options can be specified in configuration file ~/.cwmrc.


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

Though not reviewed separately, cwm is noted to be used mainly due to its status of one of the default window managers in OpenBSD,[13] though other reasons are sometimes cited, such as being out of the ordinary[14] or allowing nice interaction with GUI.[15] Though it often gets no explanation, several OpenBSD users prefer to use cwm under Linux, even if it requires modifying and supporting source code.[8][16] cwm is also praised for its flexibility, ability to interact in a non-disruptive way and in having no dependency on using a mouse.[12][17]

External links[edit]


  1. ^ "The X Window System", Snappy Answers to Stupid Questions (OpenBSD), retrieved 2011-12-07  |chapter= ignored (help)
  2. ^ a b Czarkoff, Dmitrij D. (2011-11-22), "Introduction: calm window manager", OSNews, retrieved 2011-11-23 
  3. ^ Eriksen, Marius Aamodt, Old home page, retrieved 2011-11-16 
  4. ^ cwm(1) manual page, The OpenBSD project, retrieved 2011-11-16 
  5. ^ OpenBSD CVS log, The OpenBSD CVS, retrieved 2011-11-16 
  6. ^ Rosink, Japke, Software updates - OpenBSD 4.2, retrieved 2011-11-16 
  7. ^ Janin, Bertrand, various hacks for OpenBSD's cwm, retrieved 2011-11-16 
  8. ^ a b Neukirchen, Christian, one of cwm's repositories, GitHub, retrieved 2011-11-16 
  9. ^ Adriaanse, Jasper Lievisse (2007-07-11), cwm in Xenocara, OpenBSD Journal, retrieved 2011-10-05 
  10. ^ a b c d O'Higgins, Niall (2007-07-09), Keyboard-only X, cwm hacks and Vimperator, retrieved 2011-11-16 
  11. ^ Gouveia, Rodolfo (2009-05-02), Getting started with cwm, OpenBSD Journal, retrieved 2011-10-05 
  12. ^ a b O'Higgins, Niall (2007-06-19), Typing, window managers and sore hands, retrieved 2011-10-05 
  13. ^ Skinwalker (2011-09-13), OpenBSD – EEEPC, retrieved 2011-11-16 
  14. ^ Mandla, K. (2010-06-18), Showt and sweet: cwm, retrieved 2011-11-16 
  15. ^ Pfennigs, Thilo (2008-05-03), Virtualized servers & OpenBSD, retrieved 2011-11-16 
  16. ^ Toft, Martin, cwm, retrieved 2011-11-16 
  17. ^ Lucas, Michael W. (2011-05-31), my .cwmrc, retrieved 2011-11-16