|This article relies on references to primary sources. (May 2008)|
|Developer(s)||David Hogan (dhog)|
9wm is an Open Source stacking window manager for X11, written by David Hogan (dhog) in 1994 to emulate the Plan 9 Second Edition window manager, 8½. Many later minimalist window managers for X were either inspired by, or directly derived from, 9wm.
The README file in the 9wm source distribution describes it like so:
9wm is an X window manager which attempts to emulate the Plan 9 window manager 8½ as far as possible within the constraints imposed by X. It provides a simple yet comfortable user interface, without garish decorations or title-bars. Or icons. And it's click-to-type. This will not appeal to everybody, but if you're not put off yet then read on. (And don't knock it until you've tried it).
9wm has an undocumented -nostalgia option, for a Blit cursor, which John Mackin insisted on.
- Written in C using the Xlib toolkit. No other dependencies.
- A right click on the root window gives a menu that provides window operations (Move, Resize, Delete, Hide), a list of hidden windows which may be unhidden by selecting from the menu, and a command to launch a terminal emulator, typically 9term. There are no keyboard controls.
- Window borders originally did nothing but indicate focus—draggable borders for move and resize were eventually added to rio in Plan 9 from Bell Labs and Plan 9 from User Space
- Has a limit of 32 hidden windows.
- New windows are drawn by prompting the user to "sweep out" a screen rectangle for the window, which may be considered focus stealing if an application unexpectedly requests a new window.
- A right click on the desktop gives a context menu that provides window motion and the facility to launch a terminal emulator.
- No menubar
- No titlebars
- No multiple desktops
- No maximize facility
- No desktop shortcuts
- No desktop wallpaper
- No theme support
- No XKeys support
- A three button mouse is required
- Uses a click to focus model
- No additional task switching facility
- Applications are launched via a terminal only
- Supports focus stealing by failing the launch test, giving focus to window placement facility
- Not accessibility friendly - utilizes middle click, and right click functionality and has no keyboard equivalents for some operations
Resizing windows 
Window geometry is described by "sweeping out" a rectangle on the screen. To sweep, click and hold the right button at one corner of the desired rectangle, move the mouse to the diagonally opposite corner, and release the button. Placing new windows and resizing existing windows are done by sweep operations.