By Jonathan Corbet
June 15, 2011
It has now been three months since your editor posted
his experience with GNOME 3 and
GNOME Shell. Much of the intervening time has been spent gaining more
experience with the system; it even included getting a better video card to
enable the full GNOME Shell experience. The time has now come to start
playing with the GNOME Shell extension mechanism. Some interesting things
can be done with extensions, but
it has also come out that parts of the project are hostile to the very idea of
GNOME Shell extensions. In the end, one may well wonder: who controls our
desktop software?
For the most part, your editor must conclude that GNOME 3 works well
enough - though with some glitches. Moving the pointer too close to the
upper-left-corner minefield and getting an unwanted overview mode experience still
happens several times per day. It's still annoying to have to go through
extra steps to get a second terminal or browser window. Workspaces must be
set up
with care to ensure that windows end up where they are expected to be.
The top panel (the black bar at the top of
the screen) still represents wasted space that could be put to better use.
But, as a whole, things work well enough for a dot-zero release; one
assumes that things will get better. GNOME 3 is not that bad.
One thing that is happening is that the number of extensions for
GNOME Shell is growing. The Rawhide repository now includes a number of
them. One extension puts a music player controller into the black bar;
a nice idea, but it seemingly does not work with audacious. Another claims
to remove the accessibility menu, but that one does not work at all.
There are others your editor has not tried, adding a "places" menu,
restoring the "shutdown" option, adding a dock-style task switcher, and
more.
The "GNOME Shell
frippery" extensions are not currently packaged by Rawhide, but your
editor decided to give them a try anyway. With the full set installed,
the down side
of extensions quickly became clear; they simply crashed the shell
altogether. The GNOME system was very helpful: the message read "Something
went wrong, please log out and try again." One assumes that these
extensions have fallen behind the current state of GNOME Shell. As it
happens, there is no real mechanism (yet) for ensuring that the shell and
extensions match; it seems likely that a number of extension users will run
into this particular trap in the coming years.
Happily, one of the extensions in that package works just fine: the one
which adds the "favorite" applications to the top panel. Clicking on the
terminal icon there simply yields a new terminal, just as $DEITY intended.
That one little change has helped to make your editor's GNOME Shell
experience quite a bit more productive.
The extension mechanism built into GNOME Shell is quite flexible, so one
could imagine that quite a few useful extensions will show up in the coming
months and years. In a normal world, one would expect that the GNOME
developers would welcome this development - others are making use of the
capabilities provided to make the platform better. In the world we
inhabit, the community has been somewhat less welcoming. Consider the
discussion that ensued after Jasper St. Pierre outlined his plans for a web site where users
could find (and post) their extensions. Allan Day, who does
marketing work
for the GNOME Foundation under contract, a former GNOME marketing
contractor, responded:
Facilitating the unrestricted use of extensions and themes by end
users seems contrary to the central tenets of the GNOME 3
design. We've fought long and hard to give GNOME 3 a consistent
visual appearance, to make it synonymous with a single user
experience and to ensure that that experience is of a consistently
high quality. A general purpose extensions and themes distribution
system seems to threaten much of that.
He did admit that extensions can be "valuable as a crutch for our
traditional users" and, perhaps, for experimenting with features.
But, in general, it seems that, in his view, GNOME Shell users should
accept what they are given and not seek to change the experience.
Otherwise, all that design effort will have gone to waste, and,
horrifyingly, the project's marketing might be
impaired:
The point is that it decreases our brand presence. That particular
user might understand what it is that they are running, but the
person who sees them using their machine or even sees their
screenshots on the web will not. The question we have to ask
ourselves is: how do we make sure that people recognise a GNOME
install when they see one?
This is the point where one needs to ask what the purpose of the project
is: to enable its users to be maximally productive and happy in front of
their computers, or to increase the project's brand presence? One might
actually think that those two goals should not conflict with each other,
but, should that come to pass, one would hope that the users would win.
The fact that they might not is cause for concern.
Allan is not alone in his views, but
neither are those views unanimously held; others have understood that extensions are going to happen
regardless:
Those who are satisfied with original design won't even care about
extensions. Those who are not, well, you can't stop them
anyway. Why making it just harder? If the majority of users are
happy with original design, consistence will be there. If not, we
may need to reconsider the design.
Owen Taylor has also agreed that there will be extensions
out there regardless of the project's wishes; he seems to feel that a
central web site might help to bring some order and
quality control to the situation:
An extension website *potentially* allows us to influence what
changes an extension can make by guidelines, requirements to be
listed as "featured", etc, though that's something we have to be
very careful about, because the whole idea of extensions is that
they allow people to try arbitrary things.
A certain amount of order and control will be wanted; among other things,
extensions are unconstrained code that can do anything the user is allowed
to do on the system. A way to collect useful extensions, review them, and
provide access to those known not to be malicious could make life a lot
easier for everybody involved. This model has worked fairly well for the
Firefox browser's extension mechanism; it could probably be made to work
for GNOME Shell too.
In the end, this is not an Apple-style walled garden; we're the free
software community, so chances are that the hackers will win out. We're
not accustomed to letting others tell us how the software on our systems
should work. That is doubly true when the system in question has an
extension mechanism built into it. If the GNOME project does not create a
mechanism by which extensions can be gathered, vetted, and distributed to
users, somebody else will. One way or another, GNOME Shell will evolve in
the directions its users want it to go.
(
Log in to post comments)