A European Informational Website
learn more
GNOME is an international effort within the GNU Project to build an eponymous desktop environment entirely out of free software. GNOME is used mainly on the operating systems Linux and Solaris.
The name is an acronym for GNU Network Object Model Environment, and is officially pronounced (with a hard G), but also, more popularly, (as in "garden gnome").
The GNOME project puts heavy emphasis on simplicity, usability, and making things “just work”. The other aims of the project are:
GNOME was launched by the GNU project in August 1997 in response to licensing concerns over software used by KDE, a free software desktop environment that relies on the Qt widget toolkit. At the time, Qt did not use a free software license and members of the GNU project became concerned about the use of such a toolkit for building a free software desktop and applications. Two projects were started: the Harmony toolkit, to create a free replacement for the Qt libraries, and GNOME to create a new desktop without Qt and built entirely on top of free software.[1] The initial project leaders for GNOME were Miguel de Icaza and Federico Mena.
In place of the Qt toolkit, GTK+ was chosen as the base of the GNOME desktop. GTK+ uses the GNU Lesser General Public License (LGPL), a free software license that allows software linking to it, such as applications written for GNOME, to use a much wider set of licenses, including proprietary software licenses.[2] The GNOME desktop itself is licensed under the LGPL for its libraries, and the GPL for applications that are part of the GNOME project itself. While Qt is dual-licensed under both the QPL and the GPL, the freedom to link proprietary software with GTK+ at no charge makes it differ from Qt.
The name “GNOME” was proposed as an acronym of GNU Network Object Model Environment by Elliot Lee, one of the authors of ORBit and the Object Activation Framework. It refers to GNOME’s original intention of creating a distributed object framework similar to Microsoft’s OLE.[3] This no longer reflects the core vision of the GNOME project, and the full expansion of the name is now considered obsolete. As such, some members of the project advocate dropping the acronym and re-naming “GNOME” to “Gnome”.[4]
As with most free software projects, the GNOME project is loosely managed. Discussion chiefly occurs on a number of public mailing lists.[5]
In August 2000 the GNOME Foundation was set up to deal with administrative tasks, press interest and to act as a contact point for companies interested in developing GNOME software. While not directly involved in technical decisions, the Foundation does coordinate releases and decide which projects will be part of GNOME. Membership is open to anyone who has made a non-trivial contribution to the project.[6] Members of the Foundation elect a board of directors every November, and candidates for the positions must be members themselves.
Developers and users of GNOME gather at an annual meeting known as GUADEC in order to discuss the current state of the project and its future direction.[7]
Originally designed for Linux, GNOME now runs on most Unix-like systems and in particular has been adopted by Sun Microsystems as part of Java Desktop System, replacing the Common Desktop Environment on their Solaris platform. It is the default desktop environment for many modern desktop Linux distributions, including Debian, Fedora Core and Ubuntu. A list of Linux distributions that include GNOME is maintained on the GNOME website.[8]
An official GNOME LiveCD, which allows a computer to boot directly from a Compact Disc without removing or changing existing operating systems, is available for download from the GNOME website.[9]
Many GNOME components have been ported to Cygwin, allowing GNOME applications to run on Microsoft Windows.
GNOME is built from a large number of different projects. A few of the major ones are listed below:
A number of language bindings are available allowing applications to be written in a variety of programming languages, such as C++ (gtkmm), Java (Java-GNOME), Ruby (ruby-gnome2), C# (Gtk#), Python (PyGTK), Perl (gtk2-perl) and many others. The only languages currently used in applications that are part of an official GNOME desktop release are C, C# and Python.[10]
GNOME is designed around the traditional computing desktop metaphor. Its handling of windows, applications and files is similar to that of contemporary desktop operating systems. In its default configuration, the desktop has a launcher menu for quick access to installed programs and file locations; open windows may be accessed by a taskbar along the bottom of the screen and the top-right corner features a notification area for programs to display notices while running in the background. However these features can be moved to almost anywhere the user desires, replaced with other functions or removed altogether.
The appearance of GNOME can be changed by the use of themes, which are sets consisting of an icon set, window manager border and GTK+ theme engine and parameters. Popular GTK+ themes include Bluecurve and Clearlooks (the current default theme).
GNOME puts emphasis on being easy for everyone to use. The HIG helps guide developers in producing applications which look and behave similarly, in order to provide a cohesive GNOME interface.
Since GNOME v2.0, a key focus of the project has been usability. As a part of this, the GNOME Human Interface Guidelines (HIG) were created, which is an extensive guide for creating quality, consistent and usable GUI programs, covering everything from GUI design to recommended pixel-based layout of widgets.
From the GNOME HIG introduction:[11]
During the v2.0 rewrite, many settings were deemed to be of little or no value to the majority of users and were removed. For instance, the preferences section of the Panel were reduced from a dialog of six tabs to one with two tabs. Havoc Pennington summarized the usability work in his 2002 essay "Free Software UI", emphasizing the idea, that all preferences have a cost, and it's better to "unbreak the software" than to add a UI preference to do that:[12]
This less-is-more design methodology is not without detractors, one of them being Linus Torvalds, creator of the Linux kernel, who commented in a usability-related discussion on the GNOME mailing list:[13]
Freedesktop.org is a project to assist interoperability and shared technology between the different X Window desktops such as GNOME, KDE or Xfce. Although it is not a formal standards organization, Freedesktop.org defines certain basic features of an X Desktop, including drag and drop between applications, window manager specifications, menu layouts, recent files lists, copy and pasting between applications and a shared MIME type database, among other things. Following Freedesktop.org specifications allows GNOME applications to appear more integrated into other desktops (and vice versa), and encourages cooperation as well as competition.
Examples of technologies originated at Freedesktop.org which now form part of GNOME’s core technology set include:
These initiatives aim to allow users and developers to choose the technologies and applications they like regardless of which desktop environment they use.
Along with those applications bundled with the desktop, a large amount of other applications have been developed for use in GNOME. See List of GNOME applications for a more complete list.
The following selection of applications typically supplied as part of a GNOME release:
The following is a selection of applications that use technology from the GNOME project and are likely to be used on an average GNOME desktop:
Each of the parts making up 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 a roughly six-month schedule. The releases listed in the table below are classed as stable. Unstable releases for testers and developers are not listed, nor are bugfix releases for individual modules.
GNOME releases are made to the ftp.gnome.org FTP server[14] in the form of source code with configure scripts, which are compiled by operating system vendors and integrated with the rest of their systems before distribution. Most vendors use only stable and tested versions of GNOME, and provide it in the form of easily installed, pre-compiled packages. The source code of every stable and development version of GNOME is stored in the GNOME Subversion source code repository.[15]
The process of downloading the source code, compiling and installing the entire GNOME desktop manually is a laborious and time-consuming process, and a number of build-scripts (such as JHBuild or GARNOME) can be used to automate it.
There are many sub-projects under the umbrella of the GNOME project, and not all of them are currently included in GNOME releases. Some are considered purely experimental concepts, or for testing ideas that will one day migrate into stable GNOME applications; others are code that is being polished for direct inclusion. Some examples include: