Comparison of X Window System desktop environments


A desktop environment is a collection of software designed to give functionality and a certain look and feel to an operating system.
This article applies to operating systems which are capable of running the X Window System, mostly Unix and Unix-like operating systems such as Linux, Minix, illumos, Solaris, AIX, FreeBSD and Mac OS X. Microsoft Windows is incapable of natively running X applications; however, third-party X servers like Cygwin/X, Exceed, or Xming are available.

Technical elements of a desktop environment

A desktop environment can be broken up into several components that function independently and interact with one another to provide the look and feel and functionality of the desktop environment. A fundamental part of a DE is the window manager or WM. A window manager creates a certain way for application windows to present themselves to the user. It manages the various application windows, keeping track of which ones are open and providing features to switch between them. Another important element of a DE is the file manager. This application manages files/ folders and presents them in a way that the user finds convenient. It provides file operations like viewing, copying or moving, changing permissions and deleting. DEs usually provide utilities to set wallpapers and screensavers, display icons on the desktop, and perform some administrative tasks. They may optionally include word processors, CD/DVD writing applications, web browsers and e-mail clients.
There are some exceptions: Window managers like Fluxbox, wmii and Ratpoison operate independently of a desktop environment and were written with this objective in mind. Additional hand-picked applications add functionality such as a panel and volume management which gives them some of the qualities of a full DE. This contrasts the behaviour of WMs like Metacity and KWin which were not written with the objective of operating independently of a DE.
KDE Software Compilation and GNOME are written almost completely on special software libraries Qt and GTK+ respectively. This usually means that virtually every component of the desktop environment including the file manager explicitly depends on that library for its functioning.
Notably, nothing prevents the user from installing any number of software libraries of their choice. In practice, software written on major libraries can be run under any desktop environment. Running a package designed for one desktop within a different desktop can be visually displeasing, as well as incurring the RAM penalty of loading libraries that wouldn't otherwise be required.
Some of the differences which can influence the choice of desktop environment are:

Overview

NameFirst release dateLatest stable releaseLatest stable release dateProgramming languageGraphical toolkitLicenseNotes
Cinnamon20114.6.22020-05-27C, JavaScript, PythonGTK+GPLForked from GNOME 3 with the intent to create a traditional desktop built on modern technologies.
Deepin Desktop Environment 20152019-07-19C++QtGPLThe desktop environment of Deepin.
Enlightenment 19970.24.12020-05-31CEFLBSD licenseComplete environment including centralized configuration of most settings.
Equinox Desktop Environment 2003-01-062.12014-06-22C++FLTKGPL, LGPLSeldom used environment, has seen little activity in recent years.
Étoilé2006-02-220.4.22012-04-11Objective-CGNUstepMIT, BSD licenseHas seen little activity for several years, the last journal entry having been in 2014.
GNOME1999-03-033.362020-03-11C, C++, Vala, Python, JavaScriptGTK+GPL, LGPLGNOME is one of the most popular environments. Major design changes with the 3.0 release sparked the creation of Cinnamon, Unity and MATE.
KDE Plasma 5 1998-07-125.192020-06-09C++, QMLQtLGPLKDE has a strong and enthusiastic following. The project is largely community-centric, and encompass many other applications and frameworks, many built specifically for KDE.
LXDE 20060.10.02019-03-23CGTK+GPL, LGPLLXDE, with its low resource footprint, is a favorite among developers of lighter-weight Linux distributions. Development has largely moved to LXQt, but it is still maintained.
LXQt2014-05-070.15.02020-04-24C, C++QtGPL, LGPLFormed by a merger of LXDE-Qt and Razor-qt, this is a lightweight Qt-based desktop environment.
MATE2011-08-191.242020-02-10C, C++, PythonGTK+LGPL, GPLRevival and continuation of GNOME 2 environment after the release of GNOME 3. In recent releases, it has been ported to GTK+ 3, demonstrating the progress of the project.
Pantheon20112018-10-16ValaGTK+GPLThe desktop environment of elementary OS.
Razor-qt20100.5.22013-01-12C++QtGPLmerged into LXQt
ROX Desktop2000 2011-10-09C, PythonGTK+GPL-
Trinity Desktop Environment 2010-04-29R14.0.82020-04-29C++QtGPL forked from KDE 3.x
Unity2010-06-097.52016-05-25C, C++, Python, Vala, QMLGTK+GPL, LGPLDeveloped by Canonical for Ubuntu as an alternative graphical shell to GNOME Shell. Designed with "convergence" in mind, it was discontinued by Canonical in early 2017.
Xfce19964.142020-01-12CGTK+GPL, LGPL, BSD licenseXFCE is often used in lightweight distributions targeting lower-end hardware.

Default programs packaged

This table shows basic information on the programs distributed with some desktop environments for the X Window System.
Note that Razor-qt has become LXQt, a port of LXDE to the Qt framework.

Comparison of ease of use and stability

GNOME's graphical file manager Files is intended to be very easy to use and has many features. KDE's file manager Dolphin is described as focused on usability. Prior to KDE version 4, the KDE project's standard file manager was Konqueror, which was also designed for ease of use.
Both GNOME and KDE come with many graphical configuration tools, reducing the need to manually edit configuration files for new users. They have extensive bundled software such as graphical menu editors, text editors, audio players, and software for doing administrative work. All applications installed in most distributions are automatically added to the GNOME and KDE menus. No major configuration changes are necessary to begin working. However, by using graphical tools, the extent to which the desktops can be configured is determined by the power provided by those tools.

Compatibility and interoperability issues

Some desktop environments and window managers claim that they support applications made for other desktop environments explicitly. For example, Fluxbox states KDE support in its feature list. Using software made specifically for the desktop environment in use or window manager agnostic software is a way to avoid issues. For software developers, the Portland Project has released a set of common interfaces that allows applications to integrate across many desktop environments.

System resources utilization

A 2011 test by Phoronix with the default installation of Ubuntu 10.04 showed that LXDE 0.5's memory utilization was lower than that of Xfce 4.6, which in turn was lower than that of GNOME 2.29, with KDE 4.4 using the most RAM compared to the aforementioned desktops.
In 2015, it was demonstrated in benchmarks that LXDE performed slightly faster than Xfce overall, using the Fedora Linux operating system.