By Jake Edge
August 11, 2010
The biggest user-visible piece of GNOME 3 will be the GNOME Shell, which manages the
desktop experience. At GUADEC, Owen Taylor updated the assembled GNOME
hackers on the current status of GNOME Shell and the work still to be done.
He also
demonstrated some of the new functionality and compared the Shell with
where it was when he presented at the Gran Canaria Desktop Summit (GCDS) in
2009.
Since GCDS, "we wrote code", Taylor said, consisting of some
1362 commits, 1174 of which were code along with 188 translation commits.
The project has also added new contributors and four of the top ten
contributors since GCDS were new to the project. He was happy to see that
those new contributors were not only prolific, but also added "very
significant" new features.
In preparing for his talk, Taylor went back to the version from GCDS
and was "surprised that it still built". The user interface
has been redesigned since then and, in some cases, things have been
rewritten three or four times in the interim. He found it interesting that
certain features that he thought were there from the start were missing,
while others that he thought were newer actually appeared in the year-old
version.
The Shell now sports a "sleeker, black look" that fades into
the background because it blends into the monitor bezel, he said. The
"mess in the upper right hand corner" has been cleaned up, and
the task list from last year is gone. In addition, the menus are not
GTK-based, but are instead styled with the Shell, giving them a more
integrated look.
Switching between applications and workspaces has also undergone some major
changes. Alt-Tab now groups all of the windows for an application into a
single entry, so that you choose between applications, rather than
individual windows. Last year, activities were represented by a grid of
workspaces with a dashboard to launch new applications. Now it is
"slicker", with a linear view of the workspaces that can be
scrolled horizontally to view additional workspaces.
The application browser has switched from a "straight
reimplementation from GNOME 2" to a gridded view with fewer
categories. Searching has also been integrated into the dashboard. The
message tray now slides up from the bottom and you no longer have to
dismiss each notification as you did in GNOME 2. It is also integrated
with Empathy so that replying to a message no longer requires switching to
the application itself—the reply can be typed into the message
notification.
The "hot corner"—simply moving the mouse to the upper left corner of
the screen—is another new feature. Moving there brings up the
activities overview that shows workspaces, places, and recent documents.
It's very useful, Taylor said, so much so that "if you go back to
GNOME 2, you
will keep going to the hot corner".
Looking Glass is an integrated JavaScript console, inspector, and debugger,
which acts like "Firebug for the Shell". Taylor did a live
demonstration by typing one-line JavaScript expressions into Looking
Glass. With that (fairly) simple JavaScript, he was able to change menu
titles, scale them to different sizes, and even have them run the scaling
as a transition so that the text continuously grew in size.
GNOME Shell is based on the Clutter toolkit, but because "Clutter
itself only has four actors that are useful" for the Shell, it uses
the Shell toolkit (St) atop Clutter. St is descended from Moblin's MX
toolkit, but is more focused on the needs of the Shell. St emphasizes CSS
with transitions, property inheritance, shadows, rounded corners, and so
on, which make for a "pretty powerful set of capabilities".
MX has many more widgets and is more powerful overall. The separate evolution of
St and MX is "not a good thing long-term" and the team aims
to reunite them at some later point.
Taylor also talked about the development process for GNOME Shell, which is
very reliant on code review. The normal GNOME model is "code
ownership" he said, but the Shell does "code review of
everything". There is no formal structure to the review process,
but they get two pairs of eyes on all code changes. The process has its
"good parts and not-so-good parts", but overall it works well
because it spreads out the knowledge of the code among multiple people in
the project. It can lead to bottlenecks, where "patches sit around
for a while", but he definitely recommends that development model
for other projects.
GNOME Shell is in "good shape" for basic functionality, like
window switching and launching applications, Taylor said, though there are
still bugs and other things to fix. It makes for a "pretty coherent
whole" that can be used on a day-to-day basis. The status area in
the upper right hand corner is still a work in progress as is the
integration of the Shell with the rest of the system. He pointed to the
log out and lock screen dialogs as things that were not yet rendered in the
Shell style, and still look like the GNOME 2 versions.
Those changes will come relatively soon, but there are some other things
that are a bit further out. The "recently used documents" in the
activities overview is just a placeholder right now. There are no
customization options for those who want to change the styles or behavior
of the Shell. The plan is to add an extension API like Firefox has, but
other than some basic infrastructure, that isn't nearly ready. In
addition, there is no fall-back support if 3D graphics—required by
Clutter—are not available. Some way to fall back to the GNOME 2 look
in that case is desired.
Based on the status, it was probably fairly obvious to those in the room
that GNOME Shell might not be completely ready for the September
release—foreshadowing the next presentation, which was by Vincent
Untz and the release team
delaying GNOME 3.0. GNOME
Shell definitely looks like more than an incremental change to the desktop
experience, and Taylor's demo with Looking Glass showed the latent
potential for theming and other customization that underlies the Shell.
With an additional six months to work on it, focusing on completing a
coherent whole, GNOME Shell seems quite likely to impress.
(
Log in to post comments)