|In graphical computing, a desktop environment (DE) commonly refers to a style of graphical user interface (GUI) derived from the desktop metaphor that is seen on most modern personal computers. This article provides a general overview of popular desktop environments.|
The Xorg project provides a free software implementation of the X Window System – the foundation for a graphical user interface. Desktop environments such as LXQt, Openbox/KDE, Cinnamon, MATE, Xfce, GNOME, Deepin provide a complete graphical environment. Various window managers offer alternative and novel environments, and may be used standalone to conserve system resources. Display managers provide a graphical login prompt.
|Wikipedia:X Window System|
Desktop environments provide a complete graphical user interface (GUI) for a system by bundling together a variety of X clients written using a common widget toolkit and set of libraries.
1 X Window System
- X provides the basic framework, or primitives, for building such GUI environments: drawing and moving windows on the screen and interacting with a mouse and keyboard. X does not mandate the user interface — individual client programs known as window managers handle this. As such, the visual styling of X-based environments varies greatly; different programs may present radically different interfaces. X is built as an additional (application) abstraction layer on top of the operating system kernel.
The user is free to configure their GUI environment in any number of ways. Desktop environments simply provide a complete and convenient means of accomplishing this task.
2 Desktop environments
A desktop environment bundles together a variety of X clients to provide common graphical user interface elements such as icons, windows, toolbars, wallpapers, and desktop widgets. Additionally, most desktop environments include a set of integrated applications and utilities.
Note that users are free to mix-and-match applications from multiple desktop environments. For example, a KDE user may install and run GNOME applications such as the Epiphany web browser, should he/she prefer it over KDE's Konqueror web browser. One drawback of this approach is that many applications provided by desktop environment projects rely heavily upon their DE's respective underlying libraries. As a result, installing applications from a range of desktop environments will require installation of a larger number of dependencies. Users seeking to conserve disk space and avoid software bloat often avoid such mixed environments, or look into lightweight alternatives.
2.1 List and comparison of desktop environments
This section attempts to draw a comparison between popular desktop environments. Note that first-hand experience is the only effective way to truly evaluate whether a desktop environment best suits your needs.
|Name||First release date||Last stable release date||Programming language||Graphical toolkit||License||Notes|
|Enlightenment (E)||1997||2018-03-15||C||EFL||BSD license||Complete environment including centralized configuration of most settings.|
|Equinox Desktop Environment (EDE)||2003-01-06||2014-06-21||C++||FLTK||GPL, LGPL||Seldom used environment, has seen little activity in recent years.|
|Étoilé||2006-02-22||2012-04-11||Objective-C||GNUstep||MIT, BSD license||Has seen little activity for several years, the last journal entry having been in 2014.|
|KDE Plasma 5 (KDE5, KDE Plasma Workspaces, formerly K Desktop Environment or simply KDE)||1998-07-12||2018-10-09||C++, QML||Qt||LGPL||KDE has a strong and enthusiastic following, despite a reputation for being resource-intensive. The project is largely community-centric, and encompass many other applications and frameworks, many built specifically for KDE.|
|LXDE (Lightweight X11 Desktop Environment)||2006||2016-11-21||C||GTK+||GPL, LGPL||LXDE, with its low resource footprint, is a favorite among developers of lighter-weight Linux distributions (Lubuntu, Lite, LXLE, PepperMint, Sparky, etc.).|
|LXQt||2014-05-07||2018-05-21||C, C++||Qt||GPL, LGPL||merged from LXDE-Qt experiment and Razor-qt|
|MATE||2011-08-19||2019-03-18||C, C++, Python||GTK+||LGPL, GPL||Revival 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.|
|Pantheon||2011 (?)||2018-10-16 (?)||Vala||GTK+||GPL|
|Razor-qt||2010||2013-01-12||C++||Qt||GPL||merged into LXQt|
|ROX Desktop||2000 (?)||2011-10-09||C, Python||GTK+||GPL|
|Trinity Desktop Environment (TDE)||2010-04-29||2018-08-18||C++||Qt||GPL (and other)||forked from KDE 3.x Intentionally with a Win-XP look.|
|Unity||2010-06-09||2016-05-25||C, C++, Python, Vala, QML||GTK+||GPL, LGPL||Developed by Canonical for Ubuntu as an alternative graphical shell to GNOME 3's "GNOME Shell". Designed with "convergence" in mind, it was discontinued by Canonical in early 2017, but its development was continued by the community.|
|Xfce||1996||2015-02-28||C||GTK+||GPL, LGPL, BSD license||XFCE is often used in lightweight distributions targeting lower-end hardware.|
2.1.1 Programs provided by some desktop environments
2.1.2 Resource useage and battery life
In terms of system resources, GNOME and KDE are expensive desktop environments. Not only do they consume more disk space than lightweight alternatives, but also more CPU and memory resources while in use, which will exhaust the battery power on portable computers more quickly. This is because GNOME and KDE are relatively full-featured: they provide the most complete and well-integrated environments.
E17 and LXDE,on the other hand, are light-weight desktop environments. They are designed to perform well, even on older computers and less-powerful hardware (SBCs, for example) and generally consume fewer system resources (and battery charge) while in use. This is achieved by cutting back on extra features, such as compositing (or desktop effects); which some would term bloat.
There are other middle-weight desktop environments that fall somewhere in between those broad classes described above, such as XFCE and LXQT.
3 Custom environments
Desktop environments represent the simplest means of installing a complete graphical environment. However, users are free to build and customize their graphical environment in any number of ways should none of the popular desktop environments meet their requirements. Generally, building a custom environment involves selection of a suitable Window Manager and a number of Lightweight Applications (a minimalist selection usually includes a terminal emulator, file manager, and text editor).
Tables and a little-bit of information taken from Wikipedia.