home | O'Reilly's CD bookshelfs | FreeBSD | Linux | Cisco | Cisco Exam  


Linux in a NutshellLinux in a NutshellSearch this book

17.5. History and Changes in GNOME 2

Most new software releases add features, and a major complaint among users is of steadily increasing complexity, or "feature creep." The GNOME 2 desktop is distinctive in that, while adding a few features, it has also removed some features.

TIP: Many configuration formats have changed between GNOME 1.4 and GNOME 2.0 as applications have moved to using the GConf system. You will need to reconfigure most, if not all, of your applications when you upgrade.

New features include:

  • Font smoothing (antialiased fonts).

  • Marked speed increases in the Nautilus file manager.

  • Tabbed browsing (press Ctrl-T to create a new tab) in both Galeon and Mozilla web browsers.

  • Internationalization support, including proper handling of right-to-left languages.

  • Accessibility tools for people with visual or mobility impairments.

  • Control Center more smoothly integrated with the rest of the system.

Removed features include:

  • Edge flipping (dragging items from one desktop to another) is no longer available; use keyboard shortcuts or the Workspace Switcher Applet instead.

  • Detachable menus have been disabled; you can turn them on with the gconf-editor tool.

  • It is no longer possible to choose window placement algorithms. Some versions of GNOME ship without window focus options and leave them only as gconf keys.

  • GNOME 1.x made a distinction between two types of virtual desktops. Workspaces assumed the creation of multiple distinct desktops, whereas viewports assumed that you were creating a single, large desktop and displaying only a portion of it. Few people ever fully understood the distinction, and it has been removed from Metacity and the Workspace Switcher. As a result, windows moved to the edge of the screen no longer appear in the next workspace over, and it is not possible to create a three-dimensional array of virtual desktop areas.

  • Application display fonts, themes for window borders and application buttons, and the virtual filesystem's HTTP proxy have been given simplified configuration tools that appear in only one place. Several other Control Center tools have been eliminated, and the term "capplet" has been removed from the GNOME vocabulary.

  • Both menu configuration tools (gmenu and the menu display options tool) have been replaced by the ability to edit menus in Nautilus (type the location "applications:///" into Nautilus).

  • Many of the less important panel options are available only in the gconf-editor, including panel movement speed, the delay before hiding the panel when using the automatic hiding option, menu caching, and the option to display an image on the left side of the GNOME and Programs menus.

  • There are far fewer panel applets. Notably, there is only one clock applet rather than five (nobody admits to thinking five clocks were ever necessary) and there are only two applets in the "Amusements" category: eyes that track the mouse, and the fish that tells your fortune.

  • The Nautilus file manager also has fewer options. Notably, speed has been improved to the point that the Performance Tradeoffs are no longer necessary, the User Levels feature has been removed, the theme, font, and HTTP proxy settings have been moved to the Control Center, and the Help display has been moved to a dedicated help browser called yelp.

Most of these feature removals stem from switching from Sawfish to the much simpler Metacity window manager. However, all of the features that ended up being removed had initially sprung from one of the major pitfalls of any software project, especially open projects where making an executive decision is harder. When developers disagree, it is often easier politically to create an option than to find an acceptable compromise or enforce a "correct" decision. However, each preference, option, and feature adds another layer of complexity, making the software harder to support, debug, and integrate with the rest of the desktop.

The clearest example in GNOME is window management software. The window manager is important and complex software: it controls window placement and ordering, controls event handling and focus, and so forth. Without a window manager, your desktop would not be functional as you know it. At the same time, window managers have to be completely unobtrusive, or they interfere with the use of applications. Most computer users do not know or care what window managers are, and have certainly never started a window manager by hand themselves.

When GNOME 1.0 was released, it allowed users to select among various window managers, including twm and icewm. The majority of users and distributions used a window manager called Enlightenment, which quickly grew from being a window manager to being a desktop environment in its own right. Running GNOME and Enlightenment at once became increasingly redundant, so for GNOME 1.2 and 1.4, users and distributors switched to Sawfish, which was small, fast, and highly configurable.

In fact, there were so many combinations of settings that it was hard to test, and it kept getting larger and more complex. By the time GNOME 2.0 was on the way, Sawfish was slow, large, and impossible to maintain. The Sawfish maintainer had abandoned it, and nobody was willing to continue the project.

The GNOME development team was determined not to repeat the process. Metacity, the GNOME 2 window manager, is small, fast, and simple. The GNOME Control Center is designed around the assumption that most users do not care to pick or know their window manager, and that developers do not care to bear the burden of code complexity caused by interacting with multiple window management systems. It's still possible to switch window managers, and those who wish to do so can do it by editing their ~/.gnome-session files.

The GNOME 2 series of releases (2.0 and 2.2 have been released as of this writing; 2.4 and 2.6 are planned) aims to choose good defaults rather than offer limitless options, and considers simplicity and usability to be as important as adding additional behavior. The desktop is kept as simple as possible so that it does not distract from the actual functionality of the applications that are based upon it and that are its real reason for existence. The applications themselves are not shying away from new features or new capabilities, but for the most part share the goals of simplicity and ease of use.



Library Navigation Links

Copyright © 2003 O'Reilly & Associates. All rights reserved.