Recently, the Linux desktop has had some troubled years. Where once the news consisted largely of announcements of features, in recent years it has included debates about features and directions, declarations of forks, and resurrections and re-inventions of older designs.
The result of this activity has often been heated debate -- to say the least -- and, if user choice has increased, innovation has decreased.
The problem is that, with the exception of a few projects, the free software community is still learning to make user feedback part of the development process. Not long ago, the distinction between user and developer hardly existed in free software. And, even today, users making a suggestion are often told to write the code themselves.
True, Canonical does testing for Ubuntu's Unity interface. However, to judge from comments on Mark Shuttleworth's blog, it seems limited, and never seems to have included comparison of existing and proposed interface designs. Moreover, other projects seem to have done even less.
Exactly how usability testing can be integrated into the free software development process has no easy answer. However, one important aspect of the answer is more consideration of the audience and its context. Thinking of the audience is always important in software design, but on the Linux desktop, which has developed in semi-isolation, it is even more important than usual. What will suit Windows or OS X users might be too different for Linux users to accept easily.
Based on what I've observed over the last few years about what has and hasn't been well received, here are nine suggestions about how to design a Linux desktop.
I don't imagine for a moment that developers will leap to embrace them. If anything, sarcastic cracks about pundits and outsiders seem more likely. All the same, I present them in the hopes of starting discussion.
In all the hours I've spent listening to discussions about GNOME 3 and Unity, my greatest impression is how far apart developers and users are. Both these interfaces have been advertised as reducing "clutter" -- a problem I've yet to hear large bodies of users complain about, no matter how thoroughly I do searches with a thesaurus in my hand.
Under these circumstances, user dissatisfaction shouldn't be that surprising, should it? GNOME 3's overview has a certain elegance, but, since users don't worry about the problem it is trying to solve, not many are likely to appreciate it. That's why Linux Mint's Mint GNOME Shell Extensions (MGSE) allow users to ignore the overview, and its GNOME 2 re-creation Cinnamon does away with the overview completely. A feature designed to reduce clutter becomes clutter itself if you don't want it.
Asked to choose between a lack of clutter and easy access, most users will choose access every time. Panel applets and desktop application launchers are not elegant, but most users prefer them over a clean desktop. Average users are too busy getting work done to sit back and admire the beauty of a desktop.
That's why Mark Shuttleworth's Heads Up Interface (HUD) is unlikely to replace the menus. Menus are ancient and occasionally unwieldy. But, as Shuttleworth admits himself, they provide a map of functionality that HUD doesn't match. When menus are replaced, it will be by a design that offers equal or greater accessibility to features.
Why did KDE outlast complaints about the early KDE 4 series, while GNOME 3 continues to draw complaints? Partly because KDE developers always intended to restore the functionality of the 4.0 release, while GNOME has never had plans to restore elements like panel applets.
However, an even more important reason is that KDE has tended to extend features rather than remove them. The KDE 4 series is based around the idea of Activities -- a series of customized desktops, each with its own set of widgets or icons. Yet, if you prefer to work on a single desktop, as in the KDE 3 series, you still can.
Admittedly, KDE should have made this flexibility more obvious. But that is a lesser mistake than eliminating features altogether.