Saturday, June 1, 2013

Why Gnome 3 sucks for a desktop power user

When Gnome 3 replaced my familiar Gnome 2 user experience I was not very pleased. The point of this post is that instead of just complaining about Gnome 3 I would like to help make it better.

What I noticed first

My productivity suffered. I was spending more time waiting and searching for apps, information and action buttons. I'm used to be able to glance my screen and absorb a lot of information about the state of my files, apps and whatever. Trying to do this on Gnome 3 I would just waste time and get easily distracted. Why can't I even see modification times for files modified on any other day than today? Why isn't there even an option in settings for this? Why can't I change the SElinux security context of my files? I wanted to really know why the user experience sucked for me so I tried to figure out what is the difference between Gnome 2 and 3. My conclusion was that Gnome 3 is a window manager for touch based devices, but tries and fails to be a window manager for desktop as well.

Desktop UI

  • Viewing distance: short
  • Pointing device: mouse
  • Text input: physical keyboard
  • Usage: a wide selection of applications that are used with both keyboard and mouse at the same time. Ratio of interactions/time is high.
  • Hardware: Fast processor and lots of memory, high resolution
Because the amount of interactions is high even the slightest delays will add up to much time spent waiting.
A desktop UI has evolved to perform most actions with minimal effort.(Minimize mouse travel, use keyboard shortcuts in order to avoid menus)

On a traditional application menu you can pretty much find all the desktop applications available for you and you can very quickly get a picture what's available in each category of applications. It is very suitable for a desktop operating system with lots of applications. On a touch based device this kind of a menu would be difficult to use as the size of items is too small to use with an inaccurate pointing device. A traditional application menu is designed to be used with a mouse.

Touch or gesture based UI

  • Viewing distance: short or long
  • Pointing device: touch or gesture based
  • Text input: mostly on screen keyboard controlled by pointing device but also speech recognition
  • Types of devices: Smartphone, tablet and television/multimedia center
  • Usage: mostly limited to few applications and does not require custom commands in order to serve its purpose. Ratio of interactions/time is low.
  • Hardware: Cheaper processors and less memory, resolution varies
Amount of interactions is relatively low. Delays in areas you don't frequently use(settings, tuning etc.) not that important as long as basic usage is fast.(Answering, changing channels etc.)
Basic usage is with an inaccurate pointing device and limited screen size.(Spreads content into multiple screens and displays on screen navigational cues.)

You can clearly see that Gnome 3 is designed in a way that it would be easy to use by touch. Any touch device must deal with the inaccuracy of fingers as pointing device, this reduces the maximum amount of items you can interact with at any time. Although you can use a mouse to do gestures similar to those done by fingers, it requires moving the mouse more than in a desktop user interface. Using the application menu to find an application becomes time consuming when using a mouse, especially when you have a lot of applications installed. You can expect a touch based device to contain less applications to look for. Thus the amount of applications should not be a problem on a touch device.

When gnome 3 is used on a desktop you naturally have a keyboard available as well. You can quite quickly press the super-key and type the first letters of the application name you wish to launch, provided that you don't blank out on the name of the app. For me it happens quite often. On the plus side, plugins look pretty and are quite easy to install. You can get a traditional application menu with a plugin.

A desktop window manager is fundamentally different from a touch based window manager. A desktop user interface specializes in how to best manage applications with a high on screen item density and a high resolution pointing device. Using a desktop oriented UI is difficult with an inaccurate pointing device such as the finger. Even if you had very accurate fingers it is impossible to see through your finger and thus you can only estimate within some margin of error what are the exact coordinates of the pointer. A finger also produces more random movement even when you try to keep it perfectly still and even more so when you are beginning to touch and releasing your finger from the surface of the screen. In addition to touch devices low on screen item density is suitable for a computer in the living room. It would make sense to control such a device with hand gestures or a motion tracked remote(Kinect or webcam + some OpenCV magic).

It is my belief that by currently trying to satisfy both desktop and touch device users with the same UI, you are not doing a good UI for either one. You should accept that there are fundamental differences and that the user interface should be different. Maybe the window manager should adapt the UI better depending on the input devices available? Touch based user interfaces are still relatively new and there might be some new innovations in that field. I hope that someone comes up with ways to make such interfaces easier and faster to use on a desktop computer as well.

Tip me if you like what you're reading