You are on page 1of 14

GNOME 3 Shell in Fedora 15

GNOME 3 Shell in Fedora 15


Finnbarr P. Murphy
(fpm@fpmurphy.com)

The Fedora 15 Alpha release includes a pre-release version of the long-awaited GNOME 3 Shell.
After 8 years of use, the GNOME 2 desktop looks jaded and is technically difficult to maintain and
work with under the hood. Visually and interactively it no longer competes with other desktops or
devices for the hearts and minds of users.

The GNOME 3 Shell has a modern visually attractive and easy to use user interface (UI) that is

ly
more akin to that of an IPad or a smart mobile phone. It provides the key interface functions like
switching windows, listing and launching applications, and is completely different from the

on
GNOME 2 desktop. It is based on the premise that using simple gestures instead of clicking a
menu option is a more effective UI paradigm. Thus it takes advantage of the capabilities of
modern graphics hardware to utilize 3D effects. Animation and visual effects are intended to show
the user the correlation between their action and the result of their action. As a result, you need to

se
forget pretty much everything you know about the GNOME desktop and start afresh. A totally new
user experience awaits you. lu
I switched to using the GNOME 3 Shell some months ago when early builds became stable enough
to use in my day to day work. I am basically happy with the new shell but feel some of the design
features need revisiting to improve the user experience.
a
The Alpha release of Fedora 15 (codename Lovelock) contains an alpha release of the GNOME 3
nn

Shell. The first time you update your installation using yum or packagekit, your system is updated
to a beta version of the GNOME 3 Shell. To date, most of the presentations on the Internet discuss
the alpha version of the GNOME 3 Shell and not the beta version. If you see large plus (+) and
o

minus (-) signs near the workspace manager on the right hand side of a screenshot, this indicates
an alpha version of the GNOME 3 Shell. The GNOME 3 Shell is scheduled to GA in April 2011.
rs

The GNOME 3 Shell uses the Mutter window manager to provide its animation effects. Mutter is
pe

an abbreviation for the Metacity and Clutter technologies. Mutter was originally developed for
Meego (formerly Moblin.) By the way, if you look under the hood, you will find that quite a bit of
Moblin technology has ended up in the GNOME 3 Shell.
r

You need hardware acceleration to use the GNOME 3 Shell as it uses a number of 3D capabilities.
Fo

Most systems less than 3 years old should work out of the box. If hardware acceleration is
unavailable, the GNOME 3 Shell defaults back to the old GNOME Panel. If you use Compiz, it will
no longer work with the GNOME 3 Shell. In addition, the GNOME 3 Shell contains a significant
amount of JavaScript code and can be styled using CSS. Adwaita (meaning one and only in
Sanskrit) is the default theme for GNOME 3; see usr/share/themes/Adwaita. The default font is
Cantarell. The GTK engine is Clearlooks; see /usr/share/gtk-engines/clearlooks.xml. Clearlooks
was based on Red Hat’s Bluecurve theme.

Who are the key design people behind the GNOME 3 Shell? The design has been lead from the
start by William Jon McCann, a long-standing GNOME member and a Red Hat employee. In 2010
Jakub Steiner became the second member of the design team and that is when development went
into high gear. If interested, you can read more about the GNOME 3 desktop design history.
McCann deserves a lot of praise for shepherding the design through a long and sometimes
contentious design and development cycle.

Now for a quick tour of the beta GNOME 3 Shell in Fedora 15. When you log in, this is what you

03-15-2011 Copyright 2004-2011 Finnbarr P. Murphy. All rights reserved. 1/14


GNOME 3 Shell in Fedora 15

see:

ly
on
se
lu
This background (wallpaper), the default upstream wavy GNOME 3 Shell background, is what is
a
going to be displayed in the Fedora 15 release unless people seriously object to it.
nn

The rationale for the break with tradition whereby a different background is used in each release
of Fedora, was pushed by Owen Taylor of Red Hat but it boils down to trying to establish a
consistent image in people’s minds about what the GNOME 3 Shell looks like. Naturally, it was the
o

first thing I changed as it does nothing for me. I suspect most people will also quickly change to
another background.
rs

Another thing to note is that the GNOME 3 does not save your desktop when you log off and
pe

restore it when you log back in. Another interesting design decision!

The top bar contains a number of hotspots and widgets. For example, there is a brand new and
much improved date and calendar widget, developed by David Zeuthen and written in JavaScript.
r
Fo

03-15-2011 Copyright 2004-2011 Finnbarr P. Murphy. All rights reserved. 2/14


GNOME 3 Shell in Fedora 15

ly
on
se
lu
Incidently, I like the dark theme. Very easy on the eyes!

If you click your name, another menu is presented which allows you to change system settings,
a
lock your screen, change user, log out and more.
o nn
rs
pe
r
Fo

Unlike previous Fedora releases, I do not see any menu option to shutdown your system. It
appears that this is now only possible from the command line. Perhaps this will change in a future
release.

If you move your mouse to the top left hand corner of your screen (the Activities hotspot), the

03-15-2011 Copyright 2004-2011 Finnbarr P. Murphy. All rights reserved. 3/14


GNOME 3 Shell in Fedora 15

GNOME 3 Shell displays the Activities window. Alternatively you can access the hotspot using the
Super_L key which on extended PC keyboards is the Windows key. A more intuitive and very
visually appealing way is to simply flick your mouse in the direction of the top left corner of your
screen. Try it. I think you will be pleasantly surprised by the smooth visual effects.

ly
on
se
a lu
nn

You can press the ESCAPE at any time to exit the Activities window.

Here is what you see if you select the Applications option from within the Activities window.
o
rs
pe
r
Fo

You can search for applications and documents via the searchbar on the top right hand side of this

03-15-2011 Copyright 2004-2011 Finnbarr P. Murphy. All rights reserved. 4/14


GNOME 3 Shell in Fedora 15

window. Application and document searching is similar to Spotlight on an Apple Mac. Just type in
the first few characters of the application or document that you are looking for as shown below:

ly
on
se
a lu
As you type in more characters the number of applications and documents displayed will decrease
until hopefully the required application or document is located. You can then click the appropriate
nn

icon to launch the application or view/edit the document.

If no results are available, you can use the default Google and Wikipedia (search provider) buttons
o

that appear at the bottom of the screen to quickly perform Internet searches for whatever you are
searching for. These buttons use the OpenSearch v1.1 specification to access Google and
rs

Wikipedia.
pe

If you want to add more search providers, here is an example of how to do so. Suppose you want
to be able to also search the Superuser Q&A website, add the following file to the
/usr/share/google-shell/search_providers subdirectory. Name it superuser.xml.
r
Fo

<?xml version="1.0" encoding="UTF-8"?>


<OpenSearchDescription xmlns="http://a9.com/-/spec/opensearch/1.1/"
xmlns:moz="http://www.mozilla.org/2006/browser/search/">
<ShortName>Super User</ShortName>
<LongName>Search the Super User website</LongName>
<Description>Search the Super User website</Description>
<Developer>Finnbarr P. Murphy</Developer>
<Attribution>Copyright 2011, Finnbarr P. Murphy. No license.</Attribution>
<Syndication>open</Syndication>
<AdultContent>false</AdultContent>
<Language>en-US</Language>
<InputEncoding>UTF-8</InputEncoding>
<OutputEncoding>UTF-8</OutputEncoding>
<Image width="16" height="16">data:image/x-icon;base64,
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAABN0lEQVQ4jZ2SsUsDMRSHv1eL4oml
WClO4igOnUQcKoJ/gnYUnPofuDiKQkFcXFyki4iKNLsOdhPq3qFzJ0EaCsUWSy/P4Q4t9ZA7f5Dh
JeHLl5dAkAtAv8fs/BUAN+0XjP2k1nnG2B0ikpqoH4ADUlNVAIaDY+AEkQLwhLH7UZBxg8PI1Vpn
E2N9ap13jM38ZRCdUq6BahuRRWA1OQAAHaIKMJ0EEDS1fJ5GAZFfG+IZDHoZUBcaJOqBAILzu/R7
j6FBBWPXMTYV3+D21CFyhOolUED1lb0FFx8A4GXWENkNvKQR9wo/EamgugScobqVHAArYQ/uKOXc

03-15-2011 Copyright 2004-2011 Finnbarr P. Murphy. All rights reserved. 5/14


GNOME 3 Shell in Fedora 15

fwCErzAan0oGiPgH6Yl6Gxgyl23y0a1TbZXI5vOoesAyqg6RURSgD3SBIlDE+ddAnRmvDGyEJ78h
cg+0xgFf0u1mjKC2xEYAAAAASUVORK5CYII=
</Image>
<Url type="text/html" method="GET" template="http://superuser.com/search?q={searchTerms}"/
>
</OpenSearchDescription>

Here you can see that I am using the searchbar to search for unit. Notice the new Super User
button at the bottom of the screen.

ly
on
se
a lu
o nn
rs

Here is what you will see in your browser if you press that button:
pe
r
Fo

03-15-2011 Copyright 2004-2011 Finnbarr P. Murphy. All rights reserved. 6/14


GNOME 3 Shell in Fedora 15

ly
on
se
lu
Notice that the SuperUser website has automatically retrieved all relevant entries containing the
term unit. Support for the OpenSearch specification in the GNOME 3 Shell is a very nice bonus!
a
You can also customize the UI using CSS. For example, I prefer smaller application icons in the
Activities window as shown below.
o nn
rs
pe
r
Fo

To change the size of the application icons, all you need to do is edit
/usr/share/gnome-shell/theme/gnome-shell.css as shown by the following diff output:

03-15-2011 Copyright 2004-2011 Finnbarr P. Murphy. All rights reserved. 7/14


GNOME 3 Shell in Fedora 15

$ diff gnome-shell.css gnome-shell.css.org


360,361c360,361
< height: 34px;
< width: 24px;
---
> height: 34px;
> width: 34px;
542,543c542,543
< spacing: 18px;
< -shell-grid-item-size: 59px;
---
> spacing: 36px;
> -shell-grid-item-size: 118px;
547c547
< icon-size: 48px;
---

ly
> icon-size: 96px;
551,552c551,552
< padding: 8px 12px 8px 8px;

on
< spacing: 10px;
---
> padding: 16px 25px 16px 16px;
> spacing: 20px;
556,557c556,557

se
< padding-right: 8px;
< padding-left: 12px;
---
> padding-right: 16px;
> padding-left: 25px;
lu
1180c1180
< font-size: 8px;
---
a
> font-size: 12px;
nn

For the changes to take effect you must restart the GNOME 3 Shell. You can do this using the Alt-
F2 key combination which displays a small command-launcher window. Enter r followed by
RETURN here. This will cause the GNOME 3 Shell to be restarted.
o
rs

To switch running applications, you need to click on the appropriate window, open the Activities
window and select the appropriate thumbnail, or use the Alt-Tab key combination which brings up
a thumbnail browser that you can tab through sequentially. In this mode a label is displayed under
pe

each window containing either the current directory or the name of the application.
r
Fo

03-15-2011 Copyright 2004-2011 Finnbarr P. Murphy. All rights reserved. 8/14


GNOME 3 Shell in Fedora 15

ly
on
se
lu
Window controls in the GNOME 3 shell consist of a single button on the top right hand side of the
titlebar that closes the window. There are no maximize or minimize buttons; such functionality is
now only available using the right-click menu. See Owen Tylor‘s email and Allan Day‘s post on this
a
subject to understand the reasoning behind removing these two buttons.
nn

I disagree with removing the minimize button as it is something I use all the time to keep a tidy
desktop. On the other hand I do not care whether there is a maximize button or not as I rarely use
it. I am quite happy with the ability to just drag the window to the top of the screen to maximize it.
o
rs
pe
r
Fo

Workspaces have moved from a default of 4 horizontal infrequently used optional workspaces in

03-15-2011 Copyright 2004-2011 Finnbarr P. Murphy. All rights reserved. 9/14


GNOME 3 Shell in Fedora 15

GNOME 2 to core functionality in the GNOME 3 Shell. The concept of auto workspaces was
inspired by Moblin zones. The default number of workspaces is 1. Workspaces are now vertical
instead of horizontal to mimic vertically scrolling documents. The workspace sidebar which is on
the right of the desktop is hidden by default. Workspace thumbnails slide out on cursor proximity
and or when a drag is initiated on a window or a launcher.

ly
on
se
a lu
nn

The most annoying feature of the GNOME 3 Shell as far as I am concerned is that a user has to
select the New Window option to open a new instance of any item on the Favorites sidebar.
o
rs
pe
r
Fo

Currently, if you double click a favorite icon you are simply taken to the existing application if an

03-15-2011 Copyright 2004-2011 Finnbarr P. Murphy. All rights reserved. 10/14


GNOME 3 Shell in Fedora 15

instance of it is running, otherwise an instance of the favorite is launched.

One of the more interesting things about the GNOME 3 Shell is that it is written in JavaScript and
is highly customizable using CSS. All the relevant files are under /usr/share/gnome-shell.

$ cd /usr/share/gnome-shell/
$ ls -R *
js:
misc perf ui

js/misc:
config.js docInfo.js fileUtils.js format.js gnomeSession.js history.js params.js ut
il.js

ly
js/perf:
core.js

on
js/ui:
altTab.js docDisplay.js main.js runDialog.js
viewSelector.js
appDisplay.js endSessionDialog.js messageTray.js scripting.js
windowAttentionHandler.js

se
appFavorites.js environment.js modalDialog.js searchDisplay.js
windowManager.js
boxpointer.js extensionSystem.js notificationDaemon.js search.js
workspace.js
lu
calendar.js iconGrid.js overview.js shellDBus.js
workspacesView.js
chrome.js lightbox.js panel.js status
a
workspaceSwitcherPopup.js
ctrlAltTab.js link.js panelMenu.js statusIconDispatcher.j
nn

s workspaceThumbnail.js
dash.js lookingGlass.js placeDisplay.js statusMenu.js
xdndHandler.js
dateMenu.js magnifierDBus.js polkitAuthenticationAgent.js telepathyClient.js
o

dnd.js magnifier.js popupMenu.js tweener.js


rs

js/ui/status:
accessibility.js bluetooth.js keyboard.js power.js volume.js
pe

search_providers:
google.xml wikipedia.xml

shaders:
dim-window.glsl
r

theme:
Fo

calendar-arrow-left.svg gnome-shell.css.org scroll-button-down-hover.png


single-view.svg
calendar-arrow-right.svg mosaic-view-active.svg scroll-button-down.png
toggle-off-intl.svg
calendar-today.svg mosaic-view.svg scroll-button-up-hover.png
toggle-off-us.svg
close.svg move-window-on-new.svg scroll-button-up.png
toggle-on-intl.svg
close-window.svg panel-border.svg scroll-hhandle.svg
toggle-on-us.svg
corner-ripple.png panel-button-border.svg scroll-vhandle.svg
ws-switch-arrow-down.svg
dash-placeholder.svg panel-button-highlight-narrow.svg section-more-open.svg
ws-switch-arrow-up.svg
filter-selected-ltr.svg panel-button-highlight-wide.svg section-more.svg
filter-selected-rtl.svg process-working.svg separator-white.png
gnome-shell.css running-indicator.svg single-view-active.svg
$

03-15-2011 Copyright 2004-2011 Finnbarr P. Murphy. All rights reserved. 11/14


GNOME 3 Shell in Fedora 15

The GNOME 3 Shell comes with a built-in debugger, inspector and JavaScript console called
Looking Glass. You can access this debugger via the Alt-F2 key combination followed by lg when
asked to enter a command.

ly
on
se
a lu
nn

Accessibility is built into the GNOME 3 Shell – not bolted on as an afterthought. A full range of
accessibility options is provided ranging from a magnifying glass (see next screenshot) to a screen
reader to a high contract screen.
o
rs
pe
r
Fo

Here is an example of the screen when Zoom (the magnifier) is enabled.

03-15-2011 Copyright 2004-2011 Finnbarr P. Murphy. All rights reserved. 12/14


GNOME 3 Shell in Fedora 15

ly
on
se
lu
Interestingly, the ability to collect performance data and statistics is built into the GNOME 3 Shell
via an event log. When event logging is enabled, all sorts of different types of events are logged.
Logging does not significantly affect performance. A statistic is some measurement about the
a
current state of a particular item such as memory. Registered statistics are polled at intervals and
written to the event log as a special event type. Statistics collection can also be triggered
nn

manually. See here and here for more information.

So what else is happening under the hood for GNOME 3 on Fedora 15? Of interest to me is the
o

plan to remove all HAL interaction with the GNOME desktop. According to the Fedora Project
team:
rs
pe

HAL is a behemoth, do-it-all, daemon to access hardware. It is now obsoleted by


udisks (né DeviceKit-disks) and upower (né DeviceKit-power), as well as libudev for
device discovery.
r

Frankly I do not know how they can justify that statement. HAL is and was much better, and did a
Fo

lot more, than udisks and upower do and was far simpler to use.

User notifications is another area which was reworked in the GNOME 3 Shell. Now the bottom of
the screen is used exclusively for messages. The message tray now supports persistent
notifications as well as transient notifications such as feedback on user actions. A new persistent
notification is first shown as a pop-out for a certain time period. After that the notification is still
available in the message tray and is only removed when the user interacts with it or switches to
the application that sent it. The new behavior means that notifications are less disruptive because
a user is no longer forced to react to a notification before it times out.

An extension mechanism for the GNOME 3 Shell, similar to that in the Firefox browser, is under
active development. This will enable developers to easily add additional or enhanced functionality
to the Shell. Extensions would be coded in JavaScript and styled with CSS. An example of
additional functionality is system resource monitoring or hardware enumeration. A formal API has
not yet been published but some coding guidelines have been provided.

03-15-2011 Copyright 2004-2011 Finnbarr P. Murphy. All rights reserved. 13/14


GNOME 3 Shell in Fedora 15

So what is wrong with the Fedora Project’s current implementation of the GNOME 3 Shell? Some
of the things that users of Fedora have come to expect on their desktop are missing. Examples
include no option to shutdown the system from the UI, no minimize buttons, no classical file
manager, and none of the standard preference tools that users have become used to. Significantly
there is no mechanism for adding widgets (applets) to the top menu bar and no way to change the
placement of the menu bar or the notifications area.

Will things get better in subsequent releases? If Fedora Project developers are willing to listen to
their user base, most of what users expect to be present on their UI should appear in the GNOME
3 Shell over time. As the actual Fedora 15 release date draws nearer, I suspect that the voices of
real users will vocally protest some of the poorer ideas present in the current iteration of the
GNOME 3 Shell. For example why is Instant Messaging combined with Account information,
System Preferences and Logout in a menu that is under my name?

ly
Not all GNU/Linux distributions are as enthusiastic in embracing the GNOME 3 Shell as Red Hat
is. Interestingly, Ubuntu has eschewed GNOME 3 in favor of its own shell called Unity. This shell,

on
which was announced in 2010, uses several key GNOME 3 components including the Clutter
framework, the Mutter window manager and the Zeitgeist activity logging engine. Unity is
designed to use screen space more efficiently and consume less system resources than a
conventional desktop and is targeted at netbooks and touch-based devices. Unity is scheduled to

se
be the default desktop on Ubuntu 11.04 (Natty Narwhal) which is currently at Alpha 1.

It will be interesting to see how the GNOME 3 shell performs in the real world. Currently it is
lu
quite slow starting up (over 5 seconds on a very fast platform) but I attribute that mostly to
pre-release software. Will people accept the GNOME 3 Shell or will it be a case of a small cabal of
designers not necessarily being the best judges of user experience? Will people accept the
a
additional constraints imposed upon them by using the GNOME 3 Shell or will they migrate en
nn

mass to another distribution or desktop? Only time will tell!


o
rs
pe
r
Fo

03-15-2011 Copyright 2004-2011 Finnbarr P. Murphy. All rights reserved. 14/14