6th Feb 2011 | 08:00
Jono Bacon, community manager for Ubuntu, explores the history of the distro's desktop design
How Ayatana might revolutionise Linux
On 20 October 2004, the first version of a new and unknown project called Ubuntu was released. It was called the Warty Warthog. The only thing that most Linux users knew about Ubuntu was that it was based on Debian and bankrolled by some millionaire they had never heard of.
Little did anyone know that said millionaire, Mark Shuttleworth, would invest so significantly in a much needed aspect of open source – the user experience. I'm not going to talk about how Ubuntu was formed, the impact it's had on Linux or the growth of the project and community; much of that has already been said.
Instead, I'm going to tell the story of Ayatana, the design project that powers Ubuntu, sharing some of the behind-the-scenes stories of what went on. So grab a cup of coffee, sit back and let's talk about how Ayatana might revolutionise Linux and bring it to the masses.
In the beginning
When I joined Canonical back in 2006 as the Ubuntu community manager, the focus was simple: to deliver the latest and greatest open source software in a simple and integrated fashion.
To achieve this, we made sure Ubuntu came with a large number of upstream projects. Some were underlying tools, such as the Linux kernel and the X display server, and some more user-facing, such as the Gnome platform and its suite of applications.
The Ubuntu team always had its nose to the ground looking for the next big thing that it could bring to users, often investing in pieces of development that would satisfy needs that weren't yet met. One example was the Jockey tool, which helps you install additional drivers if your hardware needs them.
Back in 2008, Mark Shuttleworth called me over to his desk to share some thoughts about something he referred to as "awesome attention management". Around that time, Matthew Paul Thomas, a well-respected user-interface design specialist, had been working on a new project with him.
Mark showed me a wiki page with an incredibly detailed set of guidelines around what looked like some rather cool notification bubbles, and told me this was going to be amazing for the community and for Ubuntu and that I should expect some work surrounding the idea. Mark is an excitable guy, but I'd never seen him like this before, and I knew his enthusiasm meant my job was about to get busier.
The project he was referring to ultimately became Notify OSD, the now-familiar black notification bubbles that appear in Ubuntu. While I was aware of the plan, I didn't know of any plan to put actual code into Ubuntu. It was currently being eagerly hacked on by Mirco Mueller and some other developers at Canonical.
As Mark's design project progressed, he began to recruit two teams: one for design and the other for development. One key appointment was the head of the development team; a chap called David Barth, who'd been working at Mandriva.
Mirco and co would be reporting to David, and his job was to take the designs from the team at Canonical and manage a set of engineers to deliver the work as free software. This would then be packaged and integrated into Ubuntu.
The notification area
In 2008, the twice-annual Ubuntu Developer Summit was held in Mountain View, California. There, Mark demonstrated the work that had been done on the new notification system in front of an audience. He talked through the considerations and inspirations behind the idea, and the incredibly detailed thinking that went into the design process.
The people listening were pleased: the demonstration looked impressive, even though code wasn't yet available. That was set to launch with the upcoming version of Ubuntu, the 9.04 release entitled Jaunty Jackalope.
Ultimately, the notifications did land in Jaunty, although much to the chagrin of some Ubuntu contributors. The code came late in the cycle, and this was seen as a faux pas. The community had a valid point; it did take too long, and we tried to assure our contributors that we would do better in future.
Fortunately, the issue was a tractable problem that could be solved, and was indeed fixed in further cycles. Despite the rocky initial responses from Ubuntu developers, the work was well received by the wider community and users.
In addition to the notification bubbles, the Jaunty release also included the Messaging menu. The idea was to provide a single icon in the notification area of the panel that would contain any messages relevant to the user. For example, it would show social media updates such as Twitter or Identica messages, new emails, instant messaging chat and more.
MESSAGING MENU:Ubuntu's Messaging menu glows, alerting you to messages you should act on
The first iteration of the menu worked, but there was still a lot of development to be done to build support for different applications to talk to it, and to present further information that was relevant to Ubuntu users.
Many of these improvements landed in the Ubuntu 9.10 Karmic Koala release, including the Me menu; another addition to the top-right part of the panel that enabled users to shut down and restart their machines, and get access to some other features relevant to the current session.
Karmic was another positively received release, but many were asking some of the same questions – why is Ubuntu spending so much time focusing on the top-right part of the screen? Aren't there lots of other bits of the desktop experience that should be fixed and resolved?
It was a good question. While the design work being done was detailed and solved some important problems, other more visible parts of the Ubuntu experience hadn't been targeted. The team would get there, though – they just weren't going to sacrifice quality in the design experience, and would move on when they were ready.
Fortunately, many of the future ideas were already being developed; the design team was working ahead of the current cycle to ensure that the developers had completed concepts to work with.
In addition to the improvements in the top-right area of the screen, significant work had been done on the boot experience in the Karmic cycle. Mark Shuttleworth had made it clear that the Ubuntu boot time needed to be faster than ever, and Scott James Remnant took his existing work on Upstart and began optimising the many different parts of the process.
At a company event held in Dublin, he showed Ubuntu booting faster on a Dell Mini 9 netbook with a normal hard drive than Windows 7 on the same machine with a super-fast solid state disk.
In addition to this, extensive work was done to deliver an attractive graphical boot, using a tool called XSplash that was developed at Canonical. The idea was to get the X display up as quickly as possible, and to show the boot splash so that the transitition was smooth when you needed to switch to the login manager. All of this landed in the Karmic release, and was again well received by users.
With the Karmic release out of the door, the design and desktop experience team decided to focus on the top-right part of the panel again. Mark eagerly proclaimed that "we were going to finally fix the notification area", something that had been a common source of problems for Ubuntu users.
The issues were subtle, so let me explain why this work was performed. Traditionally, the notification icons in the top right of the Gnome panel had been something of a usability ghetto. There were numerous faults:
Messiness - There were a wide range of icons, many of which looked ugly on the panel with their multiple colours.
Limitations Applications - could only set one icon, and the same icon was displayed in the menu and the notification area. This made it impossible to set an attractive black-and white icon for the notification area while having a full-colour one in the menu.
No scrubbing - It was frustrating to have to click each notification icon separately to see the menu. You couldn't click once, slide your mouse over and then scrub to get the menus to drop down.
Inconsistent interfaces - Notification icons often had an incredibly variable set of interfaces. Some had left-click menus while others had right-click ones, and some had different menus for left-and right-click.
Accessibility - Existing notifications had accessibility issues, and often couldn't be controlled via keys.
The design team felt that these were significant problems that needed resolving, and thus the application indicators project was started. This was based on the same technology as the Messaging and Me menus, and provided some important changes.
PLACES:The Places feature in Unity manages to provide a consistent experience for almost any kind of customisable content
Firstly, different application icons could now be set in the notification area and main menu. Secondly, notification icons could be clicked and scrubbed with the mouse. The interface was also much simpler – only menu items, checkboxes, radio buttons and labels were displayed, and only on a left-click menu; no right-click menus were supported. Because the notification interfaces were based on menus, they were far more accessible.
At a design sprint in Dallas, we got ready to ensure that the community had quick and easy access to this new technology, which was due to feature in the Ubuntu 10.04 Lucid Lynx release. We made sure we prepared documentation, and started working with upstreams to encourage people to use the technology. Many started porting their applications.
Cody Somerville, Ted Gould and Jason Smith all stepped up to help us integrate the indicator idea into the Gnome panel, creating an implementation with C, Python and C# bindings. Jorge Castro also made people aware of what we were doing, and Aurélien Gâteau continued to perform his excellent work with KDE.
Then there were the applications themselves: Brasero, Gnome Bluetooth, Gnome Power Manager, Gnome Settings Daemon, XChat-Gnome, iBus, Nautilus, PolicyKit, Empathy, Gwibber and more. These were all ported with notification indicators, and came with Ubuntu to the new framework.
The wider community also got really involved with the technology, much to our delight.
The system monitor, device mounting alerts and workspaces were all given brand-new indicators, as were the applets for weather and screenshotting, and we received patches for Lernid, LottaNZB, Banshee and Déjà Dup. What's more, we were provided with support for the indicator framework built into AWN and Lubuntu, among other things.
System indicators and Ubuntu 11.04
Although any application can employ this indicator technology to put an icon in the new notification area, there are some with icons that simply appear there all the time. These are referred to as system indicators, and include the sound indicator (with which you can control volume) and power indicator (which shows battery and charge details).
The design team chose to really focus on these, and there have been two additions that are worth mentioning.
In Ubuntu 10.04, the microblogging client Gwibber launched a new release. The Ubuntu design team felt that most users would want to tweet throughout the day, so a design was drafted for posting messages right from the Me menu.
As such, someone could be working away and feel like sharing something with the world – all they needed to do was click the Me menu. They could then type in a message and it would be broadcast to all the clients that had been configured (Twitter, Facebook and Identica, for example).
Another extra, and one of the most highly anticipated new features for the Ubuntu 10.10 Maverick Meerkat release, was an addition to the Sound menu. Many users would be listening to music while working, and would only interact by skipping tracks and other transport controls.
RHYTHMBOX: Playback supports Rhythmbox and will work with banshee before long
As such, Conor Curran built support into the Sound menu so that people could see the current playing song and use the transport controls. It was a devilishly useful feature, and saved you doing lots of clicking to complete something fairly simple. Again, all of the indicators and features in the notification area used the same technology in the back-end.
Unity and the Global menu
At the Ubuntu Developer Summit in Belgium in May 2010, Mark Shuttleworth presented the Unity project; a new graphical shell that is designed around the requirements of netbooks. Horizontal screen space is limited, and it caters for the increasing number of touch-ready devices. Unity has a series of key components:
Launcher - This is a scrollable list of icons that appears down the left side of the screen. As the icons take up more space than the screen can display, a concertina-style wrapping technique is used, and when the mouse is hovered over the squeezed icons, they expand again. This provides an effective way of running many applications that can all be accessed easily.
Dash - This is an overlay that appears automatically when you click on the big Ubuntu button in the corner of the screen. It will be utilised by future designs, but today provides users with quick access to some common features, such as applications and new software.
Places - On the Launcher there are buttons for viewing different types of content (applications, files and trash, for example) with the same user interface components; this facility is called Places. The feature is entirely programmable, and developers can create new kinds of Places – in fact, the demo shows how you can use the unified search box to query YouTube and display videos inside Unity.
Indicators and notifications - All of the indicator work that has been shipping in Ubuntu is also harnessed by Unity and available in the top-right part of the interface.
ME MENU: Tweet from your desktop with just one click
A key goal with Unity has been to make maximum use of screen real estate, particularly with the original focus on netbooks. With this in mind, some work went into a Global menu project that uses the same infrastructure as the application indicators but to disconnect the menu from the application and put it in the top panel (similar to Mac OS X).
In addition to this, when applications are maximised, the window bar collapses into the panel and the window buttons appear in the panel next to the menu items. This saves a surprising amount of screen space.
Unity eventually shipped in the Maverick release, and while the design was generally well received, some Ubuntu users experienced significant problems on certain hardware. This was largely due to the underlying graphics subsystem. These performance issues are actively being resolved.
Five months later, at the Ubuntu Developer Summit in Orlando, Florida, Mark Shuttleworth made one of the most significant announcements in the history of Ubuntu: on all hardware that could support it, the Unity interface will come as standard in the upcoming Ubuntu 11.04 release, codenamed Natty Narwhal.
For hardware that's unable to run Unity, a 2D fallback will be used in the form of the current twopanel Gnome interface.
This was huge news for Ubuntu and the upstream Gnome project. For the former, it was a significant move to a new piece of technology that should bring about an enhanced user experience and a unified touch-ready interface across a range of devices.
Some members of the Gnome project saw it as a blow, though. For some time now, a lot of work has gone into the Gnome Shell project, and it was felt that Ubuntu not supplying it was a sign of the distro moving away from Gnome. Some even threw out accusations that the move was effectively a fork of Gnome.
In reality, that's not true. Unity is a shell for Gnome, but not Gnome Shell. It's still a Gnome platform, and the next incarnation will come with all the components Gnome application authors need to make their software run out of the box. It will also still have all the Gnome apps users know and love.
The only change is that Unity will be the default shell. Unity is just a different shell, in much the same way others have created a different interface (MeeGo, for example). It's a different porthole through which you can look at the excellent Gnome platform.
With the announcement, accessibility became a a top priority. Currently, Unity has rather poor accessibility support (read: basically non-existent), and accessibility is a core ethos for Ubuntu. As such, Luke Yelavich from the desktop team was assigned to the DX group, who code Unity, to work on accessibility support.
He's supported by Gary Lasker and synced up with the Ubuntu Accessibility Team, who provide support in the form of testing, bug triage and outreach. Outstanding accessibility is a requirement for Unity if it's to feature in Ubuntu 11.04.
Quality is also a top priority. Neil Patel and the rest of the Unity team worked their socks off to get the interface ready for the 10.10 netbook edition, but despite their best efforts, some quality issues were highlighted and bugs were reported.
When the announcement was first made, the team believed they had bug reports for the majority of issues, and are spending most of their time in the cycle focusing on resolving these problems with quality.
Finally, although some people were worried that Gnome Shell would be completely lost and forgotten in Ubuntu 11.04, it is supported in the archives. While it won't be the default environment for Ubuntu, or come with the disc, we at Ubuntu believe that users should be able to get a top-notch Gnome Shell experience in our distro.
With the Ubuntu Software Centre providing simple one-click access to software, getting that experience up and running should only require one quick action.
Of course, when the news broke, a wide range of opinions were voiced, but the majority of them seemed to be cautiously optimistic. Essentially, people were saying: "If you can pull this off, it will be awesome." It seemed that most users had confidence in the design, but that some of the performance problems they experienced in the first release of Unity were making them a little nervous.
Hopefully, all the hard work that's gone into resolving these issues should restore people's belief in the latest version.
TOUCH-READY:The Unity interface is touch-ready, so it can work on a range of devices
Steven Vaughan- Nichols, a well-respected journalist who was at the Ubuntu Developer Summit when the announcement on Unity was made, summarised his perspective: "Can they do it? I think they have a shot. I do know that the traditional Linux desktop, much as I may love it, has reached about as broad an audience as it ever will. That said, the Ubuntu programmers have a lot of coding to do to make this happen. Then we'll see if Ubuntu has found a new way to popularise the Linux desktop."
Steven has hit the nail on the head. This is a big change, and it's certainly a risky one, but Ubuntu has a long history of hedging its bets in the interests of serving its users better. Ultimately, when all the journalistic assessments and community discussions have settled down, the true deciders will be the users; they will say whether the experience is compelling enough compared to the alternatives.
The sheer level of design focus that has gone into Ayatana and ultimately featured in Ubuntu has been impressive. There have been bumps along the way, with code landing too late, decisions being made with less than optimal interaction between the community and the design team and some slightly irksome wallpaper choices.
However, this has been a learning experience for both the Ubuntu community and the Canonical designers. Bumps are fine as long as they act as learning opportunities, and that was the case here.
Ubuntu looks fantastic, the incoming change to Unity is starting a new era for design and it will be exciting to see how Ubuntu will look in another two years. With the design team, growing community and wide group of developers and testers, anything is possible.
First published in Linux Format Issue 141
Liked this? Then check out The hidden places where Linux dominates
Sign up for TechRadar's free Weird Week in Tech newsletter
Get the oddest tech stories of the week, plus the most popular news and reviews delivered straight to your inbox. Sign up at http://www.techradar.com/register