GNOME (pronounced /ˈnoʊm/ or /ɡəˈnoʊm/) is a desktop environment and graphical user interface that runs on top of a computer operating system. It is composed entirely of free and open source software. It is an international project that includes creating software development frameworks, selecting application software for the desktop, and working on the programs that manage application launching, file handling, and window and task management.
In 1996, the KDE project was started. KDE itself was free and open source from the start, but members of the GNU project were concerned with KDE's dependence on the (then) non-GPL Qt widget toolkit, owned by Trolltech. In August 1997, two projects were started in response to this issue: the Harmony toolkit, a free replacement for the Qt libraries, and GNOME, a different desktop not using Qt but built on GTK+ licensed under the GNU Lesser General Public License (LGPL), a free software license that allows GPL-incompatible software to link to it. The GNOME desktop itself is licensed under the LGPL for its libraries, and the GPL for applications that are part of the GNOME project. Having the toolkit and libraries under the LGPL allowed applications written for GNOME to use a much wider set of licenses (including proprietary software licenses). The initial project leaders and founders for GNOME were two Mexican programmers Miguel de Icaza and Federico Mena.
In 2000, Qt was made available under the GNU GPL terms. Trolltech offered dual-licensing under both QPL terms and GNU GPL terms and granted exceptions to other specific licenses like the Apache License. Qt's GNU GPL-derived license, however, continued to restrict linking Qt with arbitrary proprietary software at no charge; GTK+'s LGPL license did not impose this restriction and differentiated it from Qt. At the end of 2000, the Harmony Project ceased, as KDE no longer depended on non-GPL software; the development of GNOME continues (as of 2011). In March 2009, after Trolltech was bought by Nokia, Qt 4.5 was released and added an LGPL licensing as a third option.
The California startup Eazel developed the Nautilus file manager from 1999 to 2001. De Icaza and Nat Friedman founded Helix Code (later Ximian) in 1999 in Massachusetts. The company developed GNOME's infrastructure and applications, and in 2003 was purchased by Novell.
The name “GNOME” is an acronym of GNU Network Object Model Environment. It refers to GNOME’s original intention of creating a distributed object framework similar to Microsoft’s OLE. 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".
In May 2011 Lennart Poettering proposed systemd as a dependency for further releases of GNOME. As systemd is available only on Linux, the proposal lead to discussion of possibility to drop other platforms support in future GNOME releases. While some met the proposal with criticism others evolved the idea to GNOME Operating System on top of Linux kernel.
While the discussion on mailing list ended with no conclusive result, the GNOME 3.2 Release Notes state that systemd will be used in GNOME 3.4 release.
As with most free software projects, the GNOME project is loosely-managed. Discussion chiefly occurs on a number of public mailing lists.
In August 2000, the GNOME Foundation was set up to deal with administrative tasks and 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. 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 to discuss the current state of the project and its future direction.
GNOME often incorporates standards from freedesktop.org to allow GNOME applications to better interoperate with other desktops, encouraging both cooperation and competition.
The GNOME project provides two things: The GNOME desktop environment, an intuitive and attractive desktop for users, and the GNOME development platform, an extensive framework for building applications that integrate into the rest of the desktop and mobile user interface.
Freedom—to create a desktop environment with readily-available source code for re-use under a free software license.
Accessibility—to ensure the desktop can be used by anyone, regardless of technical skill or physical circumstances.
Internationalization and localization—to make the desktop available in many languages. At the moment, GNOME is being translated to 161 languages.
Developer-friendliness—to ensure ease of writing software that integrates smoothly with the desktop, and allow developers a free choice of programming language.
Organization—to adhere to a regular release cycle and maintain a disciplined community structure.
Support—to ensure backing from other institutions beyond the GNOME community.
Up until GNOME 3.x was released, GNOME was 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 any position or orientation the user desires, replaced with other functions or removed altogether.
GNOME 2.x uses Metacity as its default window manager. Users can change the appearance of their desktop through the use of themes, which are bundles of an icon set, window manager border and GTK+ theme engine and parameters. Popular GTK+ themes include Bluecurve and Clearlooks. The current default theme is Adwaita.
With the release of GNOME 3.0, the traditional computer desktop metaphor was abandoned in favor of a user interface where switching between tasks and workspaces takes place in a separate interface. Icons and menus, both staples of traditional interface design, are noticeably absent from the GNOME Shell UI, as they were deemed by the developers to be no longer relevant to the GNOME desktop.
The HIG helps developers to produce applications that look and behave similarly, which provides a cohesive GNOME interface and enables customization using themes.
Since GNOME 2.0, a key focus of the project has been usability. To this end, the GNOME Human Interface Guidelines (HIG) were created. Following the guide, developers can create high-quality, consistent, and usable GUI programs, as it addresses everything from GUI design to recommended pixel-based layout of widgets.
A traditional free software application is configurable so that it has the union of all features anyone's ever seen in any equivalent application on any other historical platform. Or even configurable to be the union of all applications that anyone's ever seen on any historical platform (Emacs *cough*). Does this hurt anything? Yes it does. It turns out that preferences have a cost. Of course, some preferences also have important benefits - and can be crucial interface features. But each one has a price, and you have to carefully consider its value. Many users and developers don't understand this, and end up with a lot of cost and little value for their preferences dollar.
With the release of GNOME 3.0 and its abandonment of the traditional desktop metaphor, considerable controversy was stirred among both Linux users and developers about its usability. Among these is Linus Torvalds, the creator of Linux and a routine user of GNOME before abandoning it at the release of GNOME 3.0. Torvalds criticized GNOME 3.0 by stating, "The developers have apparently decided that it's 'too complicated' to actually do real work on your desktop, and have decided to make it really annoying to do." Torvalds cited specific usability problems he pointedly summarized as "crazy crap," and the "'head up the arse' behavior" of Gnome 3.0. Torvalds stated that his objections were universally held by the varied Linux developers he knew.
Other Linux users and developers have added to Torvald's criticism of GNOME 3.0. Stephen Ewen, lead developer for UberStudent, a Linux distribution for higher education and secondary students and schools, has cited examples demonstrating that GNOME 3.0 is a "hindrance" to student academic computing productivity. He further argued that the usability issues of GNOME 3.0 compared to its prior version placed much of the Linux desktop world into what he described as a "crisis." He stated that this was brought on because GNOME's developers had "become personally enthralled with Apple Macs." Ewen added that the enthrallment "has led to a major shift in overall Linux strategy, one that chooses to take on Apple and its encroachment into Microsoft dominance rather than Microsoft dominance itself." He concluded by urging a refocus away from Apple and back toward Microsoft, and by expressing his hope that the issue would self-correct over time due to Linux's free and open source nature.
In responding to some of these criticisms, GNOME designer William Jon McCann responded in an interview by saying that "people are not making it up and it may indeed not be what they like", stating that "there are a lot of different products out there that may fit their way of working better." However, he also reminded them that "this isn't the first time we have encountered such reactions", adding that "many of the same people who are now claiming that GNOME2 was such a great thing for them were some of the most vocal opponents of the things we did in GNOME2." He also commented that some "feedback is certainly valid and we are going to use that to make informed decisions in the GNOME3 cycle", stressing that GNOME 3 is still early in development and that it took "eight, nine years to get to where GNOME2 ended up and we've had like four months of GNOME3."
GNOME 3 also features a more traditional GNOME Panel interface available as a "Fallback Mode" in situations where the GNOME Shell can not launch due to a computer not meeting its higher hardware demands such as compositing and further desktop effects, although it can also be toggled to be activated by the user. The Fallback mode has most of the same features as the old GNOME Panel, including the placement of applets and the ability to move them around panels, although the mechanism for doing this has been slightly altered. GNOME developer Vincent Untz has stated that, while he prefers the default interface, users who do not appreciate the Shell may be more at home in the Fallback mode. Both the GNOME Shell and the Fallback mode can also be further customized through the use of the "Gnome Tweak Tool", allowing users to regain a traditional desktop, change themes and fonts, and change various settings that are normally unavailable in an effort to regain a more traditional desktop.
Reactions to GNOME Shell have also not been universally negative. Scott Gilbertson of The Register commented in his review of Fedora 15, one of the first distributions to ship GNOME 3, that while there is "no question that GNOME 3 will be something of a shock for those accustomed to working with the GNOME 2.x line", that the new interface in the end "really does feel like a vast improvement over GNOME 2." Supporting his argument, he commented that one of the Shell's greatest strengths is "that it doesn't look like a cheap knock-off of Windows". Gilbertson concludes that the "result is a cleaner interface, to be sure, but one that's also very different from most OS designs."
GNOME relies upon a large number of different projects.
GConf – for storing application settings (GSettings in GNOME 3).
GVFS – a virtual file system.
GNOME Keyring – backend for storing encryption keys and security information. Seahorse is a common frontend.
GNOME Translation Project – for translating documentation and applications into different languages.
GTK+ – a widget toolkit used for constructing graphical applications. The use of GTK+ as the base widget toolkit allows GNOME to benefit from certain features such as theming (the ability to change the look of an application) and smooth anti-aliased graphics. Sub-projects of GTK+ provide object-oriented programming support (GObject), extensive support of international character sets and text layout (Pango) and accessibility (ATK). GTK+ reduces the amount of work required to port GNOME applications to other platforms such as Windows and Mac OS X.
Human interface guidelines (HIG) – research and documentation on building easy-to-use GNOME applications.
LibXML – an XML library.
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), Tcl (Gnocl) and many others. The only languages currently used in applications that are part of an official GNOME desktop release are C, C++, C#, Python and Vala.
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.
GNOME releases are made to the main FTP server 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 Git source code repository.
A number of build-scripts (such as Jhbuild or GARNOME) are available to help automate the process of compiling the source code.
GNOME is the default desktop environment for several Linux distributions, see Comparison of Linux distributions for details.
The previous release was version 2.32, which was released in September 2010. It included improvements to the Empathy IM client, Evince, and the Nautilus file manager. It also added Rygel and GNOME Color Manager.
Version 2.32 was the last major release planned before version 3.0.
Tests reveal that GNOME 2 (version 2.29) has lower memory utilization compared to KDE 4.4, but higher than Xfce 4.6 and LXDE 0.5 (which are also based on GTK+ like GNOME).
Version 3.0 of the desktop environment was released on April 6, 2011. It was announced at the July 2008 GUADEC conference in Istanbul. The code name ToPaZ (standing for Three Point Zero) was introduced around 2005 and for a long time was only a playground for vague ideas. Quite a few mock-ups were created as part of several ToPaZ brainstorming processes.
Though the philosophy around GNOME mandates that changes are incremental, the desktop received a major overhaul with the GNOME Shell.
Version 3.2 was released on September 28, 2011 and is currently the latest version of the Gnome desktop.
June 2002 Major upgrade based on GTK2. Introduction of the Human Interface Guidelines.
February 2003 Multimedia and file manager improvements.
September 2003 "Temujin": Epiphany, accessibility support.
March 2004 Nautilus changes to a spatial file manager, and a new GTK+ file dialog is introduced. A short-lived fork of GNOME, GoneME, is created as a response to the changes in this version.
September 2004 Improved removable device support, adds Evolution.
March 2005 Lower memory requirements and performance improvements. Adds: new panel applets (modem control, drive mounter and trashcan); and the Totem and Sound Juicer applications.
September 2005 Nautilus improvements; improvements in cut/paste between applications and freedesktop.org integration. Adds: Evince PDF viewer; New default theme: Clearlooks; menu editor; keyring manager and admin tools. Based on GTK+ 2.8 with cairo support.
March 2006 Performance improvements (over 100% in some cases); usability improvements in user preferences; GStreamer 0.10 multimedia framework. Adds: Ekiga video conferencing application; Deskbar search tool; Pessulus lockdown editor; Fast user switching; Sabayon system administration tool.
September 2006 Performance improvements. Adds: Tomboy notetaking application; Baobab disk usage analyser; Orca screen reader; GNOME Power Manager (improving laptop battery life); improvements to Totem, Nautilus; compositing support for Metacity; new icon theme. Based on GTK+ 2.10 with new print dialog.
March 2007 Performance improvements. Adds: Seahorse GPG security application, allowing encryption of emails and local files; Baobab disk usage analyser improved to support ring chart view; Orca screen reader; improvements to Evince, Epiphany and GNOME Power Manager, Volume control; two new games, GNOME Sudoku and glchess. MP3 and AAC audio encoding.
September 2007 Tenth anniversary release. Evolution backup functionality; improvements in Epiphany, EOG, GNOME Power Manager; password keyring management in Seahorse. Adds: PDF forms editing in Evince; integrated search in the file manager dialogs; automatic multimedia codec installer.
March 2008 Addition of Cheese, a tool for taking photos from webcams and Remote Desktop Viewer; basic window compositing support in Metacity; introduction of GVFS; improved playback support for DVDs and YouTube, MythTV support in Totem; internationalised clock applet; Google Calendar support and message tagging in Evolution; improvements in Evince, Tomboy, Sound Juicer and Calculator.
September 2008 Addition of the Empathy instant messenger, Ekiga 3.0, tabbed browsing in Nautilus, better multiple screens support and improved digital TV support.
March 2009 New Disc Burning application Brasero, simpler file sharing, media player improvements, support for multiple monitors and fingerprint reader support.
September 2009 Addition of GNOME Bluetooth module. Improvements to Epiphany web browser, Empathy instant messenger, Time Tracker, and accessibility. Upgrade to GTK+ version 2.18.
March 2010 Improvements to Nautilus file manager, Empathy IM client, Tomboy, Evince, Time Tracker, Epiphany, and Vinagre. iPod and iPod Touch devices are now partially supported via gvfs through libimobiledevice. Uses GTK+ 2.20.
September 2010 Addition of Rygel and GNOME Color Manager. Improvements to Empathy IM client, Evince, Nautilus file manager and others. 3.0 was intended to be released in September 2010, so a large part of the development effort since 2.30 went towards 3.0.
April 2011 Introduction of GNOME Shell. A redesigned settings framework with fewer, more focused options. Topic-oriented help based on the Mallard markup language. Side-by-side window tiling. A new visual theme and default font. Adoption of GTK+ 3.0 with its improved language bindings, theming, touch, and multiplatform support. Removal of long-deprecated development APIs.
September 2011 Online Accounts support. Web Applications support. Contacts manager. Documents and Files manager. Quick Preview of Files in the File Manager. Greater Integration. Better documentation. Enhanced looks and Various performance improvements.