The GNOME Shell Extensions may be just what the Linux desktop needs to end its user revolt.
Extensions -- plugins that add specialized bits of functionality to a Linux desktop -- have helped many free software projects succeed, including Vim, LibreOffice, Firefox, and Amarok. Could they do the same for the often-beleaguered GNOME 3 release series?
The GNOME Shell Extensions site has been running for a little less than a year now. Technically, it's in beta, but, if my experience is any indication, the problems are few.
They are easily identified by the comments, and can generally be solved by finding the conflicting extension that needs to be turned off. In some cases, an error will even take you automatically to a troubleshooting page.
Some extensions may be available as packages in your distributions, but the majority of the over 250 currently available must be installed separately for each user account.
Using the site, you can install each extension to ./.local/share/gnome-shell/extension in the current account's home directory by toggling the On/Off button on its home page. You can disable extensions by toggling the extension to Off -- or, more conveniently by installing Extension List, which adds the same list to the overview page. You could also try GNOME Tweak Tool, which is in most distro's package repositories.
For some, this installation method may seem an invasion of privacy. However, the tradeoff is that it allows the GNOME project to track the popularity of extensions and make decisions based upon them. For instance, GNOME Board Member Andreas Nilsson tells me that the popularity of the Shutdown extension is partly responsible for Shutdown replacing Suspend as the default exit choice in the upcoming GNOME 3.6 release.
Scanning the available extensions, you soon find that they fall naturally into two categories: those that work with the design GNOME 3 release series, making at the most minor changes, and those that not only recreate the panel applets of GNOME 2, but attempt to convert GNOME 3 into something as close to GNOME 2 as possible.
Extensions That Work With GNOME 3's Design
Even if you are satisfied with the GNOME 3 release series, you may find some small things to change. For instance, if you do not use the accessibility tools yourself, you might want to install Remove Accessibility to remove them from the panel.
Or, if you regularly launch multiple applications, you can correct the overview's default behavior with the Persisting Overview extension, displaying the overview until you specifically move away from it.
Similarly, with Left-Middle Message Tray or Shell OSD, you can move notifications and messages to a spot of your own choosing.
If you want not to be distracted by notifications when you are working, you can install Distraction-Free to ensure that they only display in the overview and not in the main window. If you use Suspend or Hibernate, you might want to consider installing the Frippery Shutdown Menu or Alternative Status Menu to add those options to the menu.
Other extensions add functionality. With Multiple Monitor Panels, the panel can extend across more than one monitor, while the Media Player Indicator mimics the same feature in Ubuntu's Unity.
For the most part, extensions that work within GNOME 3's workflow tend to be relatively cautious. However, in the next few years, this category will probably grow and become more imaginative as users become more familiar with the interface.
Meanwhile, nothing stops users from installing applet-like or GNOME 2-recreating icons as well, although the mixture of design philosophies might end up being jarring.
Reviving GNOME 2 Applets
Part of the design of the GNOME 3 release series was to remove the clutter of applets from the panel in order to reduce the confusion of new users. However, perhaps a quarter of the extensions restore the clutter by offering the equivalent of the GNOME 2 applets.
As in GNOME 2, users can choose between a Binary, Analog, or Fuzzy clock, as well as a Battery Indicator and CPU Temperature Indicator.
Should you choose, you can also add a Trash Button, a Force Quit button, a Calculator, a Terminal, and a Show Desktop Button, all items that were standards on GNOME 2 panels.
Other applet-like extensions are new, including Area Screenshot, and the self-explanatory Unit Converter and Currency Converter. Even if you are not one of the numerous fans of GNOME 2, you may find some of these useful.
However, if you do prefer GNOME 2, these applets have some major drawbacks. You can't reposition them on the panel, nor can you add custom launchers. Still, they do restore some of the clutter that many users find necessary for efficiency, so they are worth browsing, regardless of your preferences in desktop environments.
GNOME 2 Rises Again
If you want to simulate GNOME 2 on top of the latest GNOME release, GNOME Shell extensions will take you a long way toward your goal.
Probably the first addition you will want to add is GNOME Tweak Tool, which is not included on the extensions site, but allows so much customization of the desktop that you will want it anyway.
In particular, GNOME Tweak Tool restores icons to the desktop, but only files -- if you want to add applications, then make symbolic links and add them to the Desktop folder via the file manager. If all you want is icons, you might want only the toggle switch provided by Desktop Icons Switch.
Returning to the extensions site, you might continue by adding the Frippery Bottom Panel, which includes a task bar and a virtual workspace pager. The workspace pager is basic, allowing you to set only the number of workspaces and the number of rows in which they are displayed on the panel, so you might prefer WorkSpace Indicator instead.
Next, if you want to rid yourself of the overview, the Frippery Applications Menu will remove the Activities button on the top panel and replace it with an Applications menu.
The result is a menu in which sub-menus open directly below their top-level items -- an arrangement that can get cramped, but which you might prefer to switching to the overview for a menu. If you have added a workspace control on the main screen, you may have no use for the overview, although if necessary you can switch to it by pressing Alt+F1.
With these changes, you have most of the basics of GNOME 2. However, you might want to add a few additions, such as the Places Status Indicator (the equivalent of the GNOME 2 Places menu) and Trash button (if another extension hasn't already added the icon for you).
You might also add the Evil Status Icon Forever to add GNOME2-like notifications, and either Alternate Tab or Windows Alt Tab to change how the desktop cycles through the open windows.
With these half dozen or so extensions plus whatever applet-like extensions you prefer, you will have an interface that is considerably closer to GNOME 2. Of course, it won't be as easy to customize, especially if you want to add icons to the desktop or the panel.
Also, you will have to be satisfied by the position in which controls are placed, which may not be your preference. However, by the time you finish, you should have about 90% of the functionality of GNOME 2 in return for your efforts -- somewhat less than Linux Mint's Cinnamon offers with its extensions, but for many people probably enough to satisfy them.
The beginning of the end?
The GNOME Shell Extensions site does not show the number of downloads, although you can list extensions by popularity (for the record, the top five are Alternative Status Menu, Remove Accessibility, Advanced Settings in User Menu, Media Player Indicator, and User Themes).
However, the number of extensions that recreate GNOME 2 appearance and functionality is also suggestive. The effort put into these extensions can hardly be dismissed as the work of anti-GNOME efforts, after all. And GNOME members have has already shown a willingness to pay some attention to what happens on the site.
A few weeks ago, I suggested a number of recovery strategies that GNOME might consider, including shipping with Linux Mint's GNOME 2 extensions. However, after investigating GNOME Shell's extensions, I suspect that I might have missed an obvious possibility.
I might be guilty of wishful thinking, but now I wonder if GNOME plans to continue with GNOME as it is, while promoting the extensions site as a way of appeasing users. That would save everyone's face, and allow the community as a whole to move beyond the overly-prolonged users revolt. It would allow developers in particular to focus on something new rather than re-creating what already exists.
If that is happening, then expect to see GNOME Shell Extensions add the handful of extensions needed to finish the revival of GNOME 2, followed by major distributions shipping versions of the GNOME 3 release series with a dozen or more extensions installed by default. If these things start to happen, then we'll know that we're finally seeing the end of the revolt.
And if they don't happen? Regardless, spend an hour on the GNOME Shell Extensions. You may find the effort lets you make your own separate peace.