17 April 2017

Why Gnome 3 can not replace Unity 7

For a few seconds I thought it was just an April Fool's prank, but the date of the article dismissed any doubts. Canonical is to put an end to user interface development towards the vision of Convergence. The arguments are pretty compelling: the market does not exist. Four years after the Ubuntu Edge campaign it is indeed startling that not a single carrier joined in to experiment the novel concept.

Together with this shock announcement there was something far more overreaching: Canonical is to drop Unity 7 from Ubuntu in 2018. The desktop environment developed in house is to be replaced by Gnome 3. Further news reinforced the trend: staff to be laid off and the CEO stepping down. Canonical seems to be abandoning user interface development all together.

It was great while it lasted, but after almost five years using Unity 7 it is time to move on. But where to? Is Gnome 3 really an appropriate replacement? Below the fold is a detailed account of my experience of two days of work on Gnome 3.

Looking back

I was pretty comfortable with Gnome 2 when Ubuntu 11.04 introduced Unity 7 to desktop Linux users. It was not an easy transition, some visual metaphors where not straightforward and nasty bugs lingered. Part of the reason for Unity 7 was the direction Gnome itself was taking in its leap from version 2 to version 3. Still, I decided to try it as an alternative to the imperfect Unity. Gnome 3 turned out to be a big shock, incredibly hard to use and many times interfering with programme interaction.

Even with all its shortcomings, in 2011 Unity 7 was a far more usable desktop environment than Gnome 3, so back to Unity I went. I also installed Xfce 4 and for a number of months used Unity 7 and Xfce 4 alternatively. Unity 7 really came alive when I settled in my mind its many keyboard short-cuts; suddenly everything became much faster and fluid. At some point I realised I was tweaking Xfce to look and work like Unity, at that point the choice was obvious.

When Ubuntu 12.04 came out most of the earlier problems with Unity 7 had been solved. To this day this remains my favourite Ubuntu release, with a state-of-the-art desktop interface and full featured applications. It is the only LTS release I could use straight out of the box, with hardly any tweaking. As a side note: usability degradation of default applications has plagued recent Ubuntu releases, prompting the fix-ubuntu project.

Fast forward to April of 2017. With the end of Ubuntu desktop on the horizon it is time to sort out which desktop environments may provide for an appropriate alternative. Since Canonical is to shift to Gnome 3, that seems the obvious place to start. More than six years after the first release, for sure many of its shortcomings have by now been solved. I installed it from the official repositories and worked two full days on it. The remarks below report to a stock Gnome install, without any custom set up.

Workspace management

The first big difference from Unity 7 to Gnome 3 is workspace management. On Unity I work with four workspaces in a two-by-two matrix. This allows me to shift between any of the workspaces with a single key combination; the same is true when moving windows from one workspace to another. This arrangement is better than having four monitors, for instance, as one can change between workspaces without moving eyes or neck.

With Gnome 3 workspaces are arranged in a pile, meaning that it can take up to three key combinations to move to a desired workspace. This soon becomes a problem. It is distracting to pass through workspaces I do not wish to and many times I just get "lost", i.e. I loose track of which workspace I am in. "Is this workspace number two or number three?" "To exactly which workspace I sent that window?"

Apparently, Gnome 3 is designed primarily for mouse interaction, the user is expected to call in the application grid and then choose on the right side overview to which workspace it wants to move. Using workspaces this way I do not get "lost", but it is incredibly tedious, and slow.

The Gnome 3 workspaces pile. This overview presented at the right of the screen with the Super key eases interaction, but requires considerably more input from the user than Unity 7.

Another feature that I find confusing is the listing of all open windows with the Alt+Tab short-cut. On Unity 7 only the windows on the current workspace are shown in this list. When I use this function on Gnome 3 the immediate reactions are: "Didn't I sent that window to another workspace?" or "Am I in the right workspace?" Perhaps this is a feature one can get used to, but I really miss its point. Window encapsulation is one of the primary advantages of workspaces.

The Launcher

Another obvious difference is the purpose and use of the launcher. On Unity 7 it serves well beyond starting programmes, it provides immediate visual feedback on which programmes are running, how many windows of the programme exist and on which workspace they may be. The launcher in Gnome 3 is far less useful, it requires mouse or keyboard input to become visible and does not provide visual cues on window location. The minimalism of the launcher, coupled with the functioning of the Alt+Tab short-cut, means that there is no obvious way in Gnome 3 to known which windows of a particular programme are in the present workspace, much less in other workspaces.

As with Unity 7, it is possible to remove and add programme icons to the launcher in Gnome 3. However, I did not succeed in ordering them, even though there is a movement animation when one drags one of these icons. Another important difference is keyboard control of the launcher, in Unity 7 the first ten entries in the launcher can be invoked with a simple key combination; on Gnome 3 it is impossible to start a programme from the launcher without using the mouse.

The Gnome 3 launcher (left) provides no feedback on the number of windows open, nor their location. Unity 7 (right) not only indicates how many windows are open but also if they are in the present workspace.

After the first morning of usage I started understanding that to be productive I would have to be minimalistic on Gnome. I reduced the number of workspaces to only two and reduced the number of running programmes as much as possible, to avoid getting "lost". To start programmes I used only the search feature to skip mouse input and forgot about the launcher.

A minimalistic Dash

With normal work slowly resuming, another issue started emerging: the minimalistic dash. It does not display the informative icons that certain programmes create in Unity 7; this affects a number of important applications, such as Tomboy, Diodon, Telegram, ownCloud or the System Load Indicator. Using htop I could confirm all these programmes were running, there simply was no visual information available about them. And the few existing icons provide far less functionality that their counterparts in Unity. For instance, it is not possible to control music players from the dash, nor is it possible to suspend the computer from there (I could not find any other means of doing it).

With time the minimalistic dash revealed itself the most problematic characteristic in Gnome 3, considerably degrading usability. This is particularly severe regarding Diodon, since the keyboard short-cuts do not function either. I tried restarting the programme, checking logs, etc, but could not find a way to interact with Diodon on Gnome 3. I did not figure if this absence of programme icons is either a bug or a feature, but it simply meant the usability penalty in Gnome 3 was too heavy to keep bearing.

The Gnome 3 Dash (top) is highly minimalistic, while Unity 7 (bottom) provides an area for instantaneous visual feedback for various programmes.

Beyond the differences in similar functions there are a number of other features that simply do not exist in Gnome 3. The most salient is the heads-up-display feature, that allows searching among programme menus through simple keyboard input. This is particularly useful when using deep programmes such as QGis or Gimp. The asset Lenses are another example; the ability to search for particular documents types (e.g. images, music) with a single keyboard short-cut is an important advantage of Unity 7.

Conclusions

The purpose of this exercise was not to determine which is the "best" of the two desktop environments, but rather to assess their differences. Gnome 3 has a large pool of satisfied users, meaning that its approach to the desktop is certainly valuable. And as someone that for long used Gnome 1 and Gnome 2, I am happy to see the project maintaining a strong following.

But after all these years with Unity 7 I can not help feeling uncomfortable with Gnome 3. I understand there may be ways to deal with many of the issues identified in this exercise, perhaps with custom settings, perhaps with add-ons to Gnome 3. However, they highlight how alien Gnome 3 appears to a Unity 7 user.

The take home message of this exercise is that Unity 7 and Gnome 3 are markedly different desktop environments, designed with different - sometimes almost antagonistic - goals. Gnome 3 is a low visual feedback environment, meant for a small number of workspaces and highly reliant on mouse input. In its turn, Unity 7 is far more open to keyboard interaction, embraces workspaces as a cornerstone of desktop interfacing and overall offers far more modes of interaction and features. Unity 7 comes across as a transparent environment, providing immediate visual feedback on what may be happening with each of the programmes it manages; by contrast Gnome 3 opts to hide many visual cues, preferring a clean desktop, focused entirely on the current foreground programme.

Gnome 3 can not possibly be regarded as an outright replacement for Unity 7. For now I will continue working on Unity 7, until I find an appropriate replacement.