Window Managers
WM
One of the first ones, this merely provided a menu when you clicked on the
root window, and provided functions to move/resize windows, etc. It provided
no window decorations whatsoever.
TWM
``Standard'' window manager shipped with X these days. Adds :
- a titlebar (but no side/bottom decorations)
- icons/icon manager
- user-configurable cascading menus.
One oddity (and its derivatives VTWM, TVTWM, PieWM and CTWM) is Squeezed
Titlebars - instead of taking up the whole window width, the titlebar only
takes up the width of the text for the title.
SWM
Solbourne Window Manager. Developed at ParcPlace.
From the README :
- No default look and feel. Templates are provided for motif and open look.
- Was the first X window manager to implement a "Virtual Desktop."
- Configuration is done completely through X resource files.
- Allows panels of buttons on the root window.
- Provides primitive session management.
- Can be sent window manager commands from outside programs
(swmcmd).
This requires the ObjectBuilder libraries, so I haven't tried it yet :)
VTWM, TVTWM, PieWM and CTWM
All of these are TWM derivatives, except that they've added a ``Virtual
Desktop'' to things, and most of them support use of XPM icons.
- VTWM has a ``map'' window that shows the placement of
all windows on the extended desktop, and lets you move the mouse off the edge
of the screen to scroll around to the other windows.
- TVTWM acts similarly, but implements things differently to VTWM -
whereas VTWM simply moves things around on the root window, TVTWM creates an
additional window upon which all other windows exist, which tends to confuse
programs like xsetroot...PieWM is TVTWM hacked to have pie-like menus.
- CTWM uses buttons to swap between different screens. The buttons can
also optionally display a map of each screen. It has a lot of nice features
like :
- animated buttons (!)
- 3D-ish look and feel
- Pinnable menus
- Sound (via rplay and also by just running your own play commands)
- use of M4 on config file.
OL(V)WM
Open Look Window Manager. Comes standard with Sun computers. A virtual
version is also available. Has nice things like :
- 3D-ish look and feel (in this case, the Open Look user interface).
- Pinnable menus.
- Directory Menus - eg. you could have a menu for /usr/bin/X11 - all files
in the directory are listed as a menu option.
- OLVWM version 4 supports GIF and XPM files.
MWM
OSF's standard window manager. Costs money, eats memory (the Motif shared
library is 1.7mb on Linux). ``Nice'' 3D-ish MS-Windows-ish look and feel,
also has an Icon Box if you don't like cluttering the desktop with icons.
Besides that it's pretty boring, no matter how standard it is. Motif 2.0's
window manager is supposedly going to be virtual and will support XPMs, so OSF
seems to be attempting to keep up with the Joneses.
GWM
The Emacs of window managers. Programmable in Lisp - an MWM emulation is
included as a proof-of-concept that you can do something useful in it if you
have enough time to play.
FVWM
A TWM derivative invented by a guy who wanted to be able to run X on his 4mb
Linux machine. Since then, it's grown a lot, and includes such niceties as :
- a 3D-ish look and feel somewhat reminiscent of Motif.
- Multiple desks, each of which have a virtual desktop. This is kind of
confusing until you get the hang of it. You can have, for instance, all
windows with ``emacs'' somewhere in their name starting on Desk 2, and all
xterms on Desk 1...
- Shaped XPM icons.
- use of M4 on config file.
- Window Manager modules - in order to try and cut extraneous features
from the window manager, you can load modules to do things such as :
- Change backgrounds when you change desks
- Implement a MWM-like Icon box.
- Show miscellaneous info about a window.
- Save current window positions.
- Put scroll bars on a window so it uses less space.
- Implement a TWM-like window list.
- Implement a virtual desktop pager (there is also an internal one in
case you want to compile FVWM without module support).
- Implement a (currently pretty experimental) file manager.
- Make silly sounds when you do things like iconify windows, etc.
- Implement a button bar. This button bar can do neat tricks like
``swallow'' an xload (or an xclock or xbiff...) window and make it appear
over the button. This can also be done with Modules (most notably the
Pager module)