The configuration of an XFree86 server is useless until accessed by an X client that will use it to display a program using the hardware controlled by the X server. X clients are programs designed to take advantage of the X server's hardware, usually to provide interactivity with a user.
You do not have to run a complicated window manager in conjunction with a particular desktop environment to use X client applications. Assuming that you are not already in an X environment and do not have an .xinitrc file in your home directory, type the xinit command to start X with a basic terminal window (the default xterm application). You will see that this basic environment utilizes your keyboard, mouse, video card, and monitor with the XFree86 server, using the server's hardware preferences. Type exit at the xterm prompt to leave this basic X environment.
Of course, most computer users require more features and utility from their GUI. Developers have added layers of features to create highly developed and interactive environments that utilize the full power of the XFree86 server. These layers break into two fundamental groups based on their purpose: window managers and desktop environments. The following sections describe each of these groups.
Window managers are X client programs that control the way other X clients are positioned, resized, or moved. Window managers can also provide title bars to windows, keyboard focus by keyboard or mouse, and user-specified key and mouse button bindings. Window managers work with a collection of different X clients, wrapping around the program, making it look a certain way and appear on the screen in a particular place.
Four window managers are included with Red Hat Linux 8.0:
twm — The minimalist Tab Window Manager, which provides the most basic toolset of any of the window managers.
mwm — The default window manager for the GNOME desktop environment, mwm stands for Metacity Window Manager. It is a simple and efficient window manager that supports custom themes.
sawfish — This full featured window manager was the default for Red Hat Linux until the release of Red Hat Linux 8.0. It can be used either with or without the GNOME desktop environment.
wmaker — WindowMaker is a full-featured GNU window manager that was designed to emulate the look and feel of the NEXTSTEP environment.
These window managers can be run as individual X clients to gain a better sense of their differences. Type the xinit path-to-window-manager command, where path-to-windowmanager is the location of the window manager binary file. The binary file can be found by typing which window-manager-name or by looking for the name of the window manager in a bin directory.
A desktop environment brings together assorted X clients that can be run together using similar methods, utilizing a common development environment.
Desktop environments are different from window managers, which only control the appearance and placement of X client windows. Desktop environments use an underlying window manager to enable advanced features that allow X clients and other running processes to communicate with one another. This allows all applications written to work in that environment to commonly integrate and be used in new ways, such as permitting drag-and-drop behavior with text.
GNOME is the default desktop environment for Red Hat Linux, and uses the GTK2 base widget toolkit and miscellaneous other widgets that extend the base functionality. KDE, another desktop environment, uses a different toolkit called Qt. GNOME and KDE both contain advanced productivity applications, such as word processors, spreadsheets, and control panel devices that allow you to have complete control of the look and feel of your user experience. Both environments can run standard X client applications, and most KDE applications can run in GNOME as long as the Qt libraries are installed.
When you start X using the startx command, a pre-specified desktop environment is utilized. To change the default desktop environment used when X starts, open a terminal and type the switchdesk command. This brings up a graphical utility that allows you to select the desktop environment or window manager to use the next time X starts.
Desktop environments utilize window managers to provide the consistency in appearance between different applications. KDE contains its own window manager, called kwm, specifically for this functionality.
For information on the customization of the GNOME and KDE desktop environments, see Chapter 6 for GNOME and Appendix B for KDE.