The Linux graphical user interface (GUI) system may be very different from what you are used to if you are coming from a Windows or Mac OS X background. The GUI of an operating system is commonly referred to as its shell. While virtually all versions of Windows since Windows 95 have used variations of the same basic shell (explorer.exe), there are numerous shells available for the Linux GUI. These Linux shells are called window managers and desktop environments. The term window manager is used to address the simple core user interface of a shell, while the term desktop environment is much more inclusive, covering the shell itself in addition to the various other programs that are integrated with it.
Due to the vast number of window managers available for Linux, many new users often feel overwhelmed at the idea of having to learn their way around them. We must emphasize that many people experiment with several window managers before settling down with one that feels right for them, and there certainly is no need to learn all of them. Due to their modular nature, it is common to have several window managers installed at once.
Much like part one of this series that dealt with choosing a distro, this guide will help you to choose a window manager/desktop environment by introducing you to several of them and addressing their strengths and weaknesses.
Window Manager Overview
Due to the inherent diversity in interface layout and design, it is inevitable that some window managers are more intuitive than others. Some are very minimalistic and differ greatly from what most people are used to. Other window managers resemble Mac OS X or Windows, resulting in a much easier learning curve.
This guide will focus primarily on GNOME, KDE, (3.5 and 4.2) and XFCE, since these are the most common desktop environments in use today. However, we will also touch briefly on some of the other simple window managers still in common use (like Fluxbox and IceWM). Each window manager is available for practically every distribution. Likewise, a window manager will always work the same way regardless of whether you run it on Ubuntu, CentOS, or any other distro.
There are dozens of window managers, but many of them are quite old (some dating back a decade or more) and are no longer being actively developed. Many of these old window managers are what people have come to associate with Linux, and a decade ago they would have been right. However, significant improvements have been made within the last five years alone that places many of the Linux desktop environments on equal footing with what Windows and Mac OS X have to offer.
Understanding Your Needs
When you start experimenting with different window managers, you should first consider your own existing preferences. Would you be comfortable with an interface that differs wildly from what you were previously using on a different operating system, or do you work best in a desktop environment that closely resembles that what you are used to? Furthermore, do you appreciate a minimalistic interface with no distractions or do you prefer having multiple toolbars/panels available on your screen at all times? These are some of the most critical factors that will attract you to or move you away from a particular window manager.
Another criterion is how important the integration between your window manager and the rest of your software is to you. While they allow you to use software you already have installed, many simple window managers include no software other then themselves. In contrast, full desktop environments often include a large library of software like word processors, media players, and graphics tools as part of the default installation (and possibly even more through add-on packages) that gives you a well-rounded work environment. If you want or need all the extra tools, a full desktop environment may be very useful. However, if you just want a trimmed down system, installing a full desktop environment will add bloat and cause redundancy in your applications. In such situations, you would benefit from something more lightweight.
Another thing you should consider when choosing a window manager is the type of computer you are using. We have found that full desktop environments work better on notebook computers that often run on battery power, since many simple window managers don't include any built-in power management tools. (a throwback to a time where Linux-based notebook computers were extremely rare) In contrast, the power management tools built into modern desktop environments like KDE and GNOME are very useful and accurate.
It is normal for people to use one interface almost exclusively for awhile and then experiment with another. They may stay with the new one, go back to the first one for some reason, or use both as they see fit. Desktop environments are not mutually exclusive; programs written for GNOME will work fine in KDE or any other window manager (or vice versa) provided that all necessary dependencies are installed.
Acquiring and Using Window Managers
Due to package management, it is easy to add and remove window managers from your system. To install a window manager, you only have to find its package in your distro's repositories and install it. The package management system should automatically fetch all packages associated with the window manager you want to install and then resolve all dependencies for you.
You are able to choose your window manager every time you log in. Nearly every login screen has a section called “Sessions” that has a list of all window managers installed on your system. The window manager you choose from the list will be used for the duration of your session. Most distros can “remember” which window manager you used last time or have a default setting, so it is not necessary to choose a window manager from the list each time you log in. When you choose a different window manager than your previous setting, the login utility will usually ask you if you want to use the new window manager for that session only or if you want to make it the new default.
The next few sections of this article will introduce you to a few of the many window managers that are available.
The GNOME Desktop Environment
The GNOME Desktop Environment is very common on the Linux platform and is provided by default in many distros as the main graphical shell. GNOME was originally created as a 100% free alternative to KDE, which had some non-free components at the time. (this has since been rectified) As the name suggests, GNOME is a complete desktop environment with a wide assortment of software distributed along with it. The whole thing is designed to be self-sufficient, and it is possible to have a very useful system while using nothing but GNOME applications.
At first glance, GNOME has a definite resemblance to Mac OS X, since both have a prominent menu bar at the top of the screen. Unlike OS X, GNOME has no “Finder” that is used to launch applications and manage files; the entire desktop environment is menu-driven. The OS X dock is also absent in GNOME, but there are programs that can implement similar functionality. (Avant Window Navigator, for instance)
GNOME emphasizes ease of use and simplicity. Applications are designed to be relatively straightforward, with large, clearly labeled icons and no more features than what is necessary to serve the purposes of the program. Although some users consider this a positive design aspect, others claim that the programs are over-simplified. Ultimately, this comes down to a matter of personal preference. GNOME programs are clearly identifiable because they use the GTK toolkit, which is a shared library of buttons and other widgets used throughout the GNOME Desktop Environment to give everything a consistent look.