LWM stands for Lightweight Window Manager. It is a window manager for the X11 window system. LWM has a limited feature set, and does not take on the tasks that are better delegated to independent programs.
LWM is a classical reparenting window manager. This means it decorates client windows with a title bar and border, and allows them to be moved and resized by dragging these areas with the mouse.
IMPORTANT: If you run LWM the first time, note that you can start an xterm by middle-clicking on the desktop background. This allows you to start other programs, should you not have a launcher running.
Once upon a time, LWM was simply the window manager that tries to keep out of your face. This was Elliott's original paradigm, and it's a good one.
Since then, Phil's been doing much of the recent development, and has come to add his own paradigm. Thus, LWM is the window manager that:
- Keeps out of your face.
- Puts you, the user, in control.
LWM will not attempt to second-guess you. It will not force unwanted features on you. It will not take over responsibilities that are better undertaken by some other program. It will behave in a simple, predictable manner.
It will also support features that put you in control, such as the ability for you to control window titles when you want to (see below).
Essentially, you own this machine. It's yours. So it should damned well be doing exactly what you want it to do.
Using the fairly standard window borders and title bar, you can raise, move, resize, close and iconise a window.
The left button will move the window from the title bar, or resize it from the edges. The middle button will always move the window, but won't bring it to the top of the window stack.
Left click on a window's title or border will bring it to the top of the window stack; shift+right click on same will push it to the bottom.
Also known as 'iconifying', except LWM doesn't clutter your desktop with icons. Right-clicking (without Shift) on a window's title or border will make it disappear.
Holding down the right button on the desktop background opens a menu. At the top of this menu (above the dotted line) are hidden windows. Visible windows are shown below the dotted line.
Moving the mouse over items in this menu will show a red box around where the corresponding window is, or where it will appear if you make it visible again. Releasing the right button over one of the menu items will make it appear if it was hidden, bring it to the top of the window stack, and give it input focus.
You can configure things about LWM using Xresources. See the lwm.man page for details, or look at the 'testXresources' file for an example.
Things you can configure include:
- Colours. All of them.
- Fonts and sizes.
- Whether to display application icons in window title bars and/or the unhide menu.
- Whether to use sloppy-focus or click-to-focus.
- Border widths, and whether to include a resize border at the top of the title bar.
- Commands to run when the user clicks left or middle buttons on the desktop background.
- Commands to run when the user clicks left or middle buttons with the
Altkey held, on the title bar of a window.
LWM does not auto-detect monitors or provide a UI to select monitor rotation, location etc. However, it does understand the XRandR protocol, and when the configuration of your monitors changes it will react, ensuring windows are sensibly arranged and that nothing gets lost in some inaccessible corner.
One recommendation is to use a hotkey program like speckeysd to run a script
that sets up your screens with the xrandr command-line tool. That way you have
complete and explicit control over what happens, without relying on what can be
rather flaky screen auto-detection software.
- UTF8 everywhere.
X still has support for colour maps. Well, LWM completely ignores them, and doesn't fully support anything less than 24bpp displays. This does make modern LWM unsuitable for ancient monochrome X terminals, but if you're using one of those it's in a museum anyway, and hopefully you don't mind not having the latest version of LWM.
LWM is not an 'environment'. It is not a launcher. It is a window manager. If you want a launcher, I'd suggest gummiband, but you can also use any other launcher you like. This is the beauty of X11 - you can mix and match.
LWM has no hotkeys. It understands certain keyboard modifiers like Alt and Shift when combined with mouse actions, but it does not support hotkeys. If you want to run programs on hotkey presses, consider using speckeysd. Or, you can use any other hotkey program you like. This is the beauty of X11 - you can mix and match.
If you want to control window sizes, locations etc using hotkeys, please use
programs like xdotool to help you with that.
LWM doesn't support the EWMH protocol for virtual desktops. That is, the ability to switch between multiple desktops, and have different clients visible on different desktops.
There's no reason why LWM cannot support the protocol, and indeed the window manager's collaboration is required to make the protocol work at all. If you want this functionality added to LWM, please feel free to contribute the code. Note, however, that the UI and/or hotkey support for viewing and switching virtual desktops should be provided by a separate program, not as part of LWM itself. As previously stated, LWM is a window manager, not an environment.
LWM is not a compositing window manager. In the brave new world of Wayland, where the dark and complex history of X11 is set aside and a saner system built, compositors make sense. But compositors in X11 are slow and inefficient. LWM is for people who care more about stuff happening fast than stuff happening prettily.
