In the X Window System, the X Server itself does not give the user the capability of managing windows that have been opened. Instead, this job is delegated to a program called a window manager.
The window manager gives windows a border and allows you to move them around and maximize/minimize them. The user interface for these functions is left up to its author.
This proves to be quite confusing for the new user of a X windowing environment because most other environments simply use one window manager and give the user no choice. In this sense, X is much more versatile and allows more tailoring of the environment to whatever the user wants. It allows the creation of an xterminal, a diskless workstation which runs only an X server (out of ROM) and leaves all user interface implementation to a central compute server.
Common Linux window managers are:
- AmiWM (Amiga Lookalike)
- IceWM (A popular window manager written in C++)
- JWM (A footprint efficient window manager)
- Kwm (The window manager used for the KDE desktop)
- Twm (an old window manager dating back to the beginnings of X windows)
Fvwm http://www.fvwm.org/ (an old but useful window manager - still in constant development!)
see x-window-manager packages descriptions
If you use startx rather than a login manager, you'll probably want to choose a default Window Manager. To change the default window manager use
update-alternatives --config x-window-manager
( See update-alternatives manpage).
Window Managers must not be confused with ?Desktop_environments such as GNOME, KDE, XFce. These three environments use a window manager as a single part of a much larger system. And to make things much more complicated, GNOME doesn't force you to use any one window manager. They have a list of "supported" window managers that you can choose from.
Afterstep should be mentioned - (and fvwm is actually fvwm2 whereas fvwm1 already had/has lots of "functionality" and lives on a smaller foot-print)
http://xwinman.org/ for a more comprehensive list of window managers for X.