We won't delve into configuring Window Manager's and Desktop Environments. There is just too much to try to cover in one document. It is important to realize that the two are not the same. There are many, many Window Managers available.
Window Managers are highly configurable. Many aspects of user interaction can be controlled by the Window Manager.
Some of the most popular Window Managers:
aewm: http://www.red-bean.com/~decklin/aewm/ |
AfterStep: http://www.afterstep.org/ |
BlackBox: http://sourceforge.net/projects/blackboxwm |
Enlightenment: http://www.enlightenment.org/pages/main.html |
Fluxbox: http://fluxbox.sourceforge.net/ |
fvwm: http://www.fvwm.org/ |
IceWM: http://www.icewm.org/ |
olwm (OpenLook Window Manager): http://www.plig.org/xwinman/olvwm.html |
Sawmill: http://sawmill.sourceforge.net/ |
WindowMaker: http://www.windowmaker.org/ |
XFce: http://xfce.org/ |
There are many, many lesser known ones as well. http://www.plig.org/xwinman/ has an updated list of Window Managers, and related information. There is always freshmeat too.
GNOME and KDE both have their default Window Manager, but support other, compliant Window Managers as well. Your distribution probably has included at least several. Try them all if you don't already have a favorite. Your distribution probably also has a method of switching dynamically between Window Managers (and Desktop Environments too).
Desktop Environments are not really new, but their popularity has increased with advent of the two big names: KDE and GNOME. To a certain extent, the Desktop Environment functionality overlaps the Window Manager's. They both can be responsible for the root window background, root window menu, icons, taskbars, etc. Generally speaking, if a Desktop Environment is running, it is controlling these aspects. That is the main idea behind them -- to integrate the various components into a cohesive, consistent whole. Desktop Environments also add some interoperability and ease-of-use features that a simple Window Manager cannot.
Oh, another point: Desktop Environments also try to do as much X session configuration as possible. Any of their compliant clients will more than likely be configured by the Desktop, or have it's own configuration that conforms to the Desktop's style. This is at least partly to avoid much of the seemingly helter-skelter text file configuration we looked at in the above sections, and make life a little easier for the user.
There is a trade-off in this additional functionality, and that is that it takes memory and system resources to oversee all this. If you have plenty of memory and a fast computer, this is no problem. But in low memory situations, this can cause a slowdown (see the performance section below). 64M of RAM is probably borderline with either KDE or GNOME.
So do you need a Desktop Environment? That is up to the user. They are certainly not required to run X, but do add features that many users want or expect in a GUI. Which one is better? Ah, but that is up to you to decide!
KDE has been around longer than GNOME, and some would say maybe a little more mature. KDE is based on the QT widget toolkit. A quote from the KDE home page:
KDE is a powerful Open Source graphical desktop environment for Unix workstations. It combines ease of use, contemporary functionality, and outstanding graphical design with the technological superiority of the Unix operating system.
KDE is a mature desktop suite providing a solid basis to an ever growing number of applications for Unix workstations. KDE has developed a high quality development framework for Unix, which allows for the rapid and efficient creation of applications.
GNOME is based on the GTK+ toolkit. And a quote from the GNOME home page:
GNOME stands for GNU Network Object Model Environment. The GNOME project intends to build a complete, user-friendly desktop based entirely on free software. GNOME is part of the GNU project, and GNOME is part of the Open Source(tm) movement. The desktop will consist of small utilities and larger applications which share a consistent look and feel. GNOME uses GTK+ as the GUI toolkit for all GNOME-compliant applications.
XFce is a lighter weight, less featureful Desktop Environment that does not get as much attention as the others. XFce is also based on the GTK+ toolkit. And a quote from the XFce home page:
The XFce project was first started because I needed a simple, light and efficient environment for my Linux System.
I believe that the desktop environment should be made to increase user productivity. Therefore, the goal is keep most system resources for the applications, and not to consume all memory and CPU usage with the desktop environment.
All these have their own extensive documentation. If you can't find what you need installed on your system, check the respective home pages.