Technology Lab —

A shiny new ornament for your Linux lawn: Ars reviews GNOME 3.0

Ars takes a hands-on look at GNOME 3. feel.

The developers behind the GNOME project have announced the official release of GNOME 3.0, a significant redesign of the open source desktop environment. The update introduces a new desktop shell that offers a streamlined window management workflow and a more modern look and feel. The new version also represents a major architectural overhaul, with many important enhancements to the GNOME platform's technical underpinnings.

The effort to deliver GNOME 3.0 has a long history. It took the developers years to reach a consensus about how to proceed with the new version, and years more to implement it. The protracted development period has largely paid off in stability and coherence. It's fit for duty out of the starting gate, though there is still plenty of room for further improvement.

Many of the substantial and far-reaching changes that the new shell brings to the GNOME user experience are compelling and thoughtfully crafted. The new desktop will likely appeal to users who share GNOME's philosophy of debris-free computing, but there are parts that seem to have been pared down too aggressively. The whole environment is significantly less configurable than its predecessor and is missing a handful of important features.

History and culture

The original vision for a new GNOME environment first surfaced in 2005 and became known as Topaz, a wordplay on the phrase three-point-zero. This initial effort to revitalize the desktop failed to gain traction among the GNOME development community which felt that substantial changes were unnecessary and would cause undesirable disruption for users.

The decision resulted in very gradual stagnation, eventually leading to a general feeling among some contributors of frustration with the lack of direction and technical progress in the desktop environment. That era is best described by Andy Wingo's historic GNOME Decadence essay. The desire for new innovation caused a new GNOME 3.0 plan to materialize in 2008, finally winning broad support among the developers.

At the time, the goal was to deprecate legacy APIs and gradually replace some of the underlying infrastructure without making major changes to the user-facing parts of the stack. The plan changed drastically when an effort to improve the traditional GNOME panel led to the emergence of the GNOME Shell project, which soon became a key part of the GNOME 3.0 update. It has been under active development since that time and has only now reached maturity.

The predictability and conservativeness of GNOME's release management strategy and development model have played a huge role in driving the GNOME desktop environment's popularity among Linux distributors and other commercial stakeholders. The initial trepidation among the GNOME developers about moving ahead with a major update was partly based on concerns about how a huge half-baked overhaul would impact all of the users who rely on GNOME in production environments. It was obvious from the start that a 3.0 plan had to minimize that kind of friction and the finished product had to land on its feet.

A lot of care and attention has clearly been devoted to making sure that GNOME 3.0 is fully baked. Years of intensive work by many volunteer and paid developers have resulted in the current product. Virtually all of the underlying infrastructure was ready last year, but the release was pushed back into 2011 in order to facilitate a final redesign of the shell user interface and allow everything to settle in. The extra six months of polish is evident in the new version's relative maturity.

Quality

Although GNOME 3.0 offers a fairly robust desktop, there is one issue that significantly detracts from its reliability. Hardware-accelerated rendering is absolutely essential to creating a modern and competitive desktop computing experience, but the poor state of Linux graphics drivers makes it very difficult for software developers to rely on that capability. The open source drivers are hit-and-miss, and the proprietary binary-only drivers from the major hardware manufacturers are buggy and prone to misbehavior.

The new GNOME Shell is built largely with the Clutter drawing toolkit and depends on composited rendering to function properly. If you don't have compatible graphics hardware or drivers, you won't get to run the new shell. It will instead punt you back to a more conventional 2.x-style desktop with regular GNOME panels.

There are also some driver and hardware combinations that can run the shell, but exhibit really bad behavior. For example, I noticed some bizarre visual artifacts and eventually encountered a fatal error when I tried to use the openSUSE-based environment on my desktop computer with NVIDIA graphics hardware. The Fedora version, which is what I used for this review, worked properly on the same computer.

It's a big caveat that hangs like a raincloud over a desktop that is otherwise very stable. It doesn't seem like there is much more that the GNOME developers can do to address the issue at this point. It's really going to be up to the distros to ensure that working drivers are available.

User experience

The new shell is designed to be simple and unobtrusive. Basic task management functionality has been swept off the screen entirely and is accessible through a dashboard view that doubles as a workspace manager and application launcher.

In the standard desktop view, you will see your windows open on the screen and a status bar at the top. The right-hand side of the status bar has pop-down bubbles that work like Ubuntu's indicator menus. These allow you to control audio volume, manage your network, and globally set a presence status. At the center is a clock that pops down to display a calendar and upcoming appointments. The left-hand side has the Activities trigger and a slot that displays the currently running application.

When you click the Activities trigger or move your mouse cursor to the top-left corner of the screen, the shell will display the launcher and window manager. The window management view shows you an Exposé-like spread of the windows that you have open on your current workspace.

Predictably, clicking a window in the window management view will give that window focus and take you back to the regular desktop. You can also easily close windows from this view by hovering over a window thumbnail and clicking a black "X" icon that will appear over the window. You can use the scroll wheel to expand a particular window in the spread to get a closer look at its contents.

There is a bar along the left-hand side that works like a standard task dock. The bar has launchers for your favorite applications and will show highlighted icons for the applications that are running across all of your workspaces. You can switch into the full application launcher view by clicking the Applications item at the top of the screen. This will show launchers for all of your software and allow you to filter it by category. The launcher view works basically as expected and did what I need it to do. There is a convenient built-in search box, with find-as-you-type functionality, that you can use to activate an application.

The right-hand side of the window management interface is dominated by the workspace tower. You will see blocks representing all of your open workspaces, with thumbnail views of the windows that are open in each space. Unlike conventional virtual desktops, the new GNOME workspaces aren't preconfigured in a static arrangement. In the simplest use case, there will always be at least one active workspace and one empty space. When you drag a window into the empty space, it basically spawns a new workspace. When you remove all of the windows from a workspace, it will disappear.

This fluid and dynamic approach to workspace allocation is much saner and more flexible than the conventional virtual desktop model. As some readers will probably recognize, a similar concept appeared in the Moblin netbook shell back in 2009. It's a lot more fluid and polished in GNOME 3.0, however. This was easily my favorite feature in GNOME 3.0 and it stands out as a really solid bit of design work.