Ovadia_DE_00 By Steven Ovadia

This article was excerpted from the book Learn Linux in a Month of Lunches.


The desktop environment (also sometimes called a desktop manager) concept is one of the more challenging parts of Linux to understand. Most users are familiar with Windows and OS X. Those operating systems only have one desktop interface. The user can tweak those desktops to a certain extent, but essentially you’re stuck with whatever Apple or Microsoft has decided to do. Menus are always going to be in certain places and key combinations are going to be tied to specific tasks and programs. The user doesn’t have a say in the design of their work environment, nor can they change it very much.

For the most part, users of these systems are conditioned to accept this limitation. This is often why you see people who haven’t updated their systems in years—they like the existing interface and don’t want to move onto something different. This could be the reason Windows XP managed to survive for 12 years (and why it’s still seen out in the wild).

This freedom and flexibility to choose the interface is especially important to serious desktop users, who spend a fair amount of time in front of computers, doing serious work, from writing, to research, to communicating. Users of OS X and Windows have probably noticed those interfaces becoming more tablet-like, with icons and touchscreens and apps. These are wonderful tools for users who are on tablets or phones, or for users who are using a laptop or desktop to consume content. But for those of us doing more than consuming content, these interfaces can feel overly simple and frustrating. Lots of Linux desktop environments, when mastered, will allow you to work more efficiently than is possible on a generic Windows or OS X interface. There is a learning curve with these desktops, but many find that the initial time investment at the beginning yields considerable productivity down the road.

Also, because many of us spend so much time in front of their computers, we want a certain degree of customizability, because our personal relationship with our computer becomes almost intimate. Just as most of us customize our offices or workspace, whether with photos or furniture or paper placement, we also want the ability to create a computing environment that reflects our personal work style, from our menu locations to how programs are launched and displayed.
GNOME, KDE, and Xfce are three of the most popular desktop environments, and Unity is Ubuntu’s default desktop environment. There are many other desktop environments, but those four are enough to get you started.

Desktop Environments

The desktop environment is the look and feel of the graphical interface of an operating system. It has no equivalent in the worlds of OS X and Windows since those operating systems have just one desktop environment each.

It’s fair to say that different versions of OS X and Windows might have different looks and different interfaces, but there’s no way to get the Windows 7 interface on Windows 10. As we know, Linux is a kernel. It controls the operating system but the desktop environment is the look and feel of your system. In addition to smaller things like where the date and time are located on the interface, it also controls things like how windows are presented. Other desktop environment elements include:

  • How windows are closed. Is the close button on the top right? Or the top left? The desktop environment determines that.
  • Navigation elements. Is there a dock? A taskbar? Where are they located?
  • How you move between applications. What happens when you use Alt-Tab? Is it animated? Are there flat images?

Designers make choices about how they want the desktop environments to look and feel. The desktop environment is your experience on your computer. In the case of Windows and OS X, there is just the one desktop environment. Linux does not have this limitation, though.
Not only do interfaces tend to be more customizable, but users can even choose different desktop paradigms. For example, GNOME and Unity don’t rely on traditional navigation menus. Instead, they use launchers, which allow the user to type the name of the program they want to launch. For many users, this is a new desktop model.

With Linux, you can toggle between different interfaces when you login to your computer, meaning if you cannot choose between two desktops, you can alternate between them, without having to reinstall software or copy files between two parts of your computer. Instead, it’s simply a matter of logging out of one desktop environment and logging into a different one (Figure 1).
Most distributions support multiple desktop environments so if you don’t like the default, you can just install a new one. For example, Debian gives users a choice of desktop environments upon installation, while Ubuntu installs Unity by default. If you want to install Ubuntu with a desktop environment other than Unity, you need to either choose a different flavor, like Xubuntu, which comes with the Xfce desktop environment, or install a new desktop environment from the software repositories.



Figure 1. You can choose your desktop manager when you first log in to your computer.

All Linux programs are usable with all Linux desktops, so you never have to worry about a program not working with a certain desktop environment. It’s not like how Windows programs don’t run within OS X. Your favorite program in Unity will be right there for you in Xfce. Different desktop environments have different default software choices, but with Linux, the end-user can always change those defaults, so they’re really more recommendations than orders.