
Copyright © 2011 Bojan Smojver, Rexursive.
Permission is granted to copy, distribute and/or modify this document under the
terms of the GNU Free Documentation License, Version 1.2 or any later version
published by the Free Software Foundation; with no Invariant Sections, no
Front-Cover Texts, and no Back-Cover Texts. A copy of the licence is here.
Gnome 3 was released on 6 April 2011. So, I used Fedora 15 Beta Live to test it. The main change is, of course, the new Gnome Shell, which will be the main focus of this text.
I have been Gnome 2 (and Gnome 1) user for years now. Gnome 2 is my primary personal and work desktop and I spend north of eight hours using it daily. I also use workspaces extensively.
Note that this text is not dealing with keyboard shortcuts, because they remained mostly unchanged and are not in question. It deals with visual user interfaces alone. So, any arguments along the lines of "but this can be done using a keyboard shortcut" do not apply, because these things can be done using keyboard shortcuts in older versions of Gnome as well.
This text is not bashing of Gnome 3. It is meant to be a constructive criticism.
If you are like me and need to use Gnome both on a system with 3D acceleration and on a system without it (for instance, over VNC), you will notice that the two modes, Gnome Shell and the fallback mode, behave in almost entirely different ways. The fallback mode resembles Gnome 2 in many ways. Gnome Shell introduces the overview, which makes it act nothing like Gnome 2.
Obviously, this is an issue of consistency. Breaking consistency to gain better ways of doing things is a good thing. However, the new Gnome Shell "overview" way isn't it, as I will argue below.
In fact, if overview was not introduced, it would have been much easier to make Gnome Shell and fallback mode act more like each other (or maybe there would be just one mode, with and without 3D acceleration).
So, what is Gnome Shell overview? Let's quote Gnome Shell design page:
This is a separate view designed to enable users to get an overview of their current activities and to enable effective focus switching (in this regard, the overview is a facilitator and a mediator, not a destination).
So, the assumption is that normally you will want to stare at your current work and when you are ready to do something else, you will bring up the overview. Now, this "something else" may be starting a new application, finding an obscured window or doing something with workspaces.
Watching a video of screencasts with overview action is rather nice. However, when overview is actually used, every time you need to perform even the most trivial "something else" action, you are exposed to a change of view and other unnecessary eye candy. This gets old rather quickly, unfortunately. In plain speak, many (if not all) of the things that require "something else" to be done, should not and do not really require a view switch. I will talk about this more later.
For now, let me just say that, unfortunately, the biggest new feature of Gnome Shell is a mistake.
Something that's been written on Gnome Shell design FAQ page is quite instructive:
The Shell is designed in order to minimise distraction and interuption and to enable users to focus on the task at hand. A persistent window list or dock would interfere with this goal, serving as a constant temptation to switch focus. The separation of window switching functionality into the overview means that an effective solution to switching is provided when it is desired by the user, but that it is hidden from view when it is not necessary.
And:
The omission of a window list or dock also reduces the amount of screen space occupied by the Shell, and therefore makes it better suited to devices with smaller screens.
I have never been temped to switch focus just because I had a persistent window list (taskbar), a dock or a workspace switcher in front of me. In fact, the above text claims in the very next sentence that users actually do know when they want to switch to something else. So, saying that they would be tempted just because a window list is there, is, I hate to say it, nonsense. A cynic may even say that, by the same logic, the new Activities button would also be one such temptation. :-)
Users switch focus, because, in the operating system parlance, they've hit a blocking call, the task finished or they received an interrupt. Reasons for blocking could be boredom, task at hand too hard, running out of ideas etc. Your usual human conditions, not the presence of a mechanism to switch.
But, let's assume that it is true that users are tempted to switch by the mere presence of a mechanism to switch. The good old panel already has an autohide option, which makes it invisible unless the user really wants to see it. Given that, overview makes even less sense.
I would theorize that the problem might actually be something else. In Gnome 2, there were two panels, one on top and the other one on the bottom. One of these panels held the taskbar (window list) and the workspace switcher. Two panels were using quite a bit of space, especially on modern widescreen displays. I would always remove the bottom panel anyway and move workspace switcher and taskbar to the top panel. There was plenty of space for them there, even with the inefficient Applications, Places, System layout of the top left corner of Gnome 2. However, default was two panels.
So, in order to remove the problem that existed in default Gnome 2 layout, an argument was constructed to get rid of the taskbar and workspace switcher. Supposedly because they were tempting users to switch focus.
Another theory may be that someone created a "cool" new way of doing things and then constructed an argument that justified it. Just because something can be done, doesn't mean it should be done.
In any event, this gave birth to the new overview behaviour, supposedly in an attempt to "minimise distraction". In reality, it meant that there was no way of starting applications and switching workspaces and tasks from the main view any more.
Unfortunately, while in overview, the distraction to the user has only been increased. I will discuss this next.
Computer users of today are not computer users of the 20th century. They are far more savvy. They have seen and used quite a few systems. Without exception, all of them know exactly what they would like to do next when using a computer system.
If a user wants to start an application in Gnome Shell, he needs to click on Activities. Now, let's ignore for a second that activities is a rather meaningless term to most users. Short of them reading Gnome 3 design documentation, it will not be immediately obvious what it means. But, this is not a big problem, because by trial an error, they will find out that pressing Activities eventually leads to applications as well.
The real problem is that when Activities is pressed, several unwanted things happen:
Poor user just wanted to start a new application and yet many other, completely unwanted things happened. If user is lucky, his application will be on the dash. If not, he'll need to click again on Applications and then actually start it.
Of course, the real problem is that Activities overview contains everything but the kitchen sink. And this is precisely why overview is a mistake. Instead of simplifying things, it makes them more cluttered. More visually complicated. It gives the user interface elements that he never asked for.
And to top it all off, the change of view and continuous exposé animation isn't helping here. It adds to the poor user being visually attacked all the time and his eyes getting tired.
Just consider another simple action, like copying some text from a window in one workspace to a window in another workspace. Select text, copy, click Activities, change of view and exposé, go to workspaces bar and click on another workspace, another view change, find the other window, paste. In comparison, in Gnome 2, the same action is performed more simply. Select text, copy, click on another workspace in the switcher, change of view, find the other window, paste.
The same argument applies to a large degree to other actions user wants to perform. Finding a lost window involves getting a dash and workspaces, in addition to exposé. Sure, dash can be used for window switching too, but taskbar was criticised because it doesn't really represent actual windows, which, by the same token, makes dash also supposedly unsuitable for this task. Changing workspaces involves two view changes instead of one. And workspace switcher is far from Activities button, which isn't helping either.
Somewhere near the end of Gnome Shell development and its first official release, a concept of dynamic workspaces was introduced. Essentially, instead of predefining all the workspaces user would like to have, they get created as required. They also get removed when no windows are present in the workspace. Sounds great. Unfortunately, in practice, it is not.
I have been a heavy user of workspaces for years now. I find them to be one of the best features of Gnome and other open source desktop systems. It almost completely removes the need to search for windows lost behind other windows. It also enables separation of "activities" by what they mean to the user. For instance, I will have an e-mail workspace, a browsing workspace, a software development workspace, a remote connection workspace etc. I know where these workspaces are, visually. And if I don't, I just glance at the workspace switcher, which on my desktop is located within the only panel, at the top of the screen.
Well, this is no longer possible with dynamic workspaces in Gnome Shell. If my browser crashes in my browsing workspace, this workspace will be automatically removed. So, my browser, if I want it on a separate workspace, will have to go to the back of the workspace sequence. Which will completely change the layout of my whole desktop.
The problem is compounded by the fact that Gnome Shell also removed workspace switcher from the main view, so unless I go to overview, I cannot even tell on which workspace my windows are.
Sometimes things that look elegant in theory do not turn out that way in practice. Workspaces need to be a static thing. At least their removal.
I believe the problems described above can be solved easily. The following is just one way to do it and not necessarily the best one.
The first thing that needs to happen is that overview needs to be dropped. There is simply no justification to tiring users with a view switch and unwanted exposé animation when no such thing is required or requested. Once that's done, the top panel should look something like this:

Instead of having the abstract Activities, top left corner would have Applications - a term all users are familiar with. And this would be a direct way of getting to all applications - favourites and others included.
On the left, next to the Applications button, a good old workspace switcher would show users where they are at all times. Note that workspaces would be static.
On the right, there would be the customary clock/calendar and other system status icons. What I didn't do in my mockup is an icon that would lead to system functions, such as shutdown, hibernate/suspend, system settings and user functions such as logout. There is no need to display user's name in the panel to do this - most people know their own name. So, this could be covered by a simple icon to the left of the clock.
Applications menu could look something like this:

Note how dash is placed horizontally to increase its capacity. The search box could also be moved to the bottom, because no click-to-focus is required to search, so the distance to it is not important.
If the screen has more pixels vertically than horizontally, the dash could be displayed the way current Gnome Shell does it - vertically.
I have used default Gnome 3 background in my mockup, but the applications menu should display over the existing windows, in its own box. In 3D mode other windows could be in deep background of that menu box. Importantly, there would be no complete view switch, overview style, here.
Search for lost windows would also be simpler, done exposé style:

User could search for the window by its title. There are no other distractions on the screen.
As an alternative method of finding lost windows (without completely changing the view), a taskbar may pop up (exactly the same one as the one used when Alt-Tab is pressed) when user hovers over the current workspace in the workspace switcher or if, for instance, user right clicks on the current workspace in the workspace switcher. I'm sure there are many other ideas that can provide the same functionality.
Workspace switcher could gain its enhanced cousin when current workspace is clicked:

Again, this would not trigger a change of view. User could drag windows from one workspace to the other, with windows possibly being dropped at different locations in another workspace when Alt or Ctrl are pressed. Shift key could perform the customary snap action.
Another issue that needs fixing, and that I haven't mentioned above, is lack of "by default" right click functionality when mouse is hovering over the desktop. A menu related to file system should pop up on right click, giving users the ability to browse files, go to favourite locations (places), possibly even open the most favourite applications from there.
Even the most trivial of customisations require an extension in Gnome Shell. For instance, to remove accessibility icon from the panel, someone had to write an extension. If a user wanted to move the clock from the middle of the panel to the right, he'd need an extension for that too. And so on. These are serious usability regressions when compared to the old panel.
Fallback mode of Gnome 3 could implement most of the above functionality without much trouble. It would also lose the second panel, therefore leaving more space for applications. So, mentally switching from Gnome 3 running on a 3D accelerated display to Gnome 3 running on a 2D accelerated one would not be a problem at all.
Gnome 3 is young and it has a few teething problems. This is not uncommon in software development. Let's hope the above ideas (or some other ones) improve Gnome 3 for everyone.
These folks found mostly other trouble with Gnome 3, but same points overlap with mine:
See: Gnome fallback with Mutter.
Gnome Shell 3.2 has been released recently, so I had another look at the whole thing, just in case. In the process, I found the real irony - a whole myriad of shell extensions have sprung up, which address the issues I wrote about above. If you install enough of those, you may even get away with never seeing the overview mode, which was supposed to be the big innovation of the shell. ;-)
Some of those extensions are part of Fedora 16, some are not. A very useful set that is not included can be found here: http://intgat.tigress.co.uk/rmy/extensions/index.html. Yet another one can be found here: https://github.com/linuxmint/MGSE.