What’s a desktop environment?



You’ll hear a lot about the command line in Linux, but the truth is, you rarely (if ever) need to see a command line. Just like Microsoft Windows and Mac OS X, you can do all of your computing using an attractive graphical user interface (GUI) with very little reason to use the command line interface (CLI) unless you want to.

Linux users have a wide variety of desktop environments to choose from, which may seem odd since you don’t need to think about that with Windows or Mac OS X. For the most part, you won’t need to think about it on Linux, either — every major distribution has a default environment. For example, the default desktop environment for Fedora and Ubuntu is GNOME. The default for openSUSE, Slackware, and Mandriva is KDE. However, most distros also offer choice between the desktop environment or window managers.

What’s the difference between a desktop environment and window manager?

You might see some GUIs for Linux described as desktop environments and others described as window managers. What gives? Aren’t they the same thing? Well, not quite.

A window manager is the application that controls things like the placement of windows within X, icons, and the appearance of the windows. A window manager doesn’t provide things like drag and drop protocols between applications, suites of applications, and other features you’ve probably come to expect from a GUI desktop.

True to its name, a desktop environment provides a full environment You can expect to see something like the equivalent of the Windows “Start” button, as well as a customizable task bar, quick launch buttons, program menu, and desktop icons. Some desktop environments also have help systems, screensavers, and interchangeable skins or themes.

The desktop environments also come bundled with window managers. The two most popular (and arguably more full-featured) for Linux are K Desktop Environment (KDE) and the GNU Network Object Model Environment (GNOME). Note that GNOME and KDE run on other operating systems as well.

Both of these are completely open source/free software, which means that you can access the source code and make and distribute any modifications you desire, just like you can with Linux itself. KDE uses the KWin window manager, and GNOME utilizes Metacity as their default window managers, respectively. Not to confuse things too much, but you can opt to switch out the default window managers for GNOME and KDE if you choose. For example, GNOME utilizes Compiz for users who opt for 3D desktop effects. For the most part, you’ll probably want to stick with the defaults here unless you really enjoy tweaking your computer.

The anatomy of a GUI

The desktop environment and window managers don’t get all the credit for providing a GUI for Linux, though. The actual work of drawing windows and accepting input is done by the X Window System, usually just called X. The most popular implementation of X is X.org, an open source implementation of the protocols that make up the X Window System.

Several years ago, XFree86 was the most commonly used implementation of X, but most Linux distros moved away from XFree86 after a controversial licensing change and complaints about the XFree86 project’s development processes.

X handles the basics, but the desktop environments and window managers provide the actual user interface that you see. The buttons, widgets, title bars, mouse cursor, and so forth are all courtesy of the window manager and desktop environment toolkits.

The X Window System differs from other GUI implementations in a few key ways. The most obvious difference is that X separates the client and server — so it is possible to run an X application on a remote system, but display the application on a local computer. For example, you could run OpenOffice.org on a department server, but display it on your local computer. This is used by projects like the Linux Terminal Server Project (LTSP) to enable thin client computing.

Popular desktop environments and window managers for Linux

Let’s talk about some of the popular desktop environments/window managers that you’re likely to use with Linux.

KDE, which started development in 1996, is a complete desktop environment that includes its own combination Web browser/file manager (Konqueror), office suite (KOffice), and dozens of productivity applications, games, educational programs, utilities, multimedia applications, and much more.

GNOME, like KDE, provides a full desktop environment. GNOME has its own file manager (Nautilus), Web browser (Epiphany), mail client (Evolution) and a bevy of supporting applications. Like KDE, GNOME also has a number of applications that are built on the GNOME platform, like AbiWord, the GIMP, Gnumeric, and many others.

Note that Linux distributors often modify GNOME and KDE (and other desktop environments/window managers) to some extent, so the application selection and some features will vary depending on whether you’re using Fedora, Ubuntu, openSUSE, or any other distro.

Both KDE and GNOME are surrounded by very loyal developer and user communities that each have strong opinions about why “their” desktop environment is better. However, the rivalry is often overstated, and both GNOME and KDE developers have made efforts to cooperate with one another (and other projects) to help ensure interoperability on the Linux desktop.

While KDE and GNOME are the most widely used projects, you’ll find there are a number of quality alternatives. For example, Xfce is a lightweight desktop environment that is preferred by many users who want a full-featured, but resource-friendly, desktop environment. Xfce is the default desktop for the Xubuntu distribution, and Xfce packages are available for most major Linux distros.

The Window Maker window manager is another popular choice. It emulates the NeXT operating system’s interface. Window Maker’s look and feel is fairly different from Microsoft Windows and Mac OS X. Window Maker is very lightweight, and is a good choice for lower-end hardware.

The Blackbox window manager is another lightweight alternative for Linux desktops. Blackbox is minimalist in nature, and only handles window management. It doesn’t offer desktop icons, shortcuts, a taskbar, menus, and so forth on its own. However, Blackbox does have 3rd party applications (often integrated by Linux distributors) that provide some of these features.

The Damn Small Linux distribution ships with two window managers — FluxBox and a modified Joe’s Window Manager (JWM).

FluxBox is originally based on the Blackbox code, but also offers an icon bar, configurable titlebar, support for KDE and GNOME sessions, shortcuts, themes, and more. Many users enjoy FluxBox’s clean design and its low resource requirements.

JWM is another lightweight desktop alternative. It will look a bit more familiar to Windows users, as it sports a Windows-like look for title bars and its task bar. This is a fairly simple window manager with modest features, but it’s a good choice for older computers and Linux live CD distros.

Enlightenment is a window manager with big plans. Enlightenment is slow in development, the most recent major release (0.16) took place more than six years ago, and the 0.17 release has been in the works since then — with the occasional maintenance release for 0.16. According to the Enlightenment Web site, the team is hard at work on “the next generation of the window manager” which will include a bevy of interesting new features, if it’s ever released.

Don’t let the wide selection of desktop environments and window managers confuse you. We recommend that you begin by simply using the default environment that comes with your Linux distribution. Once you become more comfortable with Linux, try the others and come up with your own opinion about which one is the best.


  • Desktop Software