flwm(1)

🌸 flwm(1) β€” the manual page bestie πŸ’…

okay so welcome to the flwm manual page, it lives in the General Commands Manual section (that's the "1" in flwm(1), iykyk) and it's about to be your new fav window manager, no cap.


✨ NAME ✨

flwm β€” The Fast Light Window Manager πŸ¦‹


πŸŽ€ SYNOPSIS πŸŽ€

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

that's the whole vibe, literally.


πŸ’– DESCRIPTION πŸ’–

flwm is a very small and very fast X window manager. it's giving minimalism, main character energy. big features: it has no icons, and the title bars are "sideways"</> (yes, sideways, we love a quirky queen). periodt.

🌈 .xinitrc / .xsession 🌈

so if you want flwm to be your login script, you gotta create (or replace) ~/.xinitrc or ~/.xsession β€” or both, live your truth. newer Linux systems that have a login panel use .xsession; older systems where X got started after login use .xinitrc. you might also have to pick "default" from the "type of session" popup in your login window, so look out for that πŸ‘€

the .xinitrc or .xsession file should look, exactly, like this:

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

copy it, don't freestyle it 🫢


⭐ SWITCHES ⭐

  • -d[isplay] host:#.# β€” sets the display and screen for flwm to manage. yes both, slay.
  • -v[isual] # β€” the visual number to use (probably only works for non-color-mapped ones, so like... temper your expectations πŸ’€).
  • -g[eometry] WxH+X+Y β€” flwm will act as though the screen is only the specified area. it'll constrain initial window positions to this area, and stop windows at the edges when you drag them around. this is literally the move if you want to surround the screen with fixed "toolbars" that are never covered by windows. heads up tho: those toolbars must be created by a program using override-redirect so that flwm doesn't try to move them πŸ™ˆ
  • -m[aximum] WxH β€” sets the size of windows when the maximize buttons are pushed. normally it's the size of the screen. this is useful for XFree86 servers that are run with a smaller screen than display memory, iconic.
  • -x β€” the menu will say "Exit" instead of "Logout" and will not ask for confirmation. this is a good idea if you're running flwm in some other way than with exec at the end of .xinitrc, because it won't log you out then. big safety vibe πŸŽ€
  • -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, sorry bestie, that's just how it is 😭)
  • -cfg color, -cbg color β€” colors for the desktop and window resizing cursors πŸ–ŒοΈ
and 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 (chosen to be compatible with wmx and wm2 β€” icon behaviour fr).

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 whole hierarchy (up to 10 deep, don't push it).

cut and paste the following lines into your shell to create some example files 🧚:

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

RedHat users can run the program flwm_wmconfig to read the /etc/X11/wmconfig directory and produce an initial set of menu items πŸ‘‘


πŸ¦‹ MOUSE USAGE πŸ¦‹

  • Left-click on a window border β€” raises the window ⬆️
  • Left-drag β€” moves the window when you're in the title bar, and resizes it in the edges. if the window cannot be resized then it will always move the window. what it'll actually do is indicated by the cursor shape, so watch the cursor, it's telling you things.
  • Middle-click on a window border β€” lowers it to the bottom ⬇️
  • Middle-drag anywhere on the window border β€” moves 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 β€” pops up the menu.

πŸ’… BUTTONS πŸ’…

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"? honestly iconic either way) 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. bye bestie πŸ‘‹


right-click on a 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's current. chef's kiss.

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 you're 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 (keyboard gang: 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 (we've all been there 😭). 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.


πŸ’œ HOT KEYS πŸ’œ

these are the defaults, the hot keys may be different depending on how flwm was compiled (so if something doesn't vibe, that's why):

  • 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 the close box)
  • Alt+Enter β€” "Iconizes" (hides) the current window

πŸ’€ BUGS πŸ’€

it is impossible to move windows smaller than 100 pixels off the screen. that's just the law now.
only obeys "keep aspect" if the aspect ratio is 1x1. only then. πŸ™ˆ

πŸ“ ACKNOWLEDGEMENTS πŸ“

this program was inspired by and much code copied from the "wm2" window manager by Chris Cannam <cannam@zands.demon.co.uk> 🫢

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.


⭐ AUTHORS ⭐

written by Bill Spitzak spitzak@d2.com πŸ’–


and that's the whole page bestie!! 🌈✨ this edition dropped on 15 May 1999, it's flwm(1) from the General Commands Manual, and honestly? it ate. go forth and manage some windows πŸŽ€πŸ’…

πŸ“¦ where this page comes from