Gnome-Shell 3.2: Usable--but only with Gnome 2 shell extensions

If you hated Ubuntu's Unity desktop then the shock of your first encounter with the Gnome-shell likely caused your entire digital weltanschauung to implode. Make no mistake about it, it takes you right out of your comfort zone to a strange and unfamiliar place even if you've already tried Unity and decided to throw it back or put it in the keep net. Be shocked, very shocked.

To save readers the suffering and shock of the new, your intrepid author has bravely volunteered to be your bulwark and risk life, limb and sanity to test Gnome-Shell and see if this radical departure from the traditional desktop interface paradigm meets the essential twin requirements of productivity and usability.

Making the psychological adjustment

Flame wars. Like your local bus, nothing seems to come along for an eternity and then three arrive all at once. First was KDE 4.0. Buggy and unstable, it was pushed out the depot prematurely and promptly crucified. Unity pulled in behind and many passengers got off in droves and by the time Gnome-Shell arrived it was being surrounded by an ugly mob waving pitch forks and flaming torches swearing vengeance. Many users behaved as if time could stand still and that their cherished interfaces were guaranteed by a virtual constitution of inalienable rights.

When Gnome-Shell debuted I swear you could hear teeth grinding and sphincters audibly puckering

When Gnome-Shell debuted I swear you could hear teeth grinding and sphincters audibly puckering . Some of the vitriol directed towards it was as much the culture shock of the new as being radically jolted out of their comfort zones and much loved interfaces. But times change. Even over at the Confederacy of proprietary slavery at Redmond no one is using (or lamenting) Windows '95. And they had no choice. They were effectively presented with a fait accomplait and forced to take what Microsoft said they should have. And like it. The fora of the open source community were awash with a torrent of accusations that users were being forced to use Unity/Gnome-Shell. Forced? Only if you ignore third-party hacks and alternative distros and desktops. We do have choice. We're not Windows and desktops are not operating systems. So, it's time to adjust our bras, man up and see if the howls of anguish are justified.

Down to business

Gnome-Shell practices a less-is-more philosophy. You have a near blank canvas to paint on. If interface cleanliness is near to Godliness then the Gnome Shell must be sitting on the right hand of the Lord. The default element is Activities. That's it. De-cluttering on steroids.

Figure 1: That's all folks

The only active elements of the default screen are the menu items along the top bar. Click on one and then hover the cursor on the rest and a series of drop-down features will appear: calendar, internet connections and system settings.

Te eagle-eyed amongst you might have noticed that there was no power off/shutdown option in one of the menus. This feature was also missing in the Fedora 15 version too but in the Fedora 16 beta it was included so I was a bit surprised to find that it was missing in a more recent Gnome-Shell including the version in the 11.10 Ubuntu reposistories. It's not a deal breaker though. You can activate that option with a keyboard shortcut: As a little "Easter egg", the 'Suspend' menu item in the user menu of the shell turns into 'Power off' when you hit the Alt key. Failing that, just choose log out to go back to the login screen and power down from there. Doubtless, Power Off will be included by default in later versions of the shell. There was absolutely no reason to exclude it in the first place.

Gnome-Shell has second guessed your pain and the System Settings menu gives you the option to throttle notifications

In these days of social networking, information overload threatens to overwhelm users: Google Plus, Facebook, Twitter, Identica, Diaspora, Pidgin, Empathy. Designers of software interfaces think that you want unsolicited access to them all. At the same time. Trying to be productive in that kind of intrusive environment is distracting to say the least. Gnome-Shell has second guessed your pain and the System Settings menu gives you the option to throttle it so that when I'm writing this article or you are writing that killer Python script you are not drowning in pop up messages but when you are in social network mode you can switch it on again and be distracted to your heart's content.

So, where do you go from there? Click on Activities (or hover the cursor at the top left-hand corner above it) and your bare screen will now look like this.

Figure 2: Unity and Gnome: spot the difference

Down the left-hand side a launch bar appears as well two clickable options (Windows and Applications) a search bar and auto-hide virtual desktops (two by default). It's fairly intuitive to start any of the applications in the launcher and that's where and when it starts to get interesting and a real test of how usable and productive Gnome-Shell actually is. If you have used Unity the Gnome-Shell dash is obvious. After you have installed the shell there are a few applications by default. If you want to start one not in the menu Gnome-shell offers you two ways to do it: from the Activities button select Applications and you will be in familiar territory if you have used Unity.

Figure 3: The Gnome Shell, just like Unity

You can then filter applications according to to category and either launch one or, if you prefer you can right click and "add to favourites" which will put it in the dash (where it can also be removed again). Gnome-Shell supports drag-and-drop so if you prefer you can drag your chosen application to the dash--and keep it there.. A nice feature of dash is that, unlike Unity, it automatically resizes the icons as you add or delete applications. Nice.

Holy bat mobiles Robin! Where's the minimize button?

On-demand workspaces, as many as you need but no more than you want. Nice touch that

In a phrase, there isn't one. If that doesn't jolt you, nothing will. There's nothing to suggest what you might do. Hack it? No. You have to right click on the close button and select minimize. In Classic Gnome you would expect to see it minimized to the task bar--but there is no task bar. where has it gone? Click on Activites and there it is again. Alternatively, when the application is open you can drag it one of the two virtual desktops on the right-hand side. In a pleasing touch it automatically reduces in size, becomes transparent as you drag it and snap it to a desktop. By default, Gnome shell gives you two virtual work spaces but when you snap a running application to a workspace another blank one is automatically added. On-demand workspaces, as many as you need but no more than you want. Nice touch that.

Early editions of the Gnome Shell removed the Alt+F2 run dialogue but they eventually put it back in. That always improved my workflow. I use it a lot, especially in minimal desktops like Fluxbox and Openbox where menus are not immediately visible and you need to launch an application fast. Gnome Shell is comparable when you first boot in. Alt+F1 will pop up an overview of what's going on in your current workspace; useful if you get a little lost in a new, and unfamiliar desktop environment.

The other way to launch an application is when you are in Activities view. Start typing and a list (which, like Unity, can be filtered) will display. If your search extends from the desktop to the internet the developer have helpfully added the ability to extend your search query to Wikipedia and Google. Better still, you don't need to specifically focus on the search box. Just start typing and you're off. Nice. Shades of Gnome Do. A small productive edge.

Using Ctrl+click on a dash app already running opens another window of it in the current workspace. That was one of Linus Torvald's original gripes. Happy now Linus?

Alt+Tab is still there too. As well as displaying running applications you can also preview them too (after a short delay. If you're impatient, just press the down arrow key). Applications running on other workspaces display too, indicated by a vertical separator. Gnome Shell was designed to be clean and clutter free but I, a mere man, can multitask and the shell has some neat features to keep things staying clutter free. For example, to launch an application from the dash in a new workspace, just middle click an icon. Using Ctrl+click on a dash app already running opens another window of it in the current workspace. That was one of Linus Torvald's original gripes. Happy now Linus?

The dash resizes icons as you add/delete applications, supports drop and drag (or right click for menu options if you prefer) from the applications list. If you drag an application from the dash to a workspace that gives you added functionality by opening it there but without leaving overview mode. It's nice little touches like that indirectly aid your productivity. The Gnome developers haven't forgotten that your mouse has a middle button. Scrolling it will act as your zoom function for open windows. For a full list of keyboard bindings just do User Menu > System Settings > Keyboard > Shortcuts. You can find an exhaustive list of cheats at the Gnome site if you prefer interfacing via the keyboard.

Where are the quicklists?

The one thing that the Gnome Shell developers should have included out of the box (and is now increasingly available in Unity) to increase usability was quicklists. For that to happen they would have to support the X-Ayatana-Desktop-Shortcuts tag in .desktop files which is probably a no-brainer for those guys. In Gnome Shell though, Jumplists is currently the nearest you'll get to Unity's quicklists.

You need Zeitgeist installed for this. (If you have Gnome Activity Journal installed then you have Zeitgeist installed too. If not, install it from the repositories via the command line or your package manager.)The Jumplist extension is available from https://extensions.gnome.org/. Now, recent files in any applications will display when you right click on a dash icon. What is really needed though is the same ability to launch the likes of Firefox or Chromium in different modes, like incognito. That's more productive. Despite extensive googling I was unable to find any Unity-style Quicklists for the Gnome Shell.

Some other minor quibbles: I love the Guake drop-down terminal. It's so handy, but when I launch it the ability to toggle it on and off with the F12 key is not invariant. It will drop down when an application is in full screen mode but only when the application is toggled on and off with the Activities button. That seemed to be true for all applications running on the desktop. If I select a blank desktop and hit F12 Guake still fails to drop down but once again, when I toggle the Activities button the desktop changes to the more traditional Gnome layout and F12 works again. I also noticed that some applications (Dillo and Leafpad for example) launched but only resized to a limited degree. In order to get maximum resize and automatic full screen mode it was necessary to first right click on the close button and select the maximize option from the menu. Then, the apps can be in either maximize or resize mode simply by clicking on them or scrolling with the middle button respectively.

Gnome-Shell tweak tools and extensions--back to the future with Gnome 2

Linus Torvalds was a regular user of GNOME after he left KDE in the lurch before abandoning it too at the release of GNOME 3.0 and extolling the virtues of XFCE. He criticized GNOME 3.0 by stating, "The developers have apparently decided that it's 'too complicated' to actually do real work on your desktop, and have decided to make it really annoying to do." Usability problems were called "crazy crap," and as "'head up the arse' behavior". Some went even further by accusing the Gnome Shell developers of being fixated on trying to emulate Apple at the expense of the real target, Microsoft. But Torvalds is starting to relent. Here's why.

the GNU/Linux community promptly fired up their text editors and IDEs and brought Gnome 2 back from the dead. Lazarus lives! Or is that Linus?

The problem is virtually guaranteed to be "self correcting". Users can change distros, switch desktops. Better still, developers write software to plug the usability gaps. That's the irony. The Gnome developers made a huge investment of time to radically change the desktop paradigm. They were duly repaid by an avalanche of criticism and the GNU/Linux community promptly fired up their text editors and IDEs and brought Gnome 2 back from the dead. Lazarus lives! Or is it Linus? And what they have produced was enough to tempt Torvalds to sweet talk Gnome Shell. Enter Gnome Tweak Tool.

Gnome Tweak Tool and shell extensions are not some radical departure. They're not designed to take Gnome Shell to the next level. In fact, they "put the clock back" by allowing users to restore Gnome 2 features. Not innovative ones, but the kind of customisations and tweaks which were virtually standard and taken for granted. It's no exaggeration to say that they represent what some would call a user revolt--and there's nothing the Gnome developers can do about it. That's just the nature of free, open software released under the GPL. In fact, they've effectively thrown in the towel and adopted the philosophy of "if you can't beat them, join them" and set up an official shell extensions site. So, what features do these tools put back in to improve usability and therefore productivity?

Well, good writers borrow but great writers steal and as I'm trying desperately to become a great writer I've filched this list of what this tweak tool puts back in:

Available Tweaks

  • Install and switch gnome-shell themes
  • Switch GTK themes
  • Switch icon themes
  • The user-interface and title bar fonts
  • Icons in menus and buttons
  • Behavior on laptop lid close
  • Shell font size
  • File manager desktop icons
  • Title bar click action
  • Shell clock to show date
  • Font hinting and antialiasing

Yes, you can customize Gnome-Shell

There are many urban myths: that Elvis is alive and well and hiding in the basement at Gracelands, that the moon landing were faked and that Neil Armstrong wished Mr. Gorsky good luck as he stepped down onto the lunar surface

There are many urban myths: that Elvis is alive and well and hiding in the basement at Gracelands, that the moon landing were faked and that Neil Armstrong wished Mr. Gorsky good luck as he stepped down onto the lunar surface. Another one, that Gnome Shell is not customisable, isn't true either. With the tools mentioned above it is customisable but only if you define that as meaning putting back "features" that were in Gnome 2. Not so much killer features as killed features that have been resurrected. But the Gnome Shell has an unusual feature: it's the only desktop environment written in Javascript and CSS and if your have those web development skills then you might just become a Gnome Ninja. To be precise, Gnome Shell uses Gjs for Javscript binding (based on the Spidermonkey engine) and theming is done with CSS. (Mozillalabs has a similar project called Chromeless applying the web technologies of HTML, CSS and JavaScript to replace the conventional browser interface.)

I came across an uber Ninja who probably thinks that GUI tweak tools are for wimps. He prefers to get down and dirty with raw Javascript and CSS rather than merely tweak a limited subset of the shell. Of course, everyone has their favourite editor/IDE for JavaScript but the Gnome Shell comes bundled with it's own JavaScript console and inspector tool which is useful for debugging any code you write to extend the shell (just type lg in Alt+f2 to launch Looking Glass and Esc to exit it). This will not directly increase productivity but if you have the programming chops it will allow you to make the Gnome Shell bend somewhat to your will. If it means fewer mouse clicks to get things done that's good but if you don't know JavaScript and CSS then you'll have to go down the third-party route to make the shell really usable and therefore productive. Right now, that means Gnome Shell Tweak Tool.

By now it should be in the repositories of the major distros so in the case of Debian-based distros like Ubuntu (mine) it's a quick sudo apt-get install gnome-tweak-tool away. If your repositories don't have it there is a Debian binary for Ubuntu 11.10 at Launchpad. Debian users can avail of three versions for Wheezy, Sid and experimental dependencies notwithstanding if it not in the repositories either. Other versions for Fedora, OpenSUSe, Arch, Slackware, Mageia are available as stand alone binaries from the superb Linux Package Search if the software has not yet landed in those distros.

Once installed, Gnome-shell-tweak tool is your portal not only to modest tweaking but, much more importantly, to the killer feature that really make Gnome Shell fully usable and finally productive. Extensions. They're so popular that Gnome had to relent and put up their own official extensions page (see above). Of course, everyone will have their own shell extension favourites but if you want to get back the familiar and useful functionality of Gnome 2 the places and applications menus are the two must installs. As for themes and icons, the place to do this is via the newly-installed tweak tool. Not only will you be able to toggle on and off desktop icons but put back in features familiar to Gnome 2 users.

Figure 4: Some Shell Extensions

The Applications drop-down menu looks good and contains expandable sub menus as this screenshot indicates.

Figure 5: The Applications menu restored

The Places drop-down menu makes a welcome return thanks to another installed shell extension.

Figure 6: The Places menu restored too

And finally

Themes won't add a scintilla of productivity to your Gnome Shell sessions but we all love them and as you've been such a lovely audience I'll leave you with a selection of ten of the best shell themes to make your desktop set up pretty too. Use the Gnome Shell Tweak tool to install them. Have fun.

When I used Windows (more than ten years ago) I used the f-word. A lot. My language improved as soon as I defected to the Republic of FOSS and applied for refugee status. I became familiar with another version of the f-word. Forking, that is. And nobody seems to be better than the developers at Mint, a Debian/Ubuntu derivative. Of all the distros to profit from the radical changes with Unity and Gnome Shell, Mint has been the big winner--and not only just because they have persisted with Gnome 2 but also because they have incorporated the best of Gnome Shell 3.2 and beyond.

In Linux Mint 12 the developers have incorporated Gnome Shell with Mint Gnome Shell Extensions (MGSE) to give users a traditional Gnome Shell experience. This effectively allows users to toggle the desktop between a pure Gnome Shell 3 desktop and one with extensions to replicate the Gnome 2 desktop. You can mix and match those features to get your desired, bespoke experience. So, you have the best of both worlds with Linux Mint, but they've gone even further by forking Gnome 2 itself to make it compatible with Gnome Shell 3, allowing users to run both versions on the same system.

It's called MATE and it's available on the DVD version of the Linux Mint 12 ISO or via the mint-meta-package in the repositories. MATE is a collaboration with other developers so its future is not guaranteed. The good news is that you don't need to abandon Ubuntu to try it out as a separate desktop login option. WARNING: some users have reported problems going down this route. It might be better to install/dual boot with Mint itself or try out a live CD/DVD or USB version. MATE is Mint's version of pure Gnome 2 but if you want elements of Gnome shell and MGSE, then Cinnamon might be a better bet. This looks like a safer bet than the MATE as it does not mix repositories (which usually leads to problems) because there is a specific version for distro-specific repositories like ubuntu 11.10 and 12.04. Again, install at your own risk.

My bumpy road to Gnome Shell 3.2

My first encounter with Gnome-Shell came from installing a Fedora 16 Beta ISO on a USB stick and firing it up on my old Asus netbook (not ideal, but it's the only machine I had left at the time that supported booting recognition in the BIOS). Well, it's not a powerhouse but it did run reasonably well but not as fast a Xubuntu installed on the solid state drive which was specifically designed for low-power machines like netbooks.

My very first impression was that Fedora has gone to a lot of trouble to make itself a sumptuous showcase for Gnome-Shell (version 3.2). Whatever else you say about it, you can't deny that it's a bit of a glamour puss. It didn't fall out of the ugly tree. The only initial problem I encountered was that the netbook screen really didn't do full justice to it. The problem was solved when I connected up my 32" Samsung flat screen TV in PC mode via an old VGA cable and adjusted the monitor setting to use the maximum resolution of 1336 X 768. Or rather, the problem was not solved. Fedora viewed OK on the netbook but the DVI output to the TV never got further than the desktop wallpaper and when, eventually, it decided to display more the screen "split" so that there appeared to be two resolutions running. Clearly, the solution was to disable the DVI output and change to the maximum allowed of the TV but as soon as I tried to do anything the screen went haywire and resembled a psychedelic stripy, zigzag canvas. Unusable.

The Solution? Install one, get two free

Before I come to a solution I should say that I'm fairly sure this was not a hardware problem. I know, because I rebooted the netbook, sans the USB stick, and the default Xubuntu fired up and once the resolution had been reset and DVI output disabled, I was looking at a flawless 32" display. For the record, the same procedure applied to my old 19" CRT monitor.

So, what was the solution? It was only an apt-get install away, but once again the Devil farted in my face. Synaptic indicated that Gnome-Shell 3.2 was available in the repositories but the download failed half way through, complaining that some files could not be downloaded. It's at times like this that PPAs do come into their own. And not for the first time either. There are several available. The one at Launchpad has been reported by some users as causing significant problems so I played safe and went for an alternative one provided by the Gnome team, also on Launchpad. (Since then I bought a newish laptop and Ubuntu 11.10 has Gnome Shell 3.2 in the repositories as standard. That's better.)

This time I was good to go. Gnome-Shell popped up at the login screen as an option. At last a flawless 32" screen display. The bonus here was that I now had two further login options: Gnome Classic and Gnome (no effects). That was a totally unexpected surprise, not least because Ubuntu's Unity users were having to find a way to get back to that login option.

Postscript:While finally putting this article to bed, as Sod's law would have it, Gnome Shell 3.4 was released. It hasn't hit the Ubuntu (or Fedora?) repositories yet but it's probably available in a PPA or in a live CD/DVD if you can't wait. I'm glad to report that thew Gnome developers seem to have been listening as this article seems to indicate.. It lists all the changes that have been made to make the shell more productive and user friendly.

License

This work is licensed under a Creative Commons Attribution 3.0 Unported License.