GNOME − The GNU Network Object Model Environment




The gnome-session program launches and initializes the GNOME desktop environment. This program is usually executed from your X initialization file. If your system is configured to use gdm (the GNOME display and login manager) you can start your GNOME session by selecting the Gnome login profile.

If the special WINDOW_MANAGER environment variable is set, the gnome-session system will use that as the session window manager. Otherwise it will default to your system’s configured window manager.

GNOME is a collection of libraries and applications. A collection of these form the GNOME Desktop: an easy to use, yet powerful desktop environment for Unix systems. You can find up to date information about GNOME in You can find more information about the GNU project in

From a user’s point of view, the GNOME desktop consists of a desktop metaphor, a file manager and an easy way to launch applications installed on the system. Various desktop tools are provided with the GNOME desktop to take advantage of a computer system.

GNOME’s desktop metaphor allows the desktop to be used as a place to temporarily storing files, shortcuts to programs and documents. Drag and drop is an important part of the system; we have tried to make the system as intuitive as possible.

The session management in GNOME will automatically restore all of the applications you were running when you log in into the system again. With session managed applications, the user can turn off or logout from the system and when he logs in again, he will see the same desktop he had before.

GNOME supports themes that allow users to change the skin of an application: the look of applications in the GNOME desktop can be configured to look in the way that more pleases the user: it is just a few mouse-clicks away. You can choose from a wide range of GTK themes. A web site has been devoted to this:


The GNOME architecture addresses a number of problems and missing features found on Unix systems and it uses a number of components to achieve this:

This is the foundation library that provides portability functions, a collection of reusable abtract types for C programmers and a main loop abstraction. For more information see

This is the CORBA implementation used in GNOME. CORBA provides basic RPC functionality and it is the foundation for the component model and the compound document and document model systems. For more information see

This is the GUI toolkit used by GNOME. It works on Unix and Win32 systems and other ports are being worked on to lighter windowing systems. You can find more information on

The GTK+ toolkit has support for changing the apperance of application by providing support for themes and theme engines. See for a collection of readily-available themes.

The graphics library used to load, save, manipulate and render images in GNOME applications. It includes routines to do fast drawing and use a limited set of colors from low-end displays. We expect this library to be replaced soon with the more modern libart.

An imaging library used for implementing various high-quality imaging components in GNOME.

These libraries are the core libraries that provide the uniformity of the applications. They are divided in five: libgnome (for non-GUI dependant code), libgnomeui (for GUI dependant code), zvt (the xterm terminal emulator), gtk-xmhtml (an HTML rendering engine) and libgnorba that implements the CORBA object activation and registry.

This library enables programmers to create their interfaces using the Glade GUI desginer and loading at runtime the user interfaces.

The GNOME printing architecture implements a Postscript imaging model with two extensions: alpha transparency and anti-aliasing (all of this is done by using the libart_lgpl imaging library.

This library provides GNOME application with an API to load, parse and walk an XML file.

GNOME documentation is written in the Docbook SGML DTD. You can find more about this at

GNU gettext
GNOME uses the GNU gettext to allow applications to be localized for various countries and languages.

Bonobo is the GNOME architecture for creating reusable software components and compound documents. It was designed and implemented to address the needs and problems of the free-software community for developing large-scale applications.

More information can be found at

GNOME is window manager independant. This means that the GNOME desktop and the GNOME tools will work with any window manager. Window manager can optionally provide a number of features that will make the user’s desktop a more pleasant experience. The GNOME window manager hint spec is available at:


There were two projects that lead to the creation of origins of what became the GNOME project: the libapp project and the old-GNOME project. The former was a project to provide standard workstation-like services to applications. The old-GNOME project was intended to provide a component model for Unix systems. These were projects some of us had discussed but never actually implemented.

Enter KDE, a project that wanted to make Unix usable as a desktop machine. Sadly they chose the proprietary and non-free toolkit Qt as the foundation for their work. It was a giant step backwards in terms of software freedom[1].

In response, the GNOME project was started later to create a completely free desktop environment, and various early ideas were reused.

Early talks about the creation of GNOME involved some recognized free software leaders: Erik Troan and Mark Ewing of Red Hat software, Richard Stallman of the Free Software Foundation, and Peter Mattis and Spencer Kimball of the GIMP project. We launched the project after considering the various alternatives that could be tried.

The original call for developers, which included the team of programmers working on the GNU Image Manipulation Program (GIMP [GIMP]), the Guile mailing list and the free software mailing lists. This is important because the mix of people that were part of the original GNOME team had a good background on free software issues, graphics and language design.

Red Hat created the Advanced Development Laboratories division on January 1998 ( RHAD labs was initially created to help out in the development of the GNOME project.

We made releases of the GNOME source base since the beginning of the project. During the development of GNOME, the group has produced a number of libraries and components that are useful to provide integration, and consistency troughout the system.

GNOME 1.0 was released after eighteen months of development in March 1999. Updates and fixes are continously released; At the time of this writing, the GNOME 1.0 series is at version 1.0.5.

GNOME 1.0 marks the contract between GNOME developers and the user base to provide a stable API on top of which new applications can be developed. Software developers will be able to take advantage of all the functions available in the library, and they can be sure that their applications will continue to work in the future.

In May, 1999, International GNOME support was launched: a company that offers contractual support for the GNOME system founded by Nat Friedman and Miguel de Icaza.

In October, 1999 an updated version of GNOME codenamed "October GNOME" was released with many bug fixes and improvements. This new version of GNOME also included Glade and libGlade as part of the platform

In October 1999, GNOME Support became Helix Code, Inc. ( and started work on Evolution (an integrated groupware solution) and Helix GNOME (a continous updated distribution of GNOME for various operating systems).

In November 1999, Eazel was introduced to the GNOME community ( founded by Andy Hertzfeld, Bart Decrem and Mike Boich to provide a new desktop for GNOME: the Nautilus project.

Also in November, the Bonobo component system started to become used in the GNOME project, and it became the foundation for various of the most advanced GNOME projects.

In March 2000, Mathieu Lacage organized the "GNOME Users and Developers European Conference" ( in the Telecom, Paris school in Paris, France. More than a hundred GNOME hackers got together to discuss the state of GNOME and its future.

In March 2000, The GNOME Steering Committee was created to overwsee the development and deployment of GNOME 2.0

In May 2000, GNOME 1.2 codenamed "Bongo GNOME" was released to the public.


There are various mailing lists used by the GNOME project to coordinate the development of GNOME, you can subscribe to these lists by sending mail to the <listname>-request@domain address and put in the body of your message the word "subscribe".

gnome-announce-list [AT]
Where general announcements about the GNOME system are done. A good way of staying in touch with the developments of the system

gnome-list [AT]
General discussion of the GNOME system.

gnome-devel-list [AT]
Discussions on the development of the GNOME system and on writing GNOME applications.

gnome-gui-list [AT]
Discussion about user interface improvements for the GNOME system.

gnome-components-list [AT]
Discussions about Bonobo: the component and compound document architecture of GNOME.

cvs-commits-list [AT]
Used to keep track of changes to the GNOME CVS source code repository.

There are many other lists that discuss specific parts of the project, for a complete list, check


To report bugs or suggestions you would like to see in the GNOME system, please use the command gnome-bug to send us information about the problem you are experimenting, or go directly to our bug tracking system on the Web at


GNOME has been developed by a large number of free software programmers, users and enthusiasts on the Internet. The guname program lists some of the contributors to the system.

This manual page has been written by Miguel de Icaza (miguel [AT]