Scroll to navigation

wm2(1) General Commands Manual wm2(1)


wm2 - Small, non-configurable Window Manager for X




wm2 is a window manager for X. It provides an unusual style of window decoration and as little functionality as I feel comfortable with in a window manager. wm2 is not configurable, except by editing the source and recompiling the code, and is really intended for people who don't particularly want their window manager to be too friendly.

wm2 provides:

Decorative frames for your windows.
The ability to move, resize, hide and restore windows
No icons.
No configurable root menus, buttons or mouse or keyboard bindings.
No virtual desktop, toolbars or integrated applications.


To run wm2, make sure you're not already running a window manager, make sure the DISPLAY variable is correctly set, and then execute the file "wm2". There are no command-line options or X resources, and there is no start-up file. If your X server doesn't support the Shape extension, wm2 will exit (and will never work on your server); if it can't find the required fonts or allocate the required colours, it will also exit (but you should be able to fix this by changing the definitions in Config.h and recompiling).

Available window manipulations are:

To focus a window: Move your mouse in the window. If you want a different focusing policy, you'll have to recompile wm2 (see the README for info).
To raise a window: click on its tab or frame, unless you have auto-raise on focus set in Config.h.
To move a window: make sure it's in focus, then click and drag on its tab.
To hide a window: make sure it's in focus, then click on the button at the top of its tab.
To recover a hidden window: click left button on the root window for the root menu, and choose the window you want.
To start a new xterm: use the first item on root menu ("New").
To delete a window: make sure it's in focus, click on the button on the tab, hold the mouse button for at least a second and a half until the cursor changes to a cross, then release. (I know, it's not very easy. On the other hand, things like Windows-95 tend to obscure the fact that most windows already have a perfectly good Close option.)
To resize a window: make sure it's in focus, then click and drag on its bottom-right corner. For a constrained resize, click and drag on the bottom-left or top-right corner of the enclosing window frame.
To lower a window: click with the right mouse button on its tab or frame. (This was the only new feature in the second release.)
To exit from wm2: move the mouse pointer to the very edge of the screen at the extreme lower-right corner, and click left button on the root window for the root menu. The menu should have an extra option labelled "Exit wm2"; select this. (This is a new feature in the third release.)

All move and resize operations are opaque.

Focus policy. This is a compile-time option. To rebuild, see the README in /usr/share/doc/wm2/README.gz


wm2 was written by Chris Cannam, recycling a lot of code and structure from "9wm" by David Hogan (see ). 9wm is written in C, so very little of the code is used verbatim, but the intention was to reuse and a lot of the resulting code is recognisable. (Also 9wm's minimalism was rather inspiring.) I've made enough changes to make it very probable that any bugs you find will be my fault rather than David's.

wm2 also uses version 2.0 of Alan Richardson's "xvertext" font-rotation routines.

The sideways tabs on the window frames were Andy Green's idea.

If you want to hack the code into something else for your own amusement, please go ahead. Feel free to modify and redistribute, as long as you retain the original copyrights as appropriate.


Chris Cannam,


The principal bug is that wm2 now has too many features. That aside, if you find a bug, please report it to me (preferably with a fix).