DOKK / manpages / debian 10 / flwm / flwm.1.en
flwm(1) General Commands Manual flwm(1)

flwm - The Fast Light Window Manager

flwm [-d[isplay] host:n.n] [-g[eometry] WxH+X+Y] [-fg color] [-bg color] [-bg2 color]

flwm is a very small and fast X window manager, featuring no icons 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 login window.

The .xinitrc or .xsession file should look like this:

xsetroot -solid \#006060
xrdb .Xresources
# xset, xmodmap, other configuration programs
flwm &
# xterm, other automatically-launched programs
wait $WindowManager

-d[isplay] host:#.# Sets the display and screen for flwm to manage

-v[isual] # Visual number to use (probably only works for non-color-mapped ones)

-g[eometry] WxH+X+Y 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.

-m[aximum] WxH 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.

-x 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 out then.

-fg color, -bg color Set the label color and the color of the window frames and the menu.

-c[ursor] # 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 friend.

Flwm can launch programs from its menu. This is controlled by files in the directory ~/.wmx (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 deep).

Cut and paste the following lines you your shell to create some example files:

mkdir ~/.wmx
ln -s /usr/bin/gimp ~/.wmx/"The Gimp"
cat << EOF > ~/.wmx/"Terminal"
#! /bin/sh
/usr/bin/rxvt -ut
chmod +x !*

On Debian, flwm has been modified to support a system-wide menu /var/lib/flwm/wmx when no ~/.wmx exists, and scripts were added to take advantage of the Debian menu system (see update-menus(1)).

Left-click on a window border raises window.

Left-drag 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.

Middle-click on a window border lowers it to bottom.

Middle-drag 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.

Right-click on a window border pops up the menu.

Any button 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.

Right-click on window border, or any-click on the desktop, or typing Alt+Esc or Alt+Tab or Alt+Shift+Tab will pop up the menu.

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.

New desktop 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 one.

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 other desktop).

If a desktop is empty you can delete it. Its sub menu will show delete this desktop. Pick that and the desktop is gone.

Sticky 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.

New xterm will run a new xterm on the current desktop. Useful if you accidentally close everything. This item does not appear if a ~/.wmx directory exists.

Logout will ask for confirmation and if so flwm will exit.

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 compiled:

Alt+Escape Pops up the menu with the current window preselected

Alt+Tab Pops up the menu with the next window preselected

Alt+Shift+Tab Pops up the menu with the previous window preselected

Ctrl+Tab Switch to the next desktop.

Ctrl+Shift+Tab Switch to the previous desktop.

Ctrl+Function key Switch to desktop N.

Alt+Up Raise the current window.

Alt+Down Lower the current window.

Alt+Delete Close the current window (same as clicking close box).

Alt+Enter "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 <>

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 version.

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

15 May 1999