Desktop Environments and Window Managers

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

Window managers are X client programs that control the way other X clients are positioned, resized, or moved. Window managers can also provide titlebars 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.

A variety of window managers are included with Red Hat Linux:

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-window-manager> 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.

Desktop Environments

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 contain 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, using the GTK+ 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, if 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 the Official Red Hat Linux Getting Started Guide.