In any given week, I am likely to use two or three Linux desktop environments. Partly, I switch so often to keep up to date. But the main reason is that, whatever environment I am using, I soon become aware of its shortcomings and start thinking of another's advantages.
Clearly, the only Linux desktop with which I am likely to be completely satisfied would be one I built for myself. However, since I am unlikely to do that any time soon -- or at all -- I can only continue to switch regularly, repelled by a feature in one desktop and attracted by a feature in another, like a piece of iron between constantly shifting magnetic fields.
Meanwhile, here are the best and worst features that I keep noticing in each of the six major desktop environments for Linux:
For years, most interfaces have offered a small grid for switching virtual desktops. This tool is usually adequate, but shows only the current active desktop, and not what is on each desktop.
Cinnamon's Expo offers an overview that gives a detailed thumbnail of each workspace. Ideally, it should be a preview available when the mouse hovers over the grid, but even now it is a useful supplementary tool. It is less irritating than GNOME's overview (see below) because you are in control, and because it isn't always needed.
However, judging by how quickly the number of panel applets has grown, I expect that in a release or two Cinnamon's best feature will be the recently introduced desklets -- utilities that can be added to the desktop. With any luck, they should provide a new degree of customization.
With the recent release of Linux Mint 15, Cinnamon is reaching early maturity. However, while the features are starting to be there, the polish is still sometimes lacking.
In particular, instead of dragging panel applets and desklets into position, in Cinnamon you often must select an item, then press a button and (more often than not) reposition it. No doubt drag and drop will come, but for now, Cinnamon can sometimes be primitive and require too many steps for what should be a simple setup.
Like KDE 4.0 before it, GNOME 3.0 was released with relatively few options. However, that has changed in the last few releases with the encouragement of GNOME Shell Extensions.
Tellingly, many of the extensions convert the GNOME Shell into a near-replica of GNOME 2. However, because each feature is limited in scope, users can decide exactly how much of GNOME 2 is reproduced. Often, too, they can choose between several different versions of basic features such as menus and panels applets. Extensions give users a richness of choice that GNOME would otherwise lack.
In GNOME, the overview is used to launch applications and to arrange them on virtual workspaces. This arrangement might make sense on the small screen of a mobile device, but on a laptop or a workstation, it feels like a needless distraction. Why change screens just to browse the available applications.
The overview does automatically assign virtual workspaces, which might encourage new users to use them. However, even so, I suspect that most experienced users would prefer to choose for themselves which workspace an app opens on. The overview seems an over-elaboration that solves no pressing problem.
Activities are task-organized desktops, each with its own layout, widgets, icons, and themes. Instead of having a generalized desktop ready for your most common tasks, you have specialized ones, each designed for a specific set of tasks.
For example, you could have one Activity arranged for reading news, one with links to stories you want to read later, and another for taking screen shots of the command line. Alternatively, you could have one Activity for each customer account, or one each for home, work, and school. The possibilities are endless, especially for those who like to customize everything exactly to their liking.
Admittedly, KDE has not done a strong job of publicizing Activities since they were introduced in the 4.0 release. Still, the potential is there for those who seek it out