GNOME has one user-interface faux pas that really bothers me. The panel sits at a screen-edge, and can hold various widgets, including application launchers, a clock, a menu, and my favorite, the volume control.

On the panel is also a little widget, a tray for icons to appear in when an application wants your attention. Mine at the moment (screenshot) has a status icon for Gossip, a status icon and control for Rhythmbox, a redundant and as far as I can tell useless icon for LogJam, and the status icon for Liferea.

Of these icons, if one clicks on any, the application’s main window opens, and if you click again, it disappears. It’s a nice quick way to hide and show applications. I tend to use it slightly more than the panel at the bottom of my screen that does the exact same thing, because there’s no annoyingly slow animation when you do it with the little icon. That’s the good.

The bad: I have on my panel, within a quarter inch of each other, two icons for Liferea, two icons for Rhythmbox, and two icons for LogJam. If I click the launcher for Liferea, I’ll get an error, because it’s already running. If I click the one for Rhythmbox, it’ll launch a second copy, realize it’s running, and open the main window of the other, after about one second. If I click the launcher for LogJam, its main window appears nearly instantly. If I were to have a launcher for Gossip, it would start a second instance, leaving me with three icons all in a row for it, two status icons and a launcher, each with subtle differences.

If I close Rhythmbox, it dissapears entirely and my music stops playing. If I close Liferea, it hides its main window. If I close Gossip, it will disconnect any conversations I am having, and then re-launch, since I have it set to respawn in my session manager — which I heartily appreciate over having yet another icon in my panel.

What’s hard is the sheer number of user-interface widgets I have for a really minimal setup. I constantly battle for space in the top panel on my screen, taking icons I’m not using currently off. I usually put them back within the day, since I use the same apps over and over. I also have a bad habit of forgetting which thing to click to close a window, but leave the application running. Gossip and Rhythmbox, it’s the icon in the status area. For Liferea, I can just use the close-window button or key shortcut. Since I use Liferea the most often, I have that as a habit, and keep shutting down programs I want running when I want them out of my way.

When it comes down to it, the status notification area is a terrible UI. It’s a good concept: a single place to look for the computer trying to tell you something. In practice, it has some major flaws:

  • No direct manipulation. You can’t drag the icons around. At all. Trying will bring up unintended windows.
  • Inconsistent interface. (These are some of GNOME’s top people making these apps, and they still get it wrong.)
  • Redundant user interface elements.
  • Poor keyboard navigability.
  • No visual distinction between itself and the panel.
  • When used as intended by human interface guidelines, it would be empty. That’s tempting to just remove from the panel — but then, I wouldn’t get notifications of important things at all.

In addition, the panel has other flaws:

  • No direct manipulation unless you know to middle-click.
  • Overcrowding problems and clutter.
  • No communication between an application and its launcher.
  • Poor spatial navigation for returning to an application.

What GNOME wants is a dock. Just like MacOS. No matter how you try to solve the problem, I suspect that no combination of tricks will get you the net ease of the MacOS Dock. It gets many things right.

  • Spatial memory. When you launch an app, it appears in the dock. If you tell the dock to hold onto it, the application icon stays right there. When the application quits, the icon is right where you left it. It follows the spatial metaphor of if you put it somewhere, it will be in the same place when you return. It’s called “don’t surprise the user”.
  • Integrated notification. When an application wants your attention, it wiggles what appears as a part of itself. If it has something to say, you can find it at the application’s icon. The icon (singular) becomes an effective handle for the application, to be dragged, dropped and otherwise interacted with. The application feels tangible, not like some box that pops up, but like a thing, a physical tool.
  • Simplicity. The dock is not a file manager. You can put files on it, but it is nothing more than a pinboard. One doesn’t have the feeling that it should supplant the filing cabinet, so it does not. It does what it does well. The dock doesn’t hold “applets”, little extra things without user interfaces large enough to be a separate application. MacOS does put a few extra widgets on it, but they were careful to keep it minimal, and not intrusive. They allow windows of running applications to be placed there as well, which works metaphorically if you think of the windows as things to be manipulated, too, and the dock as a temporary storage. Implementation may be complex, but the concept is so simple that all MacOS users get it: the Dock is a place to put stuff where it’s handy.

My solution would be, in this case, to emulate the Dock wholesale. It’s time for Panel 3.0, a complete rewrite and re-think. Break all backward compatibility and move forward with a new, usable interface. It just needs to satisfy the burning itch that all users have: Let me get my work done, fast. My work involves starting and stopping apps, and knowing what’s going on, without anything in my way. Thank you.