- The Fast Light Window Manager
[-d[isplay] host:n.n] [-g[eometry] WxH+X+Y] [-fg color] [-bg color]
is a very small and fast X window manager, featuring no
and "sideways" title bars.
To run flwm as your login script, you need to create or replace ~/.xinitrc or
~/.xsession (or both). Newer Linux systems with a login panel use .xsession,
older systems where X was started after login use .xinitrc. You may also have
to pick "default" from the "type of session" popup in your
The .xinitrc or .xsession file should look like this:
xsetroot -solid \#006060
# xset, xmodmap, other configuration programs
# xterm, other automatically-launched programs
Sets the display and screen for flwm to manage
Visual number to use (probably only works for
Flwm will act as though the screen is only the
specified area. It will constrain initial window positions to this area and
stop them at the edges when dragging them around. This can be used to surround
the screen with fixed "toolbars" that are never covered by windows.
These toolbars must be created by a program using override-redirect so that
flwm does not try to move them.
Set the size of windows when the maximize buttons are
pushed. Normally this is the size of the screen. This is useful for XFree86
servers that are run with a smaller screen than display memory.
The menu will say "Exit" instead of "Logout" and
will not ask for confirmation. This is a good idea if you are running flwm in
some other way than with exec at the end of .xinitrc, since it won't log you
-fg color, -bg color
Set the label color and the color of the window
frames and the menu.
What cursor to use on the desktop (you will have to
experiment to find out what each number means)
-cfg color, -cbg color
Colors for the desktop and window resizing cursors
In addition to these switches there is much customization that can be done by
editing the config.h file in the source code and recompiling. GCC is your
Flwm can launch programs from its menu. This is controlled by files in the
(this was chosen to be compatible with wmx and wm2).
Each executable file in ~/.wmx is a program to run. Usually these are symbolic
links to the real program or very short shell scripts.
Each subdirectory creates a child menu so you can build a hierarchy (up to 10
Cut and paste the following lines you your shell to create some example files:
ln -s /usr/bin/gimp ~/.wmx/"The Gimp"
cat << EOF > ~/.wmx/"Terminal"
chmod +x !*
On Debian, flwm has been modified to support a system-wide menu
when no ~/.wmx
exists, and scripts were added
to take advantage of the Debian menu system (see update-menus
on a window border raises window.
will move the window when in the title bar, and will resize it
in the edges. If the window cannot be resized then it will always move the
window. What it will do is indicated by the cursor shape.
on a window border lowers it to bottom.
anywhere on window border will move the window.
When you move a window it will stop at the edges of the screen. Dragging about
150 pixels further will unstick it and let you drag it off the screen.
on a window border pops up the menu.
on the desktop will pop up the menu.
The empty button "iconizes" the window: it will completely vanish. To
get it back use the menu.
The vertical-bar button "shades" (or "Venetian blinds"?) the
window. Click it again to restore the window. You can also resize the shaded
window to a new height or "open" it by resizing horizontally.
The two buttons below it toggle maximum height and/or maximum width.
The X button at the bottom closes the window.
on window border, or any-click
on the desktop, or
will pop up
Releasing Alt will pick the current menu item. This makes flwm work very much
(exactly?) like the Windows 95 shortcuts.
Each main window is a menu item. If the window is "iconized" the
little picture shows an open rectangle, otherwise it shows a filled rectangle.
Picking a menu item deiconizes and raises that window and warps the pointer so
it is current.
asks for a name of a new desktop and makes it current. The
desktop will initially be empty (except for sticky items).
To move windows to the current desktop, pop up the menu and pick windows off of
other desktops (if using the keyboard, use left arrow to go to the desktop
names, move up and down to the other desktop, and use right arrow to enter
that desktop). The window will be moved from the other desktop to the current
To switch to another desktop, pick the title of the desktop (if using the
keyboard, use left arrow to go to the desktop names, move up and down to the
If a desktop is empty you can delete it. Its sub menu will show delete this
Pick that and the desktop is gone.
is a special "desktop": windows on it appear on all
desktops. To make a window "sticky" switch to the Sticky desktop and
pick the window off its current desktop (thus "moving" it to the
Sticky desktop). To "unstick" a window go to another desktop and
pick the window off the sticky desktop menu.
will run a new xterm on the current desktop. Useful if you
accidentally close everything. This item does not appear if a ~/.wmx directory
will ask for confirmation and if so flwm will exit.
will exit flwm without confirmation. This item will appear if flwm
was run with the -x switch.
These are the defaults, the hot keys may be different depending on how flwm was
Pops up the menu with the current window preselected
Pops up the menu with the next window preselected
Pops up the menu with the previous window preselected
Switch to the next desktop.
Switch to the previous desktop.
Switch to desktop N.
Raise the current window.
Lower the current window.
Close the current window (same as clicking close box).
"Iconizes" (hides) the current window.
It is impossible to move windows smaller than 100 pixels off the screen.
Only obeys "keep aspect" if the aspect ratio is 1x1.
This program was inspired by and much code copied from the "wm2"
window manager by Chris Cannam <email@example.com>
Thanks to Ron Koerner for the recursive .wmx directory reading code.
Copyright (C) 1999 Bill Spitzak
This program is free software; you can redistribute it and/or modify it under
the terms of the GNU General Public License as published by the Free Software
Foundation; either version 2 of the License, or (at your option) any later
This program is distributed in the hope that it will be useful, but WITHOUT ANY
WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
A PARTICULAR PURPOSE. See the GNU General Public License for more details.
You should have received a copy of the GNU General Public License along with
this library; if not, write to the Free Software Foundation, Inc., 59 Temple
Place, Suite 330, Boston, MA 02111-1307 USA.
Written by Bill Spitzak firstname.lastname@example.org