Ubuntu 11.04, codenamed Natty Narwhal, rose from the depths last week. The update brings a number of significant new features to the Linux-based operating system. It includes a much-improved refresh of the Unity shell and a number of other significant improvements throughout the application stack.

This is the first version of Ubuntu to ship with Unity on the desktop. Due to the far-reaching nature of the changes that accompany the transition to a new desktop shell, this review will focus almost entirely on Unity and how it impacts the Ubuntu user experience. We will also look at how Unity compares with GNOME 3.0 and the classic GNOME experience.

Unity

Ubuntu founder Mark Shuttleworth first unveiled Unity roughly a year ago during his keynote address at the Ubuntu Developer Summit in Belgium. It was originally introduced as a lightweight shell tailored for netbooks and other small form-factor devices. It shipped as the default user interface in the Ubuntu 10.10 Netbook Edition, but was met with a lukewarm reception. It showed a lot of promise, but its appeal at that time was diminished by performance issues and a general lack of maturity.

At the latest Ubuntu Developer Summit, which was held in Florida six months ago, Shuttleworth announced plans to bring Unity to the desktop. The goal was to unify Ubuntu's desktop and netbook experiences with a single software environment capable of holding its own against proprietary competitors. In order to meet that ambitious goal, Unity's developers spent the duration of the Natty cycle overhauling the shell. They have resolved the performance problems and have closed many of the feature gaps that detracted from Unity's quality in 10.10.

Ubuntu 11.04 pulls together years of Ubuntu usability enhancement efforts—including Unity and the much-improved panel system that has gradually emerged from the Ayatana project—and ties them together to deliver a rich and highly cohesive desktop experience. Although the result is compelling, there are still a lot of rough spots and limitations that chafe along the environment's edges. Some parts—such as the application lens—seem awkward, poorly designed, and incomplete.

The Unity dock

The default Ubuntu 11.04 desktop consists of a left-hand vertical dock and a top-mounted global menubar. The dock serves as a task management interface and a launcher for regularly used applications. It is functionally similar to the Mac OS X dock and Windows 7 task switcher.

The dock is dark and semi-transparent, like a sheet of black glass. A single column of colored tiles is displayed on top of the dock's surface. Each tile is adorned with an icon that indicates the tile's respective function. The tiles can represent launchers, running applications, or Unity lenses.

Clicking a launcher in the dock will bring forward the desired application or initiate it if it is not already running. A small sigil is shown to the left of tiles that are associated with applications currently running. Each application gets only one tile—multiple windows are signified by additional sigils next to the tile. An arrow will show up to the immediate right of the tile associated with the application that has active focus.

You can add a persistent launcher to the dock by dragging one in or by right-clicking a running application tile and toggling the "keep in launcher" option in the context menu. You can also use that context menu toggle item to remove something—you can't just pull an icon out to remove it like you can in OS X.

So far, all of this behavior is relatively obvious and intuitive to users who have had previous experience with dock-style task management interfaces. Where Unity starts to look different is in its approach to handling task overflow.

Task overflow

When the number of task tiles exceeds the available space in the dock, the bottom tiles will begin to collapse into a 3D pile. You can expand the pile by moving your cursor over the dock. When the collapsed tiles are expanded, you can position your cursor at the top or bottom to scroll up or down through the dock's contents. This collapsing mechanism works pretty well in practice and gives you good visual cues.

You can still sort of see the stacked tiles well enough to get a clear sense of how many total items there are in the dock. You can also move the cursor in at a specific point in the stack to make it expand out at that item, thus avoiding unnecessary scrolling. For example, to get quick access to the trash icon or the lenses when the dock is flattening out items, you can just move the cursor over the dock at the very bottom of the screen—this will make the dock contents expand up rather than down.

Managing applications with multiple windows

One of the weakest areas of the Unity dock in 11.04 is its poor support for managing applications with multiple windows. When you click a tile associated with an application that has multiple windows open, all of the application's windows will be brought to the front. If any are minimized, they will all be restored. There is no obvious way to activate or restore a single specific window—it's always all or nothing. This behavior ends up being tremendously frustrating during real-world use and will leave some users pining for the more flexible legacy task switcher in GNOME 2.x.

To work around that limitation, you will find yourself dumping windows on other workspaces just to keep them out of your way when you use the dock. You can also work around the problem by using the alt+tab keyboard combination for window switching. If you use that keyboard shortcut to select a specific window, it will be brought to the front by itself and won't drag forward all of its siblings.

Windows 7 and Mac OS X both provide tangibly better solutions for enabling management of applications with multiple windows from their respective docks. OS X will create a separate icon in the dock for each minimized window, making it really easy for you to restore one individually and see all of your minimized windows at a glance. Microsoft's solution is arguably even more elegant. When you hover your cursor over an icon in the Windows 7 taskbar, it will pop up thumbnails representing each associated window, allowing you to click one to bring it forward or click a thumbnail's "x" icon to close a window without even having to restore it or bring it to the front.

Now, it's worth noting that Unity also has a thumbnail window switcher that can be invoked on a specific application—but it doesn't solve all the same problems. When you click the dock tile of an application that is already active, Unity will initiate an Exposé-style display of all the windows associated with that application. You can click one to bring it to the front. It's a bit similar to the behavior that you get when you click and hold an application icon in the OS X taskbar.

The problem with this per-application Exposé mechanism in Unity is that it only works on the currently active application, which means that you have already brought forward and restored all of the application's windows before you even use it. It's a useful feature by itself, but it doesn't address the need to able to activate an individual minimized window without bringing forward and restoring all of the windows of the associated application.

There is also a global, Exposé-style window picker, but it doesn't help with the previously described problem case because it doesn't show minimized windows at all. It would be nice to see that rectified in future versions, perhaps by showing the minimized window thumbnails separately like Apple does in Snow Leopard.

Plush narwhal photo by caesararum.