Desktop Environments and Window Managers

The following material is excerpted from

Graham Glass and King Ables, Linux for Programmers and Users,
Pearson Prentice-Hall, 2006. ISBN 0-13-185748-7. p 379-387

Desktop Enivronments

A desktop environment (DE) is a fancy way of referring to all the programs that manage and render the conceptual desktop that is graphically represented on your screen by icons and windows. Although every DE has its Own unique look and behavior, all provide the same basic set of components:

Threee major Linux desktops are in common use today: CDE, KDE, and GNOME. Other desktop ronments are available, but as with the "minor" distributions of Linux, it is impossible to discuss all the various DEs in the world. Information about many other DEs, including screen shots can be found at:

http://www.xwinman.org

CDE

Common Desktop Environment (CDE) was one of the first true DEs for UNIX systems. CDE is a cooperative venture by Hewlett-Packard, IBM, SunSoft, and Novell that is common to many Unix platforms. A commercial product (not open source), it is available for Linux and is preferred bv users who freouently work on both UNIX and Linux systems.

CDE is based in large part on Hewlett-Packard's Visual User Environments (VUE) and Sun Microsystem's OpenWindows. Both are based on the OSF's Motif windowing standards, common in UNIX environnments. CDE's outward appearance is very much like that of VUE, although there are also OpenWindows influences apparent throughout. CDE was the first desktop to be adopted by multiple UNIX vendors.

CDE provides a working area (desktop), icons, and a control panel made up of expandable ienus and status icons. CDE also provides its own terminal application (comparable to xterm) and a file manager application.

Since CDE is a commercial product, it is not included in Linux distributions. For more information on CDE, including screenshots, visit the web site:

http://www.opengroup.org/cde/

GNOME

The GNU Network Object Model Environment (GNOME) is the GNU Prooject's contribution to the desktop environment. Like other GNU software, it is freel distribution The GNOME Desktop Environment (GDE) is made up of a working area (the desktop icons, and a control panel made up of expandable menus and status icons (which will feel familiar to Windows users). GNOME also provides its own terminal application (comparable to xterm), file manager application, and a control center for modifying system and desktop configuratio information. For more information on GNOME, including othe screenshots, visit the web site:

http://www.gnome.org

KDE

The K Desktop Environment (KDE) has been developed by a loose group of programmers around the world. KDE is included in most Linux distributions and is available for just about every version of UNIX.

KDE attempts to provide an interface similar to those of MacOS and Windows desktops to encourage UNIXI/Linux adoption in home and office environments (where MacOS and Windows have traditionally dominated). Many feel it is a "busier" desktop than some others, but also that it is more flexible and configurabJe.

KDE provides a working area (desktop), icons, and a control panel made up of expandable menus and status icons. KDE also provides its own terminal application (comparable to xterm), a file manager/browser application, and a control center for modifying system and desktop configuration information.

For more information on KDE, including screenshots, visit the web site:

http://www.kde.org

Window Managers

All this ability to write to a display isn't really very useful if you just sit there and watch windows pop up and go away but you can't do anything with them. This is where window managers come in. A window manager is a program (an X client) that communicates with the X server and with the keyboard and mouse on the system. It provides the interface for the user to give instructions to the X server about what to do with the windows.

Although window managers are usually run on the same computer as the display they manage, this is not a requirement. If you have a special X window manager that only runs on one specific type of computer, it is possible to set it up to manage your workstation from a remote computer. Of course, there are inherent problems in doing this. What if the remote machine running the window manager or the entire network went down? Your X server would no longer be managed, because it could not communicate with the window manager, and your keyboard and mouse likely would not respond (at least properly) to your input. But the fact that it could be done this way is a testament to the flexibility of the X Window System architecture.

An important feature provided by a window manager is the "look and feel" of the desktop.

The look and feel of the interior of a window depends on the application creating the window. While all window managers provide similar basic functionality, the appearance of each can vary widely.

focus

The most important job of a window manager is to maintain window focus. Focus is the term used to describe which window is currently selected or active. If you type on the keyboard, the window with focus is where the data will be sent. Focus is what allows you to move from one window to another and do multiple things in different windows. Generally, a window with focus has a different border than the other windows, although this is configurable.

Window Manager Choices

Many different window managers are available for X servers. Most desktop environments include their own window manager, so you may not see the distinction between desktop environment and window manager in your day-to-day use. Historically, when you ran an X server, the window manager was the only component that provided the look and feel, and it was common to choose different window managers on a whim. Most people using a DE also use the corresponding window manager, but in most cases this is not a requirement.

The window manager provides additional components of a window that the application (the X client) does not have to worry about. The window manager draws a border around a window that can be selected with the mouse to change focus, move (drag) the window, or change its size. The window border contains a title and buttons allowing it to be moved, resized, minimized (closed to an icon), made to fill the entire screen, or terminated. These functions are processed by the X client, but the on-screen "hooks" that you use to control them are provided by the window manager.

Many window managers implement a virtual desktop, where a larger area of desktop is available than what the on-screen real estate supports and the window manager helps you manage which section of the larger virtual desktop is displayed on the screen.

dtwm

The Desktop Window Manager (dtwm) is part of the CDE, and is similar to vuewrn, discussed below, but supports a virtual desktop.

Fvwm

fvwm is popular in the Linux community because of its free availability and because it is very customizable. fvwm is included in some Linux distributions. For more information on fvwm, visit the web site:

http://www.fvwm.org

gnome-wm

The GNOME Window Manager (gnome-wm) is the window manager used with the GNU Network Object Model Environment (GNOME). While not required, it is almost always used in conjunction with GNOME to take advantage of features known to both. gnome-wm is included in just about all Linux distributions.

iccwm

The ICE Window Manager (icewm) is another grass-roots, popular window manager. It is small, fast, and easily customizable to resemble Windows so that PC users can feel comfortable using a Linux system. icewm is included in some Linux distributions. For more information on icewm, visit the web site:

http://www.icewm.org

kwm

The K Window Manager (kwm) is used with the K Desktop Environment (KDE). While not required, it is recommended over other window managers for use with KDE because of its tight integration with KDE functionality. kwm is included in just about all Linux distributions.

mwm

The Motif Window Manager (mwm) is one of the first major window managers.

olwm

Sun Microsystems' OpenLook Window Manager (olwm) and Open Look Virtual Window Manager (olvwm) run on Sun systems and can be used with CDE.

twm

Tom's Window Manager (twrn) and Tom's Virtual twm (tvtwm) were written by Tom LaStrange to correct some of the things he didn't like about mwm. tvm is included in many Linux distributions. tvm is also sometimes called the Tab Window Manager.

vucwm

The VUE Window Manager (vuewm) is from Hewlett-Packard and runs under HP's Visual User Environment (VUE) desktop.

Widgets

A widget is the term used to describe each individual component of an X window. Buttons, borders, and scrolling text boxes are all widgets. Each X toolkit can define its own set of widgets. Each desktop or window manager can provide its own widget set, but nearly all widget sets have a common set of core functions that are expected by computer users.

Menus

Menus provide GUI access to functions provided by the application. These functions are often those not directly related to the contents of any particular window (things like opening files, setting options, and exiting). Menu buttons are found along the top of a window.

Push buttons

Pushbuttons can be laid out in any fashion required by an application. The typical pushbutton example is the OK/Cancel dialog box (an additional window that pops up with new information or one that queries the user for more information).

Check Boxes/Radio Buttons

Check boxes and radio buttons are both input-gathering widgets. A check box is a yes/no type of button. If checked, this item is true, yes, or present, depending on the context of the statement. Check boxes are usually square. Radio buttons are a collection of mutually exclusive selections; when one is selected, any others that were selected are deselected (like the buttons on a car radio). Radio buttons are usually round.

Scroll Bars

Scroll bars allow you to scroll back and forth in a window or a part of a window. This is often useful when a lot of text is involved but a short display area is available so not all the text fits. Scroll bars may be either horizontal or vertical. Vertical scroll bars are generally on the right side of a window. Horizontal scroll bars are usually along the bottom of a window.

Source

Graham Glass and King Ables, Linux for Programmers and Users,
Pearson Prentice-Hall, 2006. ISBN 0-13-185748-7. p 379-387


Maintained by John Loomis, last updated 4 March 2006