Basic Usage

Button Bindings

Button Bindings
Action Frame Root
Button 1 raise/resize window shell command menu
Ctrl-Button 1 lower window shell command menu
Button 2 drag window workspace menu
Ctrl-Button 2 change window workspace, do not follow advance by one workspace
Ctrl-Shift-Button 2 change window's workspace, and follow advance by one workspace
Button 3 hide window menu of hidden windows
Ctrl-Button 3 outside the deadly box, window operations.
in the deadly box, kill the window.
window manager operations


In the default color scheme, there is a little red hollow square in the top left of each window. To kill a window, you can Ctrl-Button 3 in the square (which will turn solid red to indicate that it is armed), then release in the red square. Moving off and releasing elsewhere will not kill the window. This was done because most window managers place the "kill" button right next to the resizing buttons, and the new arrangement minimizes the chance of accidentally killing a critical window.

To set the configuration options, make a ~/.miwm/miwm.config file. An example one is included in the distribution tarball. Anything not set here will be set from the built-in defaults in miconfig.h. An example configuration file looks like this:

workspace_names=Office Devel-A Devel-B Mail WWW Admin

The color and font options are obvious. The complete font specification is not mandatory; any valid font specification will do (like "8x13" or "system" or such). The meanings of the other options are as follows.

There are also command-line options that can be used to invoke all the above options, and some extra ones oriented toward debugging and development (like "--memcheck 2"). These will be documented later, but you can find them via grep "miwm::config().get" *.cc.

The User Menu

To set the shell command menu, make a ~/.miwm/miwm.usermenu file. An example one is included in the distribution tarball. It is very helpful to include some critical commands like xterm &. As miwm does not come with any pre-existing menus, the shell command menu is your only way to launch programs, and xterm is a very convenient one to have. Of course, you can launch any of the major applications, like mozilla, evolution, open office, etc.

The syntax is that a keyword is on the left, then an = character, then the text of the shell command. Blank lines are ignored, and there must be a final blank line. The following example miwm.usermenu file can launch an xterm, launch mozilla, launch a button shell. of commands from tools.bsrc, lock the screen, kill windows, and launch emacs to edit itself. The trailing & is not strictly necessary for on-going processes. miwm won't hang up and wait for the shell command to finish (e.g. by you killing that process, so that miwm can continue).

xterm = xterm & mozilla = mozilla & tools = bs $HOME/tools.bsrc -title Tools & lock = xscreensaver-command -lock
xkill = xkill & usermenu = emacs ~/.miwm/miwm.usermenu & 

Changes to your miwm.usermenu file take effect immediately. No need to reboot before changes take effect.


Window operations are:

Window manager operations are:

Terminating miwm will contract the workspaces right before shut-down, but it should not kill all your programs, end your X session, or crash your machine. This is a safety feature which some large commercial windows managers would do well to emulate.


miwm is a window manager, not a desktop. Thus, it has the following characteristics:


Compile time choices

These can be set as user preferences, which override the compile-time defaults.