windowlab - a window manager for X11
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
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
* ../etc/windowlab.menurc (from the directory containing the
Each line in the menurc file should have the menu label, a colon, and
then the corresponding command, eg:
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
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.
-about 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:
Debian-specific system configuration and user-specific
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.
X(7), The Inter-Client Communication Conventions Manual (from the X11R6
Nick Gravgaard (me at nickgravgaard.com)