Part 3: The Linux GUI
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.
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.
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.
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 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.
GNOME uses Nautilus as its file manager. This program is a cross between Mac OS X's Finder and the version of Windows Explorer used in Windows Vista. Nautilus's main strength and weakness is its simplicity; although Nautilus is easy to use, it also omits tools that are found in much more powerful applications like Konqueror. Nautilus also supports remote connections (SSH, FTP, etc) through a “Connect to Server” dialog that is very similar to OS X.
If you appreciate simple, uncluttered interfaces or come from a Mac OS X background, you should give GNOME a try.
The Xfce desktop environment is very similar to GNOME, but has much less demanding system requirements. (recent versions of Xfce are based on GTK just like GNOME is) Due to this similarity, we chose to classify Xfce as a subset of GNOME rather than give it a section of its own.
Xfce's applications greatly resemble GNOME, but are designed for greater efficiency. For instance, Xfce's Thunar file manager looks like a trimmed-down version of Nautilus. If you like GNOME but have an older computer that can't run it very well, you should definitely consider Xfce.
KDE (K Desktop Environment) is as widely distributed and popular as GNOME. As a true desktop environment, it caters to power users with a wide selection of robust software built using the QT toolkit. (the previously non-free component mentioned in the previous section) KDE 3.5 was the last version of “classic” KDE. KDE 3.5 is the one of the most Windows-like desktop environments in common use today, since most programs are accessed from a “K” menu in the same position as the Windows Start menu. In addition to this, KDE 3.5 has a large control panel application that many Windows users will feel at home with. (in contrast, GNOME's system administration tools are more decentralized and exist as separate “modules” on the administration menu)
Although KDE 4 is presently being adopted by more and more people, KDE 3.5 is far from being obsolete. It is still a fully mature and well-tested desktop environment ideal for production use and will remain so as long as security patches continue to be released. While GNOME emphasizes simplicity, KDE 3.5 emphasizes options; any program written for KDE likely has more options and features in it than you can shake a stick at. While many users praise this design for allowing them to know exactly what they have at their disposal, others claim that KDE programs are overcomplicated and appear cluttered as a result. As with the GNOME simplicity debate, the KDE clutter debate is largely a matter of opinion.
KDE's real power comes from the amazingly versatile Konqueror program. The misspelling is deliberate and correct in this instance; versions of KDE prior to 4.x had a trend of including a k in the name of an application or proceeding the name with a k (e.g. kontact or kwrite) to indicate an association with KDE. This naming convention has since been abandoned in KDE4, but some existing programs still use it.
Konqueror (a play on Internet Explorer) doubles as an excellent browser (using KHTML, a relative of the Webkit engine) and a very full-featured file manager with more versatility than Nautilus. Konqueror's file manager supports FTP/Graphical SSH in addition to local file management and features split views, tabs, and close integration with the terminal. Likewise, the web browser component of Konqueror supports tabbed browsing and very good standards compliance, even though it is not as customizable as Firefox.
However, KDE 3.5 has a few problems. Late in KDE 3.5's development, the KDE team decided to split web browsing and file management into two separate applications: Konqueror (now officially classed as a web browser) and Dolphin. (the new file manager) Many users criticize the KDE 3.5 version of Dolphin for lacking essential features like directory trees and consider the KDE team's decision to replace Konqueror with it as a mistake. Fortunately, Konqueror still has its file management capability, so it is easy to keep using Konqueror for this purpose instead of Dolphin. Many of the applications also tend to flicker slightly at certain times (particularly when you scroll) but this is not very noticeable unless you are specifically looking for it or are overly sensitive to things like that.
If you like using a well-proven desktop environment that is somewhat similar to Windows and comes loaded with options, you might feel at home with KDE 3.5.
The KDE4 desktop environment represents a significant departure from “traditional” user interfaces. To begin with, the desktop has been re-conceptualized as more than a place to store shortcut links. Although application shortcuts are still placed on the desktop, they are now limited to a small section. The rest of the space (that would otherwise be mostly wasted) may be used for small interactive widgets called plasmoids that provide additional functionality like post-it notes, resource monitors, RSS feeds, etc.
KDE4 is much more attractive than its predecessor, which looks rather dated in comparison. In terms of complexity, KDE 4.2 is essentially a compromise between GNOME and KDE 3.5. While 4.2 does not have quite as many features as its predecessor, it has slightly more than GNOME. Early in KDE4's development, many early users have criticized it for a lack of features (4.0 was a proof-of-concept release and was not ready to replace 3.5) but 4.2 has made significant improvements in this area and is adequate for production use. However, many KDE applications are still in the process of being ported to KDE 4 and may not quite fit the rest of the desktop environment in an aesthetic sense. However, this does nothing to adversely impact their usefulness.
Fortunately, the version of Dolphin included in KDE 4.2 is much better than the KDE 3.5 version. Many of the sorely needed features that the previous release was lacking have been added, and this goes a long way towards making Dolphin a viable replacement for Konqueror's file management functionality for most users.
KDE4 holds the middle ground between GNOME and KDE 3.5. If you prefer a healthy blend of features and simplicity, then KDE4 may be for you. In some distros, it is possible to install KDE 3.5 and KDE 4 side by side, so there is no reason to give up one for the other.
Fluxbox is a simple window manager instead of a full desktop environment. However, Fluxbox is extremely lightweight and adds virtually no additional overhead to what you already have. As such, Fluxbox is best deployed on systems that have extremely limited resources or in instances where only a very lightweight window manager is preferred. Alternatively, Fluxbox is ideal for people who don't want any sort of user interface getting in their way at all when they work.
Unlike KDE and GNOME, Fluxbox acts more like some traditional Unix/Linux window managers from years past. There are no panels, icons, or anything else like that to click on; all interaction is done through the mouse. Right-clicking brings up the application menu, and middle-clicking brings up desktop settings. Fluxbox includes a bare-bones taskbar suitable for switching applications and desktops. Although it is extremely simple, Fluxbox still manages to be stylish with several different color themes to choose from.
If you enjoy truly minimalistic interfaces or can only allocate meager system resources to your window manager, Fluxbox may be perfect for you.
IceWM has been popular on Debian-based systems in the past and has an appearance inspired heavily from classic versions of Windows. It is more intuitive than Fluxbox and has similar system requirements. During our tests, IceWM consistently started faster than Fluxbox did. While the IceWM interface is not going to win any beauty awards when compared to modern desktop environments, it is very neutral and won't get in the way when you're trying to work. IceWM also includes a CPU and Ethernet activity monitor on the taskbar as yet another testament to rugged usability.
IceWM is a good choice if you want your window manager to be simple and as close to Windows as possible while expending minimal system resources.