Monday, 25 October 2010

Unity on the Desktop

Mark's keynote at UDS spoke about one of the biggest changes to happen in Ubuntu since it's inception: Unity as the default desktop. As the technical lead for the project, I wanted to explain some of the technical changes that will occur this cycle to put us in the best position for Natty:

Graphics Support

Firstly, it's good to mention that it's actually "Unity as the default desktop if your graphics card and drivers support it". We've learnt a harsh lesson this cycle about where Unity works well, where it should work but doesn't and finally where we just can't expect it to work.

Therefore, it is going to be a primary focus this cycle to enable Unity on as many chipsets as possible. We will be much more lenient about what OpenGL features are required (allowing runtime fallbacks through detection and through quirks files for those chipsets that lie about their capabilities).

That means that we'll make a best attempt at running, trying to gracefully degrade through features, but at least getting to you a panel, launcher and places.

So what happens when we detect that we just can't run? We hope to automatically fallback to GNOME Desktop, which will give the best experience at that point.

Performance and Compiz

This is a huge issue on the current Unity implementation. Yes, if you have good hardware it'll work fine, but it's unacceptable for it not to be performant on, for instance, Intel i945 based systems. There are a few reasons for the current performance issues, and after much thinking and testing, we have decided to move Unity's view implementation from Mutter to Compiz 0.9.

For what Unity needs to do, Compiz will give us a huge benefit in terms of performance and power usage, as well as allowing us to get closer to the graphics hardware and easily implement the graceful fallbacks of GL capabilities that I mentioned above.

It also means we can build on the great work of the Compiz team's upstream work and their excellent window management plugins to provide a more complete desktop experience, faster.

We're finalising some technical bits and pieces with regards to the switch and we're aiming to get it into archive ASAP. I'll be sure to post here as soon as we've done that.

Stability and Quality

Stability is the final technical issue to solve for the desktop. We have come leaps and bounds from the early Maverick cycle (currently most of the crashes are graphics issues, trying to do things the drivers don't support). We want to continue this and we will be pushing more things out of the Unity process and into D-Bus based services that can crash at their pleasure (but hopefully they won't :), and Unity can just restart the services instead of crashing itself.

Unity was always architected like this, but we've found ways to get the last bits of logic out of process and so you should see a rock-solid Unity on your desktop this cycle.

Quality is of upmost importance and is the focus for this cycle, over features or anything else. The community did an excellent job last cycle for Unity and we hope to repay the favour by fixing as many bugs as possible and assuring that Unity oozes quality.

Finally, for those thinking that we are starting from scratch due to the move to Compiz, I can assure you that we aren't and honestly, we couldn't. Unity is architected to separate the views from the models and controllers, and we are using that to enable us to quickly port our views to Compiz while keeping and bug fixing the models and controllers.


Anonymous said...

And what about fixing mutter to have better performance?

Is there any technical or design problem in mutter that makes it impossible?

Neil J. Patel said...

@anon honestly, we just don't have the people to fix mutter and clutter and do Unity on the desktop this cycle. We also have very different requirements to Mutter/Clutter, such as gl/gles support at runtime, ARB or GLSL shader support (with software fallbacks) etc.

We've come to the point that having a toolkit separating us from the rendering, however good that toolkit is, was not ideal for a window manager and Unity. Hence switching to Compiz and doing more things by hand makes sense for us.

Emil said...

Oh i love this! ♥
I just started testing this today out of curiosity on my Dell Vostro 1220 running Intel graphics.

And i must say i had a rather pleasent ride. Eventually i switched back to the gnome desktop as it took way to long time for me to for instance open up the files and folder application, cant wait for 20seconds for something like that.

Also i could not find a way to show all my files and folders in my home directory, but that could be a problem on the userside rather unity.

But all in all i loved unity, when it is mature i would love to run it as my primary DE. Unity is what gnome 3.0 with its gnome-shell wants to be but fails.

So keep up the good work and i will try again in a couple of months.

Anonymous said...

Where is the code of the Compiz port of Unity? Is it developed secretly again?

I can only find this:

Anonymous said...

What about the global menu? In Unity's desktop version the application menu is been seperate like in the netbook edition version?

Sorry for the bad english!

Tretle said...

Hey Neil, could you bring back the original sidebar background texture :D Thought it looked nice and original. The gradient is just too much with the panel gradient.

Leo M said...

Hi Neil

I think the tremendous success of Android is a clear indication of the benefit of a simple interface with a well thought out interface for ISV's. So this seems like a good step. The desktop a la Windows XP is dead, anyways.

GNOME applications will integrate naturally, but how about KDE apps, particularly plasma widgets?

Many thanks,

Neil J. Patel said...

@Emil: Heh, thanks. The Places performance is really quite terrible and I promise you'll see major improvements when we get the new Unity out

@anon: As mentioned in the post, I'll blog as soon as we have something that's useful and can be tested easily. The team are working it as much as possible around UDS

@anon2: Yes, the global menu will be part of the desktop experience. We are hoping to get support from the non-gtk/qt toolkits this cycle

@Tretle: Hey dude! I don't think the background is going to come back, but I really haven't seen the final visuals so I'm not sure :) In any case, we'll try and make it a bit more themeable this time!

@Leo: Thanks for the support and we hope we can bring a device-like feeling and usability to the desktop.

Anonymous said...

Ubuntu has made the wrong decision, and YOU KNOW IT. Please stop defending a company that clearly doesn't care about community-driven development.

Denis Cheremisov said...

WTF stupids. I don't want to use UI designed for mobile devices at my 20-inch monitor. Damn idiots (

Anonymous said...

Well, if this is a epic fail, we have many other distros, or maybe it will be a cool Ubuntu fork.

Anonymous said...

I'm not familiar with Unity but I had a look at Gnome 3.0 plans. I found that they has this crazy idea of Zeitgeist.
Have a look at Zeitgeist video

I don't think it is a good idea. I prefer Nautilus, although it lacks some useful features, like for example 'undo last action' option.

Whatever will a final version of Unity look like please, please include a good full-featured file manager, as good as Nautilus or hopefully a better one.

Good file manager should have both view option: tree and places available at the same time, like it is in Dolphin, for example tree on the left as it is now, and places somewhere on top horizontally.

mitcoes said...

Time ago there where distros that let you choose the GDI each time you begin session.

I suggest you to put Gnome2 or any other as backup GDI, at least in the Ubuntu 11.04.

I would like to do it with ubuntu, having kde, fliuxbox, and others for educational purposes. And each one can use what they like more.