It's been more than a year since LWN looked at GNOME Shell in what
was still a primitive state. With only a few months left until the
scheduled release of GNOME 3.0 at the end of
September, and after more than a year's development, it seemed like a good time to take another look.
GNOME Shell is a compositing manager that works on top of Mutter — a branch of the Metacity window manager. With GNOME 3.0 Metacity will be in maintenance mode only, and Mutter will be GNOME's window manager going forward. Mutter uses the Clutter toolkit for rendering. In practical terms, GNOME Shell provides the actual desktop environment for GNOME 3.0. It displays and manages windows, provides a panel for displaying system notifiers, launches applications, and shows recently used files.
Getting GNOME Shell is relatively easy, if you're running a very current Linux distribution and have the right graphics card and setup. Ubuntu 10.04, Fedora 13, Debian testing and unstable, and openSUSE 11.2 all include gnome-shell packages for testing. I tried running GNOME Shell with the packages supplied for Ubuntu 10.04, but Mutter failed to start.
Fedora 13 provided slightly better results. After installing the gnome-shell package, Fedora adds a new option to the Desktop Effects dialog for GNOME Shell. Checking that should automatically start GNOME Shell if the graphics system supports it. Mutter requires 3D acceleration, but Nouveau and GNOME Shell do not play well together. This was a bit of a surprise, as Nouveau does just fine with Compiz on Fedora 13.
Finally, I tried GNOME Shell on a machine with Intel graphics on Fedora
13. GNOME Shell worked well on this machine and had good performance. It
showed itself to be stable and feature-complete enough for everyday use, though not all features have been implemented yet. For example, the GNOME Shell design document [PDF] calls for a message tray that will display events and messages, but this is not present in the implementation shipped with Fedora 13. Matt Novenstern provided an update recently on his progress but it's still under heavy development.
What happens if you don't have supported 3D hardware? No GNOME Shell for you, though the GNOME Project will still make it possible to run the GNOME 2 shell with GNOME 3 applications and libraries.
Shell replaces the GNOME Panel, taking over the job of managing the
desktop from Nautilus and providing some new ways to manage windows. The
concept of switching between windows using a menu or toolbar buttons (as is
the norm in GNOME 2.x) is gone. Instead, users can use Alt-Tab to switch
between windows or move the mouse cursor to the top of the window and
select between windows and/or workspaces. Users can also see all open
windows and the GNOME menus by clicking the Activities button or pressing
the System (Windows) key. New workspaces can be added (or removed) by
clicking a button in the lower left-hand corner of the screen.
Alt-Tab works slightly differently with GNOME Shell than with Metacity. Instead of switching between all active windows, it displays all active applications, with a drop-down menu for windows owned by each application. For instance, if Firefox has three open windows, it will display one thumbnail for Firefox and a triangle at the bottom that indicates there's more than one window to choose from.
The GNOME Shell panel is
not planned to support GNOME applets, so users that have applets they
depend on (like GNOME Time Tracker) are going to be out of luck. Owen Taylor laid out the rationale in April 2009 for omitting applets.
The panel also doesn't make the best use of space in the current implementation. The panel is a flat black bar that displays system tray notifiers, date and time, a logout menu, a button that displays the active application (and does little else), and the Activities menu.
Aside from missing applets, though, GNOME Shell worked fine with all of
my day-to-day applications. In its current state, GNOME Shell is slightly
less functional than Metacity and the GNOME Panel. The Applications menu
could use some work, as it just displays all the applications GNOME knows
about in a flat grid. This is a work in progress, though. The usability trade-off may be worth it in the long run when some of these problems are addressed. Even on a relatively small screen (1280x800 resolution) GNOME Shell makes it easier to manage a lot of open windows.
GNOME Shell and Accessibility
One of the concerns with any major revamp like GNOME Shell is the impact it will have on GNOME accessibility (a11y). The GNOME accessibility team has been working hard on GNOME 3.0. Alejandro Piñeiro Iglesias, maintainer of the Cally accessibility implementation library for clutter, says that there's room for improvement but Cally is in good shape at the moment.
Piñeiro says that, ultimately, he wants to see Cally become part of Clutter rather than a standalone library. This isn't the case at the moment, and is unlikely to happen by GNOME 3.0. Piñeiro says that when using Cally patches to Clutter he's been able to use Orca screen reader with GNOME Shell, though "the functionality is limited." Presumably this will be improved by the final release.
Taylor said in March that he'd like to see accessibility "held to the same high standards as everything else in GNOME" with accessibility features on by default and a user experience that "just works." But it won't happen by GNOME 3.0:
Getting accessibility fully to that standard isn't going to happen for GNOME 3.0... we've never been there for GNOME 2, we aren't going to be there in 4-5 months even if it was the only thing we worked on.
But where I definitely want to be for GNOME 3.0 - in the next 4-5 months is to make sure we've laid the groundwork properly so that we can get there in follow-on releases, both on a technical level and on a user-experience level.
Piñeiro says he'll continue working towards full integration of Cally with GNOME Shell, and points out that there are a number of other features to implement such as keyboard navigation and theming. GNOME Shell provides the ability to create new themes, though it only ships with one at the moment, and work will need to be done to ensure that GNOME Shell has a selection of accessibility-friendly themes.
It's clear that GNOME Shell will need to continue to mature after the
GNOME 3.0 release. What's less clear is exactly how it will proceed. As
discussed on the gnome-shell-list, various design documents and roadmaps
out a bit. The most authoritative are the design document and the roadmap on the GNOME wiki.
One area that is wide-open is the "social dimension / collaboration"
mentioned in the design document. This is left open for version 2.0 of the Shell, but the basic components are in view now. The (not yet implemented) message menu is meant to work hand in hand with the Telepathy communications framework and the applications it supports, like the Empathy instant messaging client and Gwibber social client. Eventually the message menu should be used to show instant messages, system notification, etc. — though the user should be able to block this by setting their status as busy.
The GNOME Shell plan also calls for the ability to create extensions
to GNOME Shell, but not to replace applets. Extensions are meant to be a
way to make changes to the way GNOME Shell handles things like window
management or application launching without having to actually hack the
Shell itself. GNOME Shell already has a functioning debugger called Looking
Glass for prospective extension authors, but there are no extensions in the
GNOME 3.0 is more than GNOME Shell
Because GNOME Shell is the most visible major change to GNOME, it has
drawn the most attention. However, GNOME 3.0 is more than just GNOME
Shell. In addition to the work that's gone into GNOME accessibility, GNOME
3.0 should inherit multitouch
support from GTK+ 3.0, along with major improvements in the help system via Yelp.
Users thinking about trying out the GNOME Shell should check out the GNOME Shell Cheat Sheet, which includes a list of built-in features and instructions on using them. Even in its unfinished state, the GNOME Shell should be stable enough for most LWN readers to use. Interested contributors should join the gnome-shell-list mailing list and see the GNOME 2.31.x development series page, contributor guide, and the GNOME Shell Todo for further information.
Though GNOME 3.0 is due to be released by the end of September, GNOME
Shell may not land on many GNOME users' desktops until 2011. Mark
Shuttleworth has already
indicated that GNOME Shell won't ship as the default with Maverick
Meerkat (Ubuntu 10.10). GNOME 3.0 will miss the 11.3 release of openSUSE,
and Debian Squeeze is currently planned to ship with
GNOME 2.30. The first major distribution to ship GNOME 3.0 with GNOME
Shell will likely be Fedora, as Fedora 14 is due to hit about a month after the GNOME 3.0 release.
to post comments)