As you’ve figured out by now, Linux is different than Windows or OS X. Linux oozes flexibility and aches for customization. Using it requires using your knowledge of computers and operating systems to make decisions.
Today, I want to focus on one of the earliest decisions you need to make. Which graphical interface you want.
Paradigms and Design Philosophy
Much of the Windows and OS X operating systems depends on the graphical user interface (GUI). They were designed for and integrated with their GUIs. The same cannot be said for Linux. The Linux operating system has only a command line interface, or terminal. Linux GUIs are merely applications, running on top of this terminal interface.
This design allows the greatest flexibility to users. Instead of using only a single built-in GUI, like Windows or OS X, users can choose from a wide variety, and switch between them at will, without consequence.
The GUIs themselves are built in a modular fashion. By splitting the GUI into these multiple parts, developers and users get even more flexibility and extensibility. Let’s check out a few of the fundamental modules of a GUI.
The first module of a Linux GUI is known as the windowing system or window system. Its responsibility is to provide a framework of windows, icons, menus, and pointers that GUIs use and to pass on any GUI instructions to the computer.
The most popular window system is called the X Window System (sometimes referred to as X11 or simply X). X has been a faithful companion to the Linux operating system since its inception. However, it is aging. X was developed in 1984, and has been tweaked, extended, and modified extensively during its lifetime. X has become a temperamental behemoth thanks to all this tinkering.
Because of the X problems, there are two competing windowing systems, Wayland and Mir. As of this writing, they are still extremely new and largely unused, but are expected to explode in the coming years.
If implemented correctly, we end users should rarely deal with the windowing system. It’s like the foundation of your house. It’s there, and extremely important, but you interact with the house’s floor, not the foundation underneath the floor.
The next module in a Linux GUI is the window manager. The window manager allows you to… well… manage windows. It uses the windowing system framework to create windows and allow interaction with them. It does not provide taskbars, system trays, login managers, icons, screensavers and other common features expected of a modern GUI. Only the windows and the ability to interact with them.
In theory, you only need a window manager and you have a functional GUI. However, window managers lack many features and are too minimalist for the average user.
To expand on the sparse nature of window managers, another GUI module is added. This one is called the desktop environment. Desktop environments are responsible for adding visual appeal, customization options, and lots of polish to the window manager.
Choosing a Desktop Environment
I’m going to assume you want a desktop environment, not simply a window manager. In most circumstances, the benefits and polish they bring are worthwhile.
As is common with Linux tools, there are several competing options. Each has its pros and cons, and each has its own die-hard following.
When choosing which desktop environment you want, there are several factors you should consider:
- Which the distribution prefers. Many distributions are built with a certain desktop environment in mind. This doesn’t mean that others don’t work. It just means that extra attention was paid to making that desktop environment work perfectly. Sticking with the preferred desktop environment can often make the experience feel more polished.
- Minimalism or eye-candy? If you come from a recent Windows or OS X operating system, you’re used to lots of eye-candy. Everything from transparency to animations make the desktop environment pretty. However, all the fanciness require more computing power to work, and some people feel it detracts from work efficiency. Therefore, if your computer is older or you prefer minimalist interfaces, you might want a lightweight desktop environment. Otherwise, if you have a fast enough computer, and prefer the prettier interface, you’ll want a flashier desktop environment.
- Flexibility or simplicity. Do you want your desktop environment to just work with little or no configuration? Or would you rather customize every feature until it’s just the way you want? There are desktop environments catering to both mentalities and everything in between.
- Inherent features or no-nonsense. Some desktop environments have tools, widgets, and extensions that allow it to do more than simply make the pretty windows, icons, and taskbars. Others do not. If you want your desktop environment to tell you whenever you receive an email and keep you up-to-date on the weather, there are options for you. If you prefer your desktop environment to stick to its main job only, that’s available too.
GNOME version 2 was the king-of-the-hill for many years. It was simple enough most anyone could learn it easily, and flexible enough to satiate the customization crowd.
GNOME’s third version made some major changes to the design. GNOME 3 was broken into two modules, the core, and a shell.
The core is responsible for everything going on behind the scenes. It is the engine driving the car. The shell is responsible for the visual style, layout, and workflow.
A GNOME shell is much simpler to design and develop than a full desktop environment is, and allows a great deal of flexibility for the developers. A GNOME shell can seem like its own standalone desktop environment, even though it is technically a part of the GNOME desktop environment. GNOME 3 typically ships with the shell developed by the GNOME team. This shell is creatively named GNOME Shell.
In its early versions, GNOME 3 and GNOME Shell were arguably too simple and stripped-down to win the hearts and minds of most users. It wasn’t until later versions that common features and options were added, making it the pleasing desktop environment it is now.
However, this maturation period coupled with the radical redesign did damage to GNOME’s user base. Some GNOME fans switched to its main competitor, KDE. Others switched to one of the many new desktop environments spawned in the wake of GNOME’s changes.
GNOME 3 running GNOME Shell is the preferred desktop environment for Fedora and Debian, though both distributions have other excellent desktop environments to choose from. GNOME Shell slightly favors minimalism and simplicity over eye-candy and flexibility. It is, however, far from ugly and still reasonably customizable.
When GNOME 2 was king, KDE was the only major competitor. Where GNOME 2, and its GNOME Shell successor, skews towards minimalism and simplicity, KDE prefers options and polish.
KDE is significantly more complex than both incarnations of GNOME, and features a lot of eye-candy. Despite the complexity, however, KDE is easier and more familiar for Windows users due to its similar layout and workflow.
KDE’s biggest selling point is that, with a little work in the numerous configuration and settings windows, it becomes whatever you want. You can strip it down and get a reasonably fast, lightweight desktop environment. Or you can dive into the features and eye-candy and make it stunningly gorgeous and immensely powerful.
Unity is one of the many new desktop environments to crop up in the wake of GNOME 3’s changes. Unity was built by the same company behind Ubuntu, and is their vision of what a desktop environment should be. And their vision is a little… different.
The different vision means that Unity is controversial (it’s ironic that Unity is controversial isn’t it?). Several common desktop paradigms were eliminated or changed, and change always pisses off somebody. If you choose Unity, you will probably dislike it for a few days or weeks. But most users gradually accept that it is a decent desktop environment once they get used to it.
Unity favors eye-candy over minimalism, simplicity over flexibility, and features over no-nonsense. It’s possible to use in other distributions, but Unity’s home is Ubuntu. They go together like chocolate and peanut butter. Individually, each is good. Together, they are magical.
The Cinnamon desktop was also developed during the GNOME 3 aftermath. Cinnamon is developed by the team behind Linux Mint, and its layout is remarkably similar to Microsoft Windows.
Cinnamon is a simple desktop environment. It’s not designed for heavy modification or customization. It simply exists and works.
Unsurprisingly, given its origin, Cinnamon works beautifully in Linux Mint. Linux Mint caters to Linux users who just want everything to work. No need for configuration. Just install it and you’re done. Cinnamon complements this mindset well, and is integrated perfectly with Mint’s tools.
MATE is GNOME 2. When GNOME 3 came about, many disliked it, and there were few mature alternatives. Because of this, several individuals took advantage of the open source nature of GNOME 2, and forked it into a new desktop environment. It provides the popular appearance and design of GNOME 2, but is continuously updated to work with newer hardware and distributions.
MATE is controversial because it is stubbornly clinging to the past. It’s based on older software and its continued usage will hold back the development of new and improved software. It’s great for someone who really loved GNOME 2. But it is wiser to move to a more modern desktop environment that features similar design. Cinnamon and Xfce are excellent modern alternatives.
Xfce is a lightweight desktop environment compared to the others discussed so far. It shares many similarities in appearance to GNOME 2 and the MATE offshoot. But, Xfce strikes out on its own by avoiding unnecessary eye-candy and little used features.
It is ideal if you want a traditional looking desktop, without requiring the overhead of Cinnamon or KDE, and avoiding the aging MATE.
Xfce is a simple, no-nonsense desktop environment. Xubuntu is the most popular distribution built with the Xfce desktop in mind, and I personally find Manjaro Linux’s implementation of XFCE to be sublime.
LXDE is quite similar to Xfce. LXDE is a bit less resource intensive, but not as featureful or pretty. LXDE is perfect for old or underpowered computers that can’t handle the larger desktop environments discussed above. It is also a popular choice on Linux servers due to its minimal footprint.
Knoppix and Lubuntu are the most popular distributions preferring LXDE.
Wrapping Everything Up
The desktop environments discussed here are the most popular. However, they are far from the only options. If you discover another desktop environment that deserves mentioning, let us know in the comments.
Also note that while using only a window manager is possible, I intentionally avoided analyzing them. For new Linux users, a full desktop environment is usually a better choice. A future article will discuss window managers.
Linux offers many choices to the user. All this choice means a lot of decision making and experimentation. The desktop environment is an important and early decision to make.
You should try several desktop environments during your Linux career. However, if this your first foray into Linux, I recommend you begin with Cinnamon.
If you can use Microsoft Windows, you’ll quickly master Cinnamon. It has a familiar layout and is polished and attractive. Users that have gorged on the eye-candy of Windows and OS X often feel underwhelmed by spartan desktop environments like LXDE. Cinnamon provides eye-candy while avoiding the complexities and unfamiliar layouts of other desktop environments.