A desktop environment (DE) is an implementation of the desktop metaphor made of a bundle of programs running on top of a computer operating system, which share a common graphical user interface (GUI). The desktop environment was seen mostly on personal computers until the rise of mobile computing. Desktop GUIs help the user to easily access and edit files, while they usually do not provide access to all of the features found in the underlying operating system. Instead, the traditional command-line interface (CLI) is still used when full control over the operating system is required.
GNOME is a desktop environment that is composed entirely of free and open-source software. GNOME was originally an acronym for GNU Network Object Model Environment. Its target operating system is Linux, but it is also supported on most derivatives of BSD.
GNOME is developed by The GNOME Project, which is composed of both volunteers and paid contributors, the largest corporate contributor being Red Hat. It is an international project that aims to develop software frameworks for the development of software, to program end-user applications based on these frameworks, and to coordinate efforts for internationalization and localization and accessibility of that software.
GNOME is part of the GNU Project.
Since GNOME 2, productivity has been a key focus for GNOME. To this end, the GNOME Human Interface Guidelines (HIG) were created. All GNOME programs share a coherent style of graphical user interface (GUI), but is not limited to the employment of the same GUI widgets. Rather, the design of the GNOME GUI is guided by concepts described in the GNOME HIG, itself relying on insights from cognitive ergonomics. Following the HIG, developers can create high-quality, consistent, and usable GUI programs, as it addresses everything from GUI design to recommended pixel-based layout of widgets.
The GNOME desktop environment does not consists solely out of the graphical control element library GTK+ and the core application making use of it. There are quite a couple of additional software packages that make up the GNOME desktop environment. E.g.
- GNOME Display Manager (GDM), which manages user sessions, X and Wayland alike.
- There is Tracker, file indexing and file search framework, which is heavily integrated into GNOME Shell and GNOME Files.
- GVfs, an abstraction layer framework for file systems, well integrated into GNOME Files and GNOME Disks.
- dconf a front-end for GSettings.
- Mutter, the Wayland compositor and X Windows Manager
GNOME Shell is the official user interface of the GNOME desktop environment. It features a top bar holding (from left to right) an Activities button, an application menu, a clock and an integrated system status menu. The application menu displays the name of the application in focus and provides access to functions such as accessing the application’s preferences, closing the application, or creating a new application window. The status menu holds various system status indicators, shortcuts to system settings, and session actions including logging out, switching users, locking the screen, and suspending the computer.
Clicking on the Activities button, moving the mouse to the top-left hot corner or pressing the Super key brings up the Overview. The Overview gives users an overview of current activities and provides a way to switch between windows and workspaces and to launch applications. The Dash on the left houses shortcuts to favorite applications and open windows and an application picker button to show a list of all installed applications. A search bar appears at the top and a workspace list for switching between workspaces is on the right. Notifications appear from the bottom of the screen.
GNOME runs on the X Window System and as of GNOME 3.10 also on Wayland. Versions of GNOME are available in most Linux distributions either as the default desktop environment or as an installable option and also in the ports collections of most BSDs.
In May 2011 Lennart Poettering proposed systemd as a GNOME dependency. As systemd is available only on Linux, the proposal led to a discussion of possibly dropping support for other platforms in future GNOME releases.
There are countless GTK+- and Clutter-based programs written by various authors. Since the release of GNOME 3.0, The GNOME Project concentrates on developing a set of programs that accounts for the GNOME Core Applications. The commonalities of the GNOME Core Applications are the adherence to the current GNOME HUD guidelines as well as the tight integration with underlying GNOME layers.
Each of the component software products in the GNOME project has its own version number and release schedule. However, individual module maintainers coordinate their efforts to create a full GNOME stable release on an approximately six-month schedule. Some experimental projects are excluded from these releases.