Ubuntu 12.04, codenamed Precise Pangolin, rolled out last month. The new version of the popular Linux distribution brings updated software and new features, including the highly-anticipated Heads-Up Display (HUD) interface. The HUD is one of several excellent improvements that have helped to make Ubuntu's Unity desktop shell even better in Ubuntu 12.04

When Unity was first unveiled in 2010, it was introduced as a new graphical frontend for the Ubuntu Netbook Remix. Canonical later brought Unity to the desktop, making it the cornerstone of the company's Linux usability enhancement efforts. Ubuntu 11.04 (released last year) was the first version that shipped with Unity as the standard environment on the desktop.

Unity has come a long way since Canonical and the Ubuntu community began working to iron out its rough edges on the desktop. The performance and stability issues that afflicted earlier versions have largely been remedied. It was already in great shape back in October when version 11.10 was released, but it has benefited from further refinement.

The Unity environment is responsive and robust in 12.04, offering the reliability that one would expect from a mature desktop shell. This important milestone in Unity's development is timely. Ubuntu 12.04 is a long-term support (LTS) release, which means that it will receive updates and commercial support for longer than regular releases. Every fourth version in Ubuntu's six-month release cycle is an LTS release, so a new LTS release is issued once every two years.

In previous versions, long-term support meant three years on the desktop and five years on servers. Canonical has changed the plan a bit for Ubuntu 12.04—it will be the first LTS release to receive five years of support for both the desktop and server flavors. The company is aiming to attract enterprise desktop adopters and OEMs with the extended LTS commitment.

Unity

Although Unity's quality has grown to the point where it fulfills our expectations, the user experience still falls short in a number of ways. We identified several key weaknesses in our last two Ubuntu reviews, some of which still haven't been addressed yet. These issues still detract from Unity's predictability and ease of use.

Global menubar

The global menubar, which is one of the defining characteristics of the Unity environment, still poses a number of problems. The global menu model simply isn’t compatible with the window-specific menu system used in Linux applications. The effort to bolt these conflicting paradigms together could be executed better.

Despite displaying the menu contents outside of the window, the menus are still window-specific. By design, the global menu bar displays the menu of the focused window. This proves awkward in some applications with dialogs and multiple windows.

If you open the file properties dialog in the file manager, for example, the file manager menu will not be accessible in the menu bar until you either close the dialog or switch focus back to a regular file manager window. When you move your mouse into the menu bar, you simply get nothing.

This behavior isn’t consistent throughout the desktop. There are some applications where giving focus to a dialog causes menu items to become inaccessible and some (such as the terminal) where the menu of the parent window remains visible while a dialog has focus. The latter is obviously preferable and should be the standard behavior through the application stack.

Another issue is that application-wide functionality isn’t merged into the menus that are displayed for some child windows. A good example of a window where this issue proves problematic is the Firefox Web browser’s bookmark manager.

If you open the bookmark manager dialog, the global menu bar will display the window’s specialized menu contents. But functionality that is relevant across the entire application, such as the "Quit" and "Help" menu items, isn’t accessible. You have to give a regular browser window focus in order to get back to those items, because they are tied to the menu from those windows.

The Unity menu is displayed globally, but it’s still contextually tied to the window. That’s not going to be obvious to new users, who are going to wonder why the "Quit" menu item goes away when they have a dialog open. There are also ways in which this behavior is annoying for experienced users. The standard Ctrl+Q keyboard shortcut, for example, doesn’t work in Firefox when the bookmark manager has focus.

You can see this phenomenon in several other applications, such as the Empathy instant messaging client that comes with Ubuntu. You don’t get a "Quit" menu item or the Ctrl+Q shortcut when a conversation window has focus because that menu item is part of the menu for the buddy list window.

We’ve been highlighting this problem since our review of 11.04, but it hasn’t been fixed yet. Due to the manner in which the global menu system is bolted into the environment, it’s not clear if there is even a practical solution to the problem. As long as the menus are defined by the individual applications with the assumption that they are tied to a specific window, the problem isn’t going to be trivial to address.

It’s worth noting that GNOME 3 is moving towards a model where window-specific functionality is presented in the window and application-specific functionality is exposed separately in a global menu. Although that approach also poses serious usability problems, as we discussed in our recent GNOME 3.2 review, it potentially offers a way to move towards better global menus.

Assuming that global menus are desirable, the ideal formulation is one in which the application-wide items and window-specific items are merged into a single global menu. The application-wide functionality will remain constant while the window-specific top-level menus will change depending on the window that has focus. Thanks to GNOME’s new approach, there is already a technical mechanism in place for specifying which menu items should be treated as global.

Even if you could achieve the ideal formulation, however, it’s not really clear that global menus improve the user experience enough to justify all this effort. The idea of moving menus out of windows and putting them in a global space made a lot of sense in the Unity netbook environment where the number of vertical pixels is heavily constrained. But it can be downright inconvenient on a conventional computer with a high-resolution monitor or multiple displays.

Aside from the significant functional mismatch between the global menu bar and the way that the widget toolkits handle menus, there are also still a number of annoyances that afflict Unity’s presentation of the menu. The menu fade-in and truncated title discussed in our previous reviews are still disorienting. The fact that the menus aren’t visible until the cursor hovers over them still poses a discoverability problem.

As we wrote in our Ubuntu 11.04 review, the global menu implementation in Unity is far better and more comprehensive than some of the previous hacks offering similar functionality. But it doesn’t fully address all of the behavioral disparities.