GNOME


GNOME is a free and open-source desktop environment for Linux and other Unix-like operating systems. It is distributed as the default desktop environment of many major Linux distributions, including Debian, Fedora Linux, Ubuntu, Red Hat Enterprise Linux, and SUSE Linux Enterprise, and is the default in Oracle Solaris, a Unix operating system.
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 frameworks for software development, to program end-user applications based on these frameworks, and to coordinate efforts for the internationalization, localization, and accessibility of that software.
In 2023 and 2024, GNOME received €1,000,000 from Germany's Sovereign Tech Fund.

Interface design

Since GNOME 2, productivity has been a key focus for GNOME. To meet this end, the GNOME Human Interface Guidelines were created. All GNOME programs share a coherent style of interfaces but are not limited to the employment of the same GUI widgets. Rather, the design of the GNOME's interface is guided by concepts described in the GNOME Human Interface Guidelines, itself relying on insights from cognitive ergonomics. Following the GNOME Human Interface Guidelines, developers can create high-quality, consistent, and usable GUI programs, as it addresses everything from interface design to the recommended pixel-based layout of widgets. However, critics have complained about GNOME ignoring traditional user interface conventions, and the wasting of screen real estate.
During the GNOME 2 rewrite, many settings deemed of little value to the majority of users were removed. The guiding principle was outlined by Havoc Pennington – a software developer involved in the project – who emphasized the idea that it is better to make software behave correctly by default than to add a UI preference to get the desired behavior:

Features

Accessibility

GNOME aims to make and keep the desktop environment physically and cognitively ergonomic for people with disabilities. The GNOME Human Interface Guidelines try to take this into account as far as possible but specific issues are solved by special software.
GNOME addresses computer accessibility issues by using the Accessibility Toolkit application programming interface, which allows enhancing user experience by using special input methods and speech synthesis and speech recognition software. Particular utilities are registered with ATK using Assistive Technology Service Provider Interface, and become globally used throughout the desktop. Several assistive technology providers, including Orca screen reader and Dasher input method, were developed specifically for use with GNOME.

Internationalization and localization

The internationalization and localization of GNOME software relies on locale, and supports 197 languages with varying levels of completion, with some not being translated at all.

Session types

GNOME Shell

is the main graphical shell of GNOME. It features a top bar holding an Overview button, 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 bottom houses shortcuts to favorite applications, currently 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 viewing and switching between workspaces is directly above it. Notifications appear from the top of the shell.

GNOME Classic

Beginning with GNOME 3.8, GNOME provides a suite of officially supported GNOME Shell extensions that provide an Applications menu and a "Places menu" on the top bar and a panel with a windows list at the bottom of the screen that lets users quickly minimize and restore open windows, a "Show Desktop" button in the bottom left corner, and virtual desktops in the bottom right corner. GNOME Classic also adds the minimize and maximize buttons to window headers.

GNOME Flashback

GNOME Flashback is an official session for GNOME 3. Based on GNOME Panel and Metacity, it has lower hardware requirements and uses less system resources than GNOME Shell. It provides a traditional and highly customizable taskbar with many plug-ins bundled in one package, including a customizable start menu. It provides a similar user experience to the GNOME 2.x series and has customization capacities built in.
GNOME Flashback consists of the following components:
  • Metacity
  • GNOME Panel – a highly configurable taskbar
  • – a collection of useful applets for the GNOME Panel

    GNOME Mobile

GNOME Mobile is a set of patches on top of the GNOME stack, that make GNOME suitable for mobile phones and touch devices. A core component enabling this adaptability is libadwaita, a GTK-based library that provides consistent, adaptive UI components and widgets for GNOME applications, which ensures a cohesive design language across platforms.
GNOME Mobile is available as a desktop environment in PostmarketOS.

Applications

Core Applications

There are a large number of GTK-based programs written by various authors. Since the release of GNOME 3.0, 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 Human Interface Guidelines as well as the tight integration with underlying GNOME layers like e.g. GVfs and also with one another e.g. GOA settings and GNOME Files with Google Drive and GNOME Photos with Google Photos. Some programs are simply existing programs with a new name and revamped user interface, while others have been written from scratch.

Development tools

The GNOME project provides a suite of software development tools to facilitate the creation of GNOME software. These tools are designed to streamline the development process for the GNOME ecosystem.
  1. Integrated Development Environments :
  2. * GNOME Builder: The official IDE developed by the GNOME project, replacing the older Anjuta IDE.
  3. User interface design:
  4. * Cambalache Interface Designer: A Rapid Application Development IDE for GTK 3 and GTK 4, serving as the successor to the Glade Interface Designer.
  5. Debugging and Documentation Tools:
  6. * GTK Inspector: Shipped with GTK, this tool allows developers to inspect the widget tree of an application for debugging purposes.
  7. * Devhelp: A GNOME utility for browsing and searching API documentation.
  8. Libraries and Frameworks:
  9. * libsoup: A library that enables GNOME applications to access HTTP servers.
  10. * BuildStream: A flexible, extensible framework written in Python for modeling build and CI pipelines using a declarative YAML format.
  11. Third-Party Integration:
  12. * The GNOME ecosystem supports integration options for third-party development tools, expanding the possibilities for developers.
These tools collectively provide a comprehensive development environment for creating software that aligns with the GNOME desktop and its design principles.

GNOME Circle

is a collection of applications which have been built to extend the GNOME platform, utilize GNOME technologies, and follow the GNOME human interface guidelines.

History

GNOME 1

GNOME was started on 15 August 1997 by Miguel de Icaza and as a free software project to develop a desktop environment and applications for it. It was founded in part because the K Desktop Environment, which was growing in popularity, relied on the Qt widget toolkit which used a proprietary software license until version 2.0. In place of Qt, GTK was chosen as the base of GNOME. GTK is licensed under the GNU Lesser General Public License, a free software license that allows software linking to it to use a much wider set of licenses, including proprietary software licenses. GNOME itself is licensed under the LGPL for its libraries and the GNU General Public License for its applications.
GNOME was formerly a part of the GNU Project, but that is no longer the case. In 2021, GNOME Executive Director Neil McGovern publicly tweeted that GNOME was not a GNU project and that he had been asking GNU to remove GNOME from their list of packages since 2019. In 2021, GNOME was removed from the list. GNOME proceeded to remove mentions of any link to GNU from their code and documentation. The name "GNOME" was initially an acronym for GNU Network Object Model Environment, referring to the original intention of creating a distributed object framework similar to Microsoft's OLE, but the acronym was eventually dropped because it no longer reflected the vision of the GNOME project.
The California startup Eazel developed the Nautilus file manager from 1999 to 2001. De Icaza and Nat Friedman founded Helix Code in 1999 in Massachusetts; this company developed GNOME's infrastructure and applications and was purchased by Novell in 2003.
During the transition to GNOME 2 and shortly thereafter, there were brief talks about creating a GNOME Office suite. On 15 September 2003 GNOME-Office 1.0, consisting of AbiWord 2.0, GNOME-DB 1.0, and Gnumeric 1.2.0, was released. Although some release planning for GNOME Office 1.2 was happening on the gnome-office mailing list, and Gnumeric 1.4 was announced as a part of it, the 1.2 release of the suite itself never materialized., the GNOME wiki only mentions "GNOME/GTK applications that are useful in an office environment".