The Gnome 3 and Unity “hatred bandwagon” seems to be getting some serious momentum. Is it just filled with pretentious people complaining about the change – or maybe they do have something to say and the desktop revolution is more of a “for the sake of change” move?

Recently Gnome devs announced that they want to start working on a Gnome OS and that Gnome 3 should be fully touch-compatible within 18 months. Well – that’s great news, as long as they don’t forget about the desktop.

For quite some time I can observe that there is a lot of “desktop unification” going on. Everybody wants to be optimized for touch and everybody wants to provide “consistent user experience” between different devices. After looking at Unity and Gnome 3 I must say – are the change-driving people only working on 12″ tablets?

The problem isn’t only within the Open Source world – Microsoft seems to be making the same mistake. Their flagship, yet already renamed Metro/Windows interface is to “unify” everything – phone, tablet, laptop, desktop and server . One “surface to rule them all” (multi-level pun intended).

My question is – what was wrong with Gnome 2? It has been a fantastic DE for me for years – and I still do whatever I can to keep it on my development machines. I am not against change, as long as the change involves some gains that will drive users towards them. My first encounters with Unity and Gnome 3 were complete disasters. Even today I find both of them being an impediment in getting the job done – at least on a desktop.

Unity seems to be a good choice on a 12″ laptop with only one screen – but as soon as you throw it on a dual-head desktop monster you will discover “extra kilometres” on your mouse counter (and endless amount of extra clicks – like why suddenly right-click on a panel is gone, even if gnome-panel is installed? You can get it back if you only press two extra keys… and then click). Linus Torvalds ditched Gnome 3 for Xfce – he also said that “Xfce is a step down from Gnome 2 – but a huge step up from Gnome 3”.  At this point I started checking Xfce, too. There is a huge chance it will get extra attention from the community that simply can’t understand “the beauty of Gnome 3”.

Test Xubuntu being installed in a VM – so far the closest Gnome 2 alternative on Ubuntu

It all started with the goal of unification, maybe a silent dream of getting into the locked-down market of tablet/mobile devices. Maybe. I think we can agree that too similar is wrong due to different characteristics of devices. Physical characteristics. Let’s dig in – we have the following different physical devices, that can be put into similarity classes:

  • smartphones
  • tablets
  • laptops
  • desktop computers
  • servers

To keep it simple let me say that the main distinction between these is the input method (mouse, keyboard, touch, voice, stylus) and display area(s). If we look at the problem from that angle it’s clear: your finger will never be a mouse – and you won’t be able to do multi-touch with your mouse. On top of that a full-size keyboard will always outnumber a cramped, possibly on-screen keyboard. If you put too much emphasize on one input method in a class, where it really does not belong (i.e. touch on a desktop), your productivity will suffer.

What does that mean? That means, that unification suddenly gets into your way, making you slower and/or more frustrated. Now imagine being in a 75 sqm server room – air condition, plenty of racks, raised floor – it’s loud, cold and you have 10k angry customers burning in rage – and you have your Metro tiles to work with (on a server).

You want to ask me: “Ok – so you are complaining about these interfaces – what is then your idea?”. Well – my idea is rather simple.

We have similarity classes and two paradigms:

  • one paradigm that changes as the size & input methods change, the launcher theory
  • one that works out of the box on everything, well known as virtual desktops

A sure winner – virtual desktops – it just works on everything! Screens on your phone, virtual desktops on your laptop/desktop, different consoles on your server. But that’s easy – so let us dig into the launcher theory.

The idea behind is simple – if you look at your phone you will notice that basically 95% of your screen is just one big launcher. Icons are bigger (optimized for fingers), you have some extra control goodies (accelerometers & sensors) – everything is compacted to fit on one screen and to be “at hand”.

The launcher theory diagram

Moving up to a slightly bigger screen – but no keyboard yet: launcher still can assert its dominance, but you should have a large portion of your screen for running your apps. Since the mouse/touch area isn’t that big yet, you can detach context menus and put them into a top, permanent panel. You could also try and go for a Unity-like “one window at a time” – that could work.

Arriving at the desktop – you have to account for multiple screens, exotic resolutions and other weird configurations. You have high precision controls: mouse and full size keyboard. Gnome 2 seems to be fitting into that paradigm perfectly. On my dual-head setup all I want to do is to be able to have 2-3 smaller panels, a lot of open windows – each having its own context menu, so that I don’t have to “run a Marathon” with my mouse. Stuff does not have to be cramped – there’s plenty of space available. And yes, one purpose of that space is the ability to make a “window mess”.

Servers are a separate class – these are reserved for IT professionals. In many years a keyboard was more than enough to make everyone happy – and let’s keep it that way (not forgetting about the serial console, either :).

In my opinion no code is lost. The perfect solution would be simply to give people choice – on a 12″ laptop or a tablet I am fine with a launcher (Unity/Gnome Shell) and space-optimization techniques, but on a dual-headed 26″ setup  it’s just a no-go. Why? Because then it’s like trying to fix something that wasn’t really broken.