windowlab(1) a window manager for X11


windowlab [options...]


windowlab is a small and simple window manager of novel design.

It has a click-to-focus but not raise-on-focus policy, a window resizing mechanism that allows one or many edges of a window to be changed in one action, and an innovative menubar that shares the same part of the screen as the taskbar. Window titlebars are prevented from going off the edge of the screen by constraining the mouse pointer, and when appropriate the pointer is also constrained to the taskbar/menubar in order to make target menu items easier to hit.

WindowLab places a taskbar at the top of the screen and adds a titlebar to the top of each window. These titlebars consist of a draggable area, and three icons on the right hand side. When left clicked, these icons:

* hide the window
* toggle the window's Z order Amiga style (if it's not at the front, bring it to the front, otherwise send it to the back)
* close the window

Another way of toggling a window's Z order (depth) is by double left clicking on the draggable part of its titlebar.

Windows' titlebars are prevented from leaving the screen and cannot overlap the taskbar.

The taskbar should list all windows currently in use. Left clicking on a window's taskbar item will give that window focus and toggle its Z order (depth).

To resize the active window hold down alt and push against the window's edges with the left mouse button down.

If you right click outside a client window, WindowLab's taskbar becomes a menubar. Releasing the right mouse button over a selected menu item will start a corresponding external program. WindowLab will look in each of the following files in turn for definitions of the menu labels and commands:

* ~/.windowlab/windowlab.menurc
* ../etc/windowlab.menurc (from the directory containing the executable)
* /etc/X11/windowlab/windowlab.menurc

Each line in the menurc file should have the menu label, a colon, and then the corresponding command, eg:

The GIMP:gimp

New windows (that don't specify their location) are positioned according to the coordinates of the mouse - the top-left hand corner of a new window is set to the location of the mouse pointer (if necessary the window will be moved to ensure that all of it is on the screen).

WindowLab has the following keyboard controls. Hold down alt and press:

* tab to give focus to the previous window
* q to give focus to the next window
* F11 to toggle fullscreen mode on and off for non transient windows
* F12 to toggle the window's depth. This is the same as left clicking a window's middle icon


-font font-spec
Draw window titles with the font defined by font-spec.
-border color, -text color, -active color, -inactive color, -menu color, -selected color, -empty color
Use color for the borders, the text, the active background, the inactive background, the menubar, the selected menu item and empty parts of the screen.
Print information to stdout and exit.
Sets which X display will be managed by windowlab.


DISPLAY Sets which X display will be managed by windowlab.


This version of WindowLab supports the Debian Menu subsystem. To update the menus, it suffices to execute the command update-menus. If executed as root, the system setting in

will be affected, whereas execution by any underprivileged user only effects the private resource file in


The following files tune the compilation of auto-generated menus:

/etc/X11/windowlab/debian_config, ~/.windowlab/debian_config
Debian-specific system configuration and user-specific overrides.
A common tail part, that currently encompasses About, Reload and Quit. All users get these entries included in their menu.
Menu entries hand-picked by the individual user.


When WindowLab receives a SIGHUP signal, it will reload all relevant menu resource files, thus updating the menu bar.


Nick Gravgaard (me at