Exploring the GNOME Shell in Ubuntu

About the author

Jono Bacon - Jono Bacon is a leading community manager, speaker, author, and podcaster. He is the founder of Jono Bacon Consulting which provides community strategy/execution, developer workflow, and other services. He also previously served as director of community at GitHub, Canonical, XPRIZE, OpenAdvantage, and consulted and advised a range of organizations.

Finding Unity in GNOME Shell

As many of my regular readers will know, I am a big Ubuntu fan. I spent nearly eight years working at Canonical and my love of Ubuntu has not ceased since I left.

One of the fundamental components of Ubuntu is Unity. While Unity ruffled more than a few feathers when it first came out, it has since grown into a comprehensive desktop environment for Ubuntu. Unity is the cornerstone of Canonical's convergence vision in which a single code base can power desktops, phones, tablets, and more.

Right now, though, the Unity story is divided into two pieces. All the exciting new work is going into the next-generation Unity 8. This is where the convergence is happening. Unity 8 is by no means ready yet and is only suitable for tinkerers.

For stable Ubuntu users we have Unity 7. This is the Unity that we know and love in recent Ubuntu releases, and with all the focus going into Unity 8 it's basically in maintenance mode.

Experimentation

The downside of a maintenance mode Unity 7 is that it doesn't introduce many exciting new features—that is all destined for Unity 8. As such, I got the itch to explore what an alternative might look like until Unity 8 is ready for primetime on my desktop. With this in mind, I decided to take a look at GNOME Shell.

Now, I have a pretty good idea of what I want in a desktop environment. I want simplicity, elegance, a lack of clutter, and access to the data both locally and online.

With these needs in mind, I have to say, GNOME really impressed me.

Getting started

To get started I did a fresh install of Ubuntu 15.10, which comes pre-installed with Unity 7. I then installed the GNOME Shell packages, which are version 3.16. These packages integrate nicely with Ubuntu's LightDM login manager and I could select GNOME Shell when logging in. After I had the stock GNOME installed I then went and installed the Ubuntu GNOME PPA, which brings in some newer packages and will ultimately ship 3.18 soon.

The default GNOME Shell experience is pretty good. Access to your applications is simple via the top-left hot corner, which displays the dock and provides a search box for finding specific applications. Multiple workspaces are also easily accessible here.

The indicators on the panel are simple and effective. I was able to connect a range of online accounts to the shell, and it displays calendar events, notifications, and more in the calendar popup.

Performance of GNOME Shell is really good. It feels sleek, quick, and responsive to what I am doing. It also felt rock-solid with no jerkiness, bugs, or awkward visual artifacts. You really get a sense of the quality in the desktop.

What really struck me though was how simple and effective the design is. While many people have been talking about the desktop experience of GNOME, the real innovation and value in my mind is going into the applications. The GNOME community has been trimming down user interface clutter and maximizing screen space. The use of client-side decorations, concise UI, and embedded hamburger-style menus make the apps feel sleek and efficient. This provides a cognitive simplicity that I love.

What surprised me when I really delved into GNOME was how many applications have been written to serve simple and effective use cases. For example, there are calendar, music, videos, documents, and other applications that provide simple and effective solutions for finding and managing content. This is definitely a page taken out of Apple's book, and in a world of increasingly overcomplicated desktop environments GNOME felt refreshing and simple. It actually reminded me of my introduction to GNOME 2 back in the day—I liked how elegance was chosen over complexity.

Two good examples of this are gedit and GNOME Music. For the latter, my music needs are simple: browse my artists/albums and play songs. It serves this use case with zero clutter and aggravation. For the former, I just want to write text. Again, the uncluttered user interface and effective use of screen real estate was a joy to use.

Like any new experience though, there were of course some bumps in the road as I got used to this new desktop. It was then that I discovered GNOME Shell Extensions.

Tuning the experience

When I started using GNOME Shell there was one little thing that bugged me. I didn't like how I had to hit the top-left corner to see the launcher/dock. It felt like a clumsy design.

I did a little Google searching and found people asking how to show the dock all the time. This is when someone pointed the questioner to extensions.gnome.org.

This website basically provides a huge library of small desktop tweaks that you can switch on. Now, these are not big bulky packages that you have to download and install. They are basically features that you enable directly from the browser and it impacts the desktop. It does this using a combination of a browser plugin and downloading some code behind the scenes.

So, as an example, I found the "Dash to Dock" extension, which lets you tune how the dock works. I flicked the switch to turn it on in the browser and my dock immediately popped out. Not only that, but there are integrated preferences for tuning auto-hide, size, theming, and more.

This was a revelation to me. Essentially the GNOME community have designed and shipped a sensible default user experience and then created a service in which seemingly anything can be tuned, customized, and hacked into the way you like it. It is the ideal balance of simplicity in defaults that also paves the way to tune it abundantly.

I went on to install extensions for a drop-down terminal, Skype integration, media player integration, alternative alt-tab switching, and more.

What I love about this model is that while defaults are really important, it provides an opportunity for users to make GNOME Shell into something truly theirs. The GNOME community have done a really nice job with how it all fits together.

I also tuned some other elements of my system. I changed my default system fonts to the Ubuntu fonts, switched my theme, enabled desktop icons, and some other tweaks. This effectively turned my computer into an interesting mix of Unity and GNOME; an experience I really like.

Room for improvement

So overall I am loving GNOME Shell, and I love the work that continues to go on in the GNOME community.

However, there are though a few small niggles I still have with it.

Firstly, menu management feels a little awkward right now. While some GNOME apps have removed menus and put them into the hamburger-style button, other apps don't really do this and just display a menu bar in the app.

Now, I know this might be heresy to some of you, but I love the global menu in Unity and on the Mac. I use a mixture of Ubuntu and Macs in my daily work, and the global menu feels so much more space-efficient and simple for me for apps that provide a lot of functionality. I would love to see a global menu extension for GNOME Shell (or even better, built in), but from what I can tell the platform can't support this well due to the way the top bar is laid out. There are some clumsy versions of this where the global menu drops down from the current focused app in the top bar, but this is, well, weird.

This leads me to my second minor whine. The top bar is a huge waste of space. On the left you have "Activities," next to it the currently focused app is listed, then a load of blank space, the calendar/clock, more blank space, and then the indicators.

I feel this design is flawed for a few reasons. Firstly, it wastes a stack of space at the top of my screen. This space could be used for a global menu that could be visible for all applications (even those designed to limit applications in the main window like new GNOME apps do). Secondly, the currently focused app seems rather lost in the top bar. I know I have a bunch of apps open, yet only one is shown in the top bar. This seems awkward, and it seems the only reason to show the app there is to access a menu that could conceivably be available from the quicklist in the dock or in a global menu. Finally, the top bar clumps a bunch of indicators together which seems confusing and doesn't show any legacy indicators at all (e.g. Dropbox or other apps). These legacy indicators use another hot corner that is both undiscoverable and, well, strange.

If I could wave a magic wand in the GNOME project, I would simply model the top bar on the one in Unity but then add Activities to the left. This would provide consistent menu access (as opposed to this odd mix of in-app menu bars and menus buried under a hamburger button). It would keep the indicators to the right and have different indicator icons and thus sub-menus, which fits the mental model of other computer users (e.g. Mac, Windows).

Other than these minor gripes though, I am tremendously impressed with the work of the GNOME community. Many years back I used to spend a lot of time with GNOME folks and they are good people. What is evident here is the passion, focus, and engineering excellence that has gone into building GNOME Shell.

Tags

This article is part of Jono Bacon's Six Degrees column, where he shares his thoughts and perspectives on culture, communities, and trends in open source.

About the author

Jono Bacon - Jono Bacon is a leading community manager, speaker, author, and podcaster. He is the founder of Jono Bacon Consulting which provides community strategy/execution, developer workflow, and other services. He also previously served as director of community at GitHub, Canonical, XPRIZE, OpenAdvantage, and consulted and advised a range of organizations.

13 Comments

Jono you rock! I love Ubuntu and have been using it for almost ten years now. I didn't like Unity as well as Gnome. I recently installed Gnome and now thanks to your article I have lots more to explore. Thanks for the new tweaks!

I'm not a GNOME user, but I have consistently been impressed with the Gnome 3 desktop. It's great to see a project with such vision and passion behind it produce something that is beautiful to look at and fun to use.

I agree with you on most parts you mentioned, though still prefer Unity over Gnome. I am glad to see the mention on extensions and I too have seen the top panel and title part of a window as taking a lot of screen real-estate.

Why did you not use Ubuntu Gnome? Was it something to do with the Gnome PPA?

You can find several ways of doing what you want to do at the Firefox gnome extensions pagehttps://extensions.gnome.org/ one is to use "Applications menu", And I think you will also enjoy "Laine" that allows you to manage different volume sources at the same time (as playing while you watch or hear a podcast)

IMO global menu bar like in Unity is not the way to go... Gnome is is trying to make this menubar a dead thing... And it's pretty cool! Others application need to explore new concept, Ms Office doesn't use a menubar so it's possible.

For the applications access, i'm a big fan of the "hit the top-left corner to see the launcher/dock", at the point of making me crazy when using another Desktop Environnement.

I am starting to default to just Gnome on my Arch install (KDE/Plasma puts too many files cluttered over my home dir, and mostly am starting to like Gnome Shell.) Couple of my own gripes:

* Yes, top bar. Should be flat (no rounded corners by default.) Cantrell font is ugly for this (you can override, but you need to know what you are doing.) Yes, could be improved in other ways as well. OS X menu bar blows it out of the water.

* Adwaita theme. In apps that use the regular top bar, waste of space. So darn thick! Ugly transition to main part of application. I'll just leave it at that.

* Animations are all or nothing. I like to see an animated transition when moving between workspaces. But that crap where the application icons transition in from the side drives me nuts. So I just turn it all off via dconf-editor.

* Related to above, I have to do a minimal shell install and refuse to install the control center. Cheese as a dependency, that then pulls in all the telepathy or contacts crap or whatever, that then runs some daemon in the background, seems to almost double memory requirements? I don't need to post my damn mug everywhere and don't even own a webcam.

* And why does Avahi seem to be installed by default? Maybe that is an Arch base install thing, but I doubt it based on the simplicity of Arch. I'm sure Gnome is pulling it in on a *minimal* shell-only install. I could be wrong where this is coming from, but if not... Let me decide if I want to run that crap!

I could go on. I like what they have done, but lots of rough edges still. I'd like to stick with Linux for a dev environment, but the new OS X (10.10+) design changes make for a slick looking desktop. Aesthetics matter to some of us.

Jono, a great article! I have dabbled with Ubuntu-GNOME a bit in the past and also with dropping Gnome into my regular Unity environment. There are a ton of things I like about Gnome3 but I share similar misgivings about the top of screen and application windows. I think the Unity folks have given us a great option in terms of global menus or menus in the window bar at the top of each application, and I'd love to see something similar in Gnome3. This design is great for two reasons: 1) it recognizes that our screens today may be wide but they are SHORT and wasting vertical space should be a crime (and by such reasoning the ribbon architecture in certain applications in certain other operating systems should be a capital crime but I digress harrumph harrumph); 2) it recognizes that on a really big, high resolution screen a global menu may be a long way from a small application window in the lower right of the screen.

Besides that, in our generally Linux household we have one non-Linux holdout; and spending a few minutes working in that other operating system that comes from Washington state tells me everything I need to know about how clear, concise and therefore user-friendly both Gnome3 and Unity are in comparison.

Hey, for the indicator inconsistency problem you could try using the "TopIcons" and "KStatusNotifierItem/AppIndicator Support" extensions: the former moves the legacy tray icons into the top bar, the latter adds support for apps that use libappindicator or the kde thingy.

Regarding global menus: I have grown to deeply hate OSX, but frankly the global menu is pure genius. I like how simple apps are moving to different paradigms, but I really can't imagine super complex applications like and IDE or GIMP without a menubar, and global menu shines for this.
Sadly, it can be done in Unity because Ubuntu uses a patched version of GTK/QT that expose the menu models over DBUS (IIRC) and removes them from the main window, but those patches and this vision never got accepted upstream :(

The opinions expressed on this website are those of each author, not of the author's employer or of Red Hat.

Opensource.com aspires to publish all content under a Creative Commons license but may not be able to do so in all cases. You are responsible for ensuring that you have the necessary permission to reuse any work on this site. Red Hat and the Shadowman logo are trademarks of Red Hat, Inc., registered in the United States and other countries.