Canonical Voices

Posts tagged with 'unity'

Alex has found a great workaround for fixing web applications in Unity.

BAMF has been plagued by this bug, which basically means it groups Chromium and Chrome windows under the browser icon. That means my gmail, IRC, music, etc. all get matched as generic browser windows instead of separate applications.

It’s quite easy, you just edit the .desktop that Chromium makes and tell it to make a user profile someplace else and somehow this is enough for BAMF (and therefore Unity) to match the window as a separate application. What’s the result? Finally, each application shows up independantly on the launcher:

Those used to just all file under my Chrome icon. And of course, the big one, alt-tab:

I’ll update my instructions on webapps in Unity later tonight, or an enterprising person can go and update it if you want.

Thanks Alex for finding this workaround, I’ve been crippled by this for a long time, now I just updated a few files. This should tide us over until Trevino gets back from holiday and fixes it for real. (This is a bug I certainly won’t miss).

Read more

I was checking out some of the incoming merge proposals from contributors and I noticed a FIXME in a comment and decided to see what’s in the Unity source code that someone might want to check out if they’re looking for something TODO or FIXME. 

Turns out it’s not as bad as you’d think,

I’m going to update this list weeklyish, it’s already found some dead code that Neil was able to just purge from the source tree, so if someone wants to go ahead and start going through these and check for low hanging fruit it’d be a nice project for someone who wants to dig in. If the FIXME or TODO is missing a corresponding number then perhaps filing placeholders for them would be useful as well.

Read more

Well, we’re a week away from 11.04 so I decided that I would collate the information about Unity on the web and put it into one nice page for everyone to find. Got some more tips you’d like to add? Add them in the comments!

Getting Started

Home page

Hardware Requirements

Frequently Asked Questions

Common Questions

Launcher and Quick Lists

Indicators and notification area



For application developers

Contributing to Unity

Am I missing any? Post them in the comments. (I will moderate comments for this post to only allow tips and tricks)

Read more

One of the (great) trends that browsers are doing these days is “getting out of the way”. That is, less “chrome” more space for content. I was curious to how we’ve been improving in this area, so I asked Jason to do some math, and here’s what we came up with.

So, given a desktop that you log in, how many pixels do we consume and how much do we leave for apps? Well, by default here’s how GNOME 2.x, 3.0, and Unity consume your pixels. These are the amount of pixels (broken down by resolution) that these three desktops use:

I measured Unity twice here. By default if there’s nothing in the way, we show you the launcher, if you move a window there or maximize, we get out of the way (the green bar). So, GNOME 2.x takes up a given amount of space no matter what. Unity takes more but gets out of your way once you start using it to about the same level as GNOME 3.0. Notice how both GNOME 3.0 and Unity are already giving the pixels back where they belong, to applications. :)

Next we have how much space we take up when working, for me I maximize my applications.  We maximized the window in GNOME 3.0 by dragging it to the top bar to measure it but didn’t take into account the window decorations and stuff. Still, much better across the board. I only measured Unity once because the launcher in this state goes away.

But wait a minute, doesn’t the application menu belong to the application? Let’s measure how much UI Unity consumes if we give the menu back to the application. So when you maximize an app the only UI Unity uses up is the home button, the window controls, and the indicators. There could still be dead space there in the menu, but that really depends on the length of the menu and per application, and I’m not going to go measure half the archive.

Caveats and Conclusions

a) GNOME 2.x is fat… :)

b) When you use them GNOME 3.0 and Unity are trending towards giving real estate back to applications. (I think this is good)

c) Unity does give the most space back, but remember that’s really all I’m measuring, this doesn’t imply that it’s better (or worse), and it also doesn’t take into account how we actually interact with the desktops, it’s just a raw measurement of pixels. Sorry guys, no flamebait here.

d) We didn’t measure how much space ayatana-scrollbars save you. This would be nice to know.

e) We didn’t take into account overlay-ish things like the dash or the overlay thing that GNOME Shell does. It could very well be that those UI interactions mean that you don’t have to care about those pixels (or care more), but that’s for an expert to figure out, my goal was just to figure out “Is it just me or are desktops following browser chrome trends?

f) We didn’t take into account full screening applications.

Here’s the spreadsheet if you want to mess with it, or add your favorite desktop. (I didn’t measure KDE)

Read more

David Calle has been working on a Books Lens, which lets you search for free books on the internet. The workflow is like this. Super, “Dune”, enter, start reading Dune in Google Books. Neat huh?

Well wouldn’t it be cool if a lens knew what you were looking for before you even start typing?

(Video Link)

The zeitgeist integration isn’t ready yet, but David’s working on it. In the meantime enjoy the current lens and all the books it finds, here’s the PPA.

Read more

App Developer Week

What an awesome week for application developers. Ubuntu App Developer Week was a week of great speakers, great sessions, great participation, Multitouch, Unity, GObject, Introspection, PyGI, Qt, Qt Quick, QML, Internationalization, KDE, Phonon, Multimedia, Touchegg, Plasma Widgets, Python, Testing, Rapid Prototyping, Thunderbird, GStreamer, Zeitgeist, D-Bus, Ubuntu One, Bazaar, Lenses, Launcher API, Indicators, Launchpad, Translations, Application Review Process, Packaging, pkgme, the Sound Menu, and much much more.

Here’s a recap of the whole week:

If you happened to miss any of the sessions, simply head to the Ubuntu App Developer Week page where you’ll find the logs for all of them.

Ubuntu App Developer Week – Day 5 Summary

Here comes the last of the summaries for your reading pleasure. Enjoy!

Qt Quick: Extend with C++

By Jürgen Bocklage-Ryannel

In this session Jürgen did another brief intro to Qt Quick: a declarative language to creat user interfaces on top of Qt C++. The subject was to extend it using the C++ language, and for this he introduced QtDeclarative, a UI runtime provided in a Qt module Qt Quick is based on. After this, he walked us through code examples: the first step – include QtDeclarative in the project in order to be able to use it in a C++ main.cpp file. Starting with basic tasks such as changing properties such as the colour of a rectangle from the C++ side, he went into more advanced ones, such as create a new qm element. Even more advanced tasks, such ad creating own elements, were left as a reading exercise with a pointer to the exhaustive Qt Quick documentation and tutorials.

Check out the session log here.

Phonon: Multimedia in Qt

By Harald Sitter

For the third time this week, Harald rocked the house with an entertaining and enlightening session: Phonon, a multimedia abstraction library. First, he showed how to get the environment set up and tools installed; next: an intro to Phonon – an abstraction layer between multimedia apps and a multimedia library backend in the form of a plugin. And next up some coding: the famous 3-line example to create a Phonon-based video player with C++. He showed us how to write a simple audio player, to which then video was progressively added. As a finale he pointed to a way to create a video player with no code at all!

Check out the session log here.

Integrating music applications with the Sound Menu

By Conor Curran

Conor started off explaining that sound menu integration in the next cycle will be made much easier through libunity, and talked a bit about the sound menu spec and the resources for contributors. He then explained that this cycle he concentrated on settling the architecture, making it easier for clients to provide integration. The only thing for a client to care about is to raise an MPRIS interface with a desktop entry, which will then allow it to be shown in the sound menu, and if available, any D-Bus menu items with it. He wrapped up with a description of some of the new features this cycle and an outlook on the next.

Check out the session log here.

pkgme: Automating The Packaging Of Your Project

By James Westby

On to packaging: James introduced pkgme, an almost magic tool to package your application to be distributed to users. Assuming your project uses a standard layout and pkgme has heard of it, it will use one of its backend to create the packaging structure tailored to your layout and toolset. New backends can be created upon request. As the finale, a recursive example: he showed us how to use pkgme to package pkgme itself!

Check out the session log here.

Unity Technical Q&A

By Jason Smith and Jorge Castro

Jason and Jorge started off this exciting session with an introduction to the cool things you can do in Unity: Lenses – bits of pluggable UI to mash up websites and applications in the dash, the Launcher API. After that questions started to kick in: What’s dee? Can you add multiple progress bars to the launcher? What’s the status of progress bars, badges and counters in the launcher? What search backend does the dash use? … if want to know the answer to these and more questions check out the session log :)

Check out the session log here.

Lightning Talks

By Stefano Palazzo, David Callé, Dustin Kirkland, MeanEye, Christian Muehlhaeuser, Nathan Handler

As the grand finale for a week packed with great sessions, even more concentraded content on a set of lightning talks to showcase cool projects created using the technologies available in Ubuntu: StackExchange App – a Unity Lens designed to work with Ask Ubuntu; Unity Book Lens – a Unity Lens to search through free online libraries; Bikeshed – a breeding ground for new/interesting/even-trivial-but-helpful scripts and programs; Sunflower FM – a twin-panel file GTK+ manager; Tomahawk – a social music player written in C++ and Qt; ClassBot – an IRC bot to help with running classroom sessions in #ubuntu-classroom

Check out the session log here.


I’d like to thank all session leaders for taking the time to prepare awesome content and deliver the sessions, and all participants for their attention and their interesting questions. You all made Ubuntu App Developer Week possible, and a success!

We’ll be back in 6 months time with a newer and cooler App Developer Week edition for you. See you then!

Read more

Ubuntu App Developer Week – Day 4 Summary

Ramping up to the end of the week we had another full app development goodness day, and one where the session topics fitted together in a nice workflow as well: creating bling, creating apps with Rapid Prototyping, getting them into Ubuntu, adding indicator support and translating them. Here’s the report of yesterday’s app development journey:

Qt Quick: Elements/Animations/States

By Jürgen Bocklage-Ryannel

The next Qt Quick session was all about creating attractive and usable user interfaces. Jürgen went through the QML tutorial documentation and code examples, showing us how to position elements with anchors, columns, rows and grids. Then onto states and transitions: describing the changes in an element’s properties and how to switch between them. To finalize, the most impressive stuff: QML animations, in which he teached us the different types of animations and how to use them.

Check out the session log here.

Qt Quick: Rapid Prototyping

By Jürgen Bocklage-Ryannel

In Jürgen’s words, Qt Quick was designed to bridge the gap between designers and developers, letting both groups to work with the same technologies and code base. He explained how Qt Creator provides a design mode which allows easy dragging and dropping of UI elements, and separation between code and interface. All through a natural and agile prototyping workflow.

Check out the session log here.

Rapid App Development with Quickly

By Michael Terry

Michael started introducing what Quickly at the heart is: a robust yet simple system of templates with boilerplate code and commands. The available templates are ubuntu-application, ubuntu-cli, ubuntu-pygame and ubuntu-flash-game, and on the Natty version, Quickly will feature the ‘submitubuntu’ command to help getting applications into the Software Center. All that being set straight, he then showed how to use Quickly and what it can do: from creating the first example application, to modifying the UI with ‘quickly design’ and Glade, into debugging and finally packaging.

Check out the session log here.

Getting Your App in the Distro: the Application Review Process

By Allison Randal

Linking from the previous session on how to create an app, Allison explained in a very clear way how to get your applications into Ubuntu, so that they make their way into the OS in a matter of weeks instead of having to wait until the next release. The first step is to submit a ticket to the App Review Board, giving them the essential details for the proposal. They’ll then do the initial review, in which one of the reviewers will volunteer to walk you through the process and help you with suggestions or improvements, to bring the app to a state ready for the final review. There the board will vote in a meeting for the inclusion of the application. After the process description she answered the questions from the audience and wrapped up with some useful tips to application submitters.

Check out the session log here.

Adding Indicator Support to your Apps

By Ted Gould

Ted kicked off with an explanation of what indicators are and their intended use: they should not be used just because they are available – rather as a feature for long running applications, those that are more services to users, to expose that functionality. The next step was to describe how to create indicators through libappindicator, with any language supported by GObject Introspection, such as Python or Javascript, and how to add more features to a basic indicator: accessible labels and attention state. After that he described fallbacks, and how platforms not using Unity can nevertheless use indicators. The final minutes were dedicated to the future of indicators, that for now will focus on API cleanup and stabilization, and introspection improvements.

Check out the session log here.

Using Launchpad to get your application translated -

By Henning Eggers

As a follow up to the talk on how to add native language support to your applications on Monday, Henning described the next step: how to make them translatable in Launchpad and grow a translation community around them. In the first part he showed how to set up a demo project using Launchpad’s staging server, and shared some recommendations on how to make sure the application is correctly set up for translations, followed by an overview on some Gettext concepts Launchpad relies upon. From there, it was straight into business: setting up a translatable project in Launchpad, getting translatable templates imported and exposed to translators, creating a translation community for your project and the workflow for translation. A very detailed overview to get your application to talk any language.

Check out the session log here.

The Day Ahead: Upcoming Sessions for Day 5

The last day and the quality and variety of the sessions is still going strong. Check out the great content we’ve prepared for you today:

16:00 UTC
Qt Quick: Extend with C++ – Jürgen Bocklage-Ryannel
Sometimes you would like to extend Qt Quick with your own native extension. Jürgen will show you some ways how to do it.

17:00 UTC
Phonon: Multimedia in Qt - Harald Sitter
Harald, as the lead developer of the Qt/KDE multimedia library Phoon will tell you about the awesomeness that Phonon provides and how it achieves ultimate portability, so that it can even run on vending machines. He’ll also tell you hos to create a video player with 3 lines of code (or in 30 seconds without any code) and much more.

18:00 UTC
Integrating music applications with the Sound Menu - Conor Curran
So you’ve seen the slick sound menu in Ubuntu, and you’re developing a multimedia application, right? You’re then wondering how to seamlessly integrate it into Ubuntu and use all the nice features from the menu as well? Wonder no more, for Conor is the man behind the sound menu and he’ll be delighted to teach you how.

19:00 UTC
pkgme: Automating The Packaging Of Your Project - James Westby
Once you’ve developed a cool application you’ll want to package it and distribute it to users so that they can easily install it in their favourite platform. James will show you how this can be both easy and fun letting pkgme do all the work for you.

20:00 UTC
Unity Technical Q&A - Jason Smith and Jorge Castro
You’ve heard about Unity, the new UI concept which is going to improve several orders of magnitude how you interact with your computer in Ubuntu. You are probably using it already, and you’ll surely have questions and will want to learn more about the coolness it brings. Jason Smith, from the Unity development team, and Jorge Castro, from the Community team know all about Unity and they’ll be here to chat with you.

21:00 UTC
Lightning Talks - Nigel Babu
As the final treat to close the week, Nigel has organized a series of lightning talks to showcase a medley of cool applications: CLI Companion, Unity Book Lens, Bikeshed, circleoffriends, Algorithm School, Sunflower FM, Tomahawk Player, Classbot – your app could be in this list next time, do check them out!

Looking forward to seeing you all there!

Read more

Ubuntu App Developer Week – Day 2 Summary

Wow, what a great follow-up to the first day! The second Ubuntu App Developer Week brought lots of awesome: great speakers and sessions, great participation, improvisation, Python, GTK, KDE, Qt, PyGI, Zeitgeist, Gstreamer, Introspection, Thunderbird, Unity, API Integration, hacking, fun… all the buzzwords you can associate when developing in your favourite Free Software Platform.

PyGTK is dead, long live PyGI! Using gobject-introspection in Python

By Martin Pitt

Martin’s complementary session to the GObject Introspection (GI) one on Monday was very popular. He started off with a recap of what GI is and the importance of the availability of several programming language bindings in any modern development platform. He provided an overview on how GI works in practice, and then delved into how it actually works in Python through the use of Pygobject and the gi.repository module, with lots of coding examples and comparison with traditiona GTK+ C code. After that he described other API differences, in particular the caveats with contructoirs, passing arrays, output arguments, GDestroyNotify and what to do with non-introspectable functions or methods. The next topic where overrides: how to provide custom code to override the introspected library’s objects. The second part of the session focused on explaining in detail how to migrate old PyGtk code to GTK3 and PyGI, in a series of easy guidelines: renaming, checking and repeating, and packaging changes. He wrapped up with a series of pointers on how to learn more and a Q+A session with lots of interesting questions from the audience.

Check out the session log here.

Zeitgeist API & Zeitgeist Application Integration

By Manish Sinha (???? ??????) and Seif Lotfy

For this session we had the luxury of having two key members of the Zeitgeist project to explain us all the details on how to integrate it to your own projects.  Manish, one of the Zeitgest developers, kicked off with an introduction on what Zeitgeist is: an automatic event logger which logs the events that happen on your computer. He then went on through the details of the Zeitgest terminology (events, manifestations, actors, timestamps…), architecture, and its interaction with D-Bus, with an overview of the API interface and the existing bindings: Python, C/Vala and C#. The session went on with examples of how real world applications and data providers use Zeitgeist, such as EOG plugins or Tomboy. Seif then chipped in with an example of  how Zeitgeist support was integrated into a GEdit plugin. Throughout the session lots of interesting questions were raised by the audience.

Check out the session log here.

GStreamer+Python: Multimedia Swiss Army Machete

By Jason DeRose

A very intersesting session indeed. In it, Jason explained all the points why GStreamer is the multimedia framework due to its economy of scale and why Python is the perfect complement with its simplicity and language clarity. According to him, together they provide the ultimative multimedia development tool, and this was why he chose to use them in hos own project: Novacut, the distributed video editor. From this point on, it was “Learning by doing”, and he then walked thorugh the code examples he’d set up for the session, showcasing how simple it is to work with multimedia streams with his swiss army machete :)

Check out the session log here.

KDE Development Intro: Q+A

By Harald Sitter and Jonathan Riddell

I’d especially like to mention this session due to a change of schedule. The original speaker, KDE/Kubuntu ninja Joathan Thomas could not make if due to last-minute commitments. But no worries, KDE/Kubuntu friends are always there to lend a hand, and in no time Harald and Jonathan stepped up to fill the gap and do an impromptu KDE Development Intro and Q+A session. In there they gave an overview on the essentials every prospective KDE developer should know and answered in detail the questions in the audience. All in all a great insight on how to get started developing KDE apps.

Check out the session log here.

Thunderbird + Unity = Awesome, and how JSCtypes lets you get to the candy

By Mike Conley

Mike has been working over the last 3 months at Mozilla on ways in which Thunderbird can integrate nicely into Ubuntu, in particular with Unity. He started explaining the main points he’s been focusing on: the messaging menu, the Unity launcher adn Ubuntu One, and for the rest of the session he covered the first two. Going straight to the subject, the next topic was to explain what a Thunderbird extension is, and how they are written using a mixture of Javascript, the XUL mark-up language and CSS, all executed by the Gecko engine. He then introduced JS-CTypes, which allow developers to access C libraries directly from Chrome-level Javascript code. and how he used them to write a Unity launcher add-on. the resto of the session focused on this subject, with plenty of code examples.

Check out the session log here.

STORY: Unity, hacking on a real-world app

By Marco Trevisan

The last session of the day was one of my favourite ones: an inspiring personal story. Marco is a community contributor to Unity who told us about his journey since he found an application itch to scratch and until his own feature was landed. He started with a very easy to understand overview of the Unity architecture and how all the pieces fit together, following with the story on how he found something that needed improvement and how he went about fixing it: indicator-sound not being precise when setting the volume with the mouse wheel. Do read it, as it is going to be a great help to all of you who are looking on how to get started contributing to Ubuntu development.

Check out the session log here.

The Day Ahead: Upcoming Sessions for Day 3

A quick look at today’s session lineup for your development pleasure:

16:00 UTC
Qt Quick: QML the Language – Jürgen Bocklage-Ryannel
Here’s a special treat for anyone interested in Qt development: Jürgen Bocklage-Ryannel, from Nokia, the maker of Qt, will be introducing Qt Quick and QML as the language used in Qt Quick. He’ll be showing some elements of the UI and the general process, and tell you the right places to go to to get more information.

17:00 UTC
Make your applications work in the cloud with Ubuntu OneStuart Langridge
Who else than the Ubuntu One mastermind himself could tell you better about supercharging your apps with cloud functionality? Join Stuart in this talk where he’ll be describing how to integrate Ubuntu One into your applications and bring your users to cloud 9 ;)

18:00 UTC
Take control of your desktop easily with DBusAlejandro J. Cura
D-Bus, the cross-desktop message bus system, is becoming more and more ubiquitous in any Free Software distribution. You can bring your applications to a whole new level letting them talk to other ones in a desktop session, and Alejandro can tell you exactly how to do that.

19:00 UTC
Touchégg: Bringing Multitouch Gestures to your DesktopJosé Expósito
It’s always great to see real-world examples of how the newest and coolest technologies are being used. José will be showcasing his multitouch-based application, Touchégg, introducing its features, describing how to add new multitouch gestures, the technologies used to develop it, and how it uses the uTouch-GEIS API. Check out the summary and the logs from the other Multitouch session on Monday to learn more.

20:00 UTC
Unity: Integrating with Launcher and PlacesMikkel Kamstrup Erlandsen
Do you want your application to seamlessly blend into the new Ubuntu user interface experience? Do you want it to provide all interaction capabilities that Unity provides? Then join Unity developer Mikkel Kamstrup in his walkthrough with examples on how to plug your app into the Launcher and Places API.

21:00 UTC
Tracking Source Code History with BazaarJelmer Vernooij
Learn how to control the history of your source code with a distributed and modern revision control system. Bazaar is powerful, fast, and most importantly, easy and fun to use. Jelmer has had a lot to do in developing Bazaar, so he knows well what he’s talking about. Join him in this session where he’ll tell you the basics and more sophisticated uses of the revision control system used to develop Ubuntu and thousands of other projects in Launchpad.

Looking forward to seeing you all there in a few hours!

Read more

Jay Taoko has put up a blog post talking about Unity’s hardware requirements. You can find the information on the wiki page too.

On the wiki page we talk about the OpenGL features we use and the hardware we test on, we hope to grow this over time. 

Read more

I’ve already talked about how I multitask with Unity. Today I’m going to talk about how I use the Dash.

(Unfortunately the flicker is way more annoying in this video than before. Jason tells me it’s my nvidia driver, I’ll need to hunt down a non-nvidia machine to rerecord this video, but it gives you a general idea)

( ogg / mp4 )

Read more

I have made a video of how multitasking works in Unity to demonstrate some of the more advanced features.

(ogg / mp4 )

Glitches are from the recording, it’s smooth on my actual desktop, also, when I say something in the video and it doesn’t happen it’s because I am fat fingering it, unfortunately we haven’t found a solution for that yet.

This is a guest session version of how I work to give you an idea of the things you can do (my normal session is a cluttered mess so I tried to go for more of an out of the box experience). Feel free to share your tips in the comments!

Read more

One more wall down. Here’s what evolution looks like in Natty. You can right click on the icon and do stuff.

Well thanks to Unity Quicklists I can add this to webmail too: 

Here’s the excerpt from the .desktop file, tack this into the bottom of your existing Chromium GMAIL .desktop file:


[Compose Shortcut Group]
Name=Compose New Message
Exec=chromium-browser --app=''

[Contacts Shortcut Group]
Exec=chromium-browser --app=''

[Calendar Shortcut Group]
Exec=chromium-browser --app=''

Clicking on those quicklists gets you app mode windows too, no new tab ugliness.

Ken and Aq, please put this in your “blah blah native integration” pipe and smoke it, yours truly, the web.

Read more

Thanks to the hard work of Marco Trevisan Unity now has better support for Chromium web applications. 

If you look at the pic you’ll notice that each web app has it’s own icon and it’s own window (and of course when you click on icons they’ll open in a proper browser window):

Thanks to Fabien Tassin for his guidance, and of course thanks to the upstream guys at Chromium for making this possible. There’s some other fixes left to land (you need a newish Chromium and Unity from tomorrow’s release) but this should be sorted out as both projects release going forward.

Read more

(but in a good way)

(Original Post)

While there is no exciting new bling to talk about this week, there are plenty of bugfixes to be had for this Unity release.?? This week the team welcomes Nico van der Walt as he makes his introduction fixing Bug #731212: “Applications” and “Files & Folders” keyboard shortcut overlays not  drawn correctly with scalable launcher and Bug #741346: superkey shortcut labels does not scale properly.

“The Ubuntu community is a big inspiration for me and I love how friendly everyone is. Unity will be a big success and I look forward to being a part of this great Linux distribution.”

Also this week we have Andreas Richel submitting his first fix for implementing a more robust method of launching applications from the home view (lp:730623). Unfortunately his camera is broken so no picture, but he sends along “I’m a 20-year-old German computer science student in my 6th semester. I’ve been passively following Ubuntu and the bug trackers for some time now, but was unable to find enough time to dig into an ongoing open source project. So this really is a first for me :)”

Also back this week are veterans Marco Biscaro and Andrea Azzarone, fixing Bug #742985 ‘Lenses with no shortcut still display black box when pressing super key’ and Bug #741775 ‘Launcher icon progress-bar too big for a 32px launcher’. These two are like clocks, something landing almost every week!

Wait, more Bugs?

This week the list is up to 39 bugs, a new high. Now you might be thinking “Wait a minute, I thought all these brilliant people were doing awesome, how can the list of bugs go UP!?!” As it turns out, there have been about 50 bitesize bugs fixed so far (the green line):

What happens is at the beginning the bugs aren’t really bitesize since a bunch of plumbing work is going on. Towards the tail end as we get towards the polishing phase it’s easier to nick off and fix bitesize bugs, especially as more and more people are able to run it the closer you get to the Beta milestone. If anything, the list of bitesize bugs will probably continue to grow, especially when Unity goes into another feature phase after Natty. However as you can see the green “Fix Released” line, the number of bugs being fixed also goes up as the code matures and is exposed to more people who want to hack on it. The slow march towards progress continues.

Other Unity Updates

(from the Desktop Team Report)

  • As usual, Unity (and related components) released last Thursday, ready for beta (3.6.8) + some bug fixes cherry-picked crash fixes for the beta freeze.
  • This week, we got, in addition to a lot of bug fixes:
    • Multitouch full support handling. If you didn’t test it and you have a supported hardware, you should probably give it a try, the handles (that you can activate by ccsm and a keybinding) are just… gorgeous!
    • Introduction of a pending waiting for approval “fade and slide” effect when hovering the bfb (in experimental plugin settings) that may be set by default.
    • Some keynav better handling in both the launcher and the dash, as well as Quicklist having now the title name in the Quicklist (as in maverick)
    • Launcher now responds to theme change!
    • Under the cover, a rewrite of the Hide behavior machine enabling more effective automated tests.
  • New Zeigeist synced with debian to get in sync with the latest debian stack
  • Some new compiz uploads to fix miscellanous issues, like more invisible window fixes, Alt + Tab fixes, some redrawing issues and autorespawn on crash

For people found of the full story, the now classic link:

How to Get Involved

1. Get the Code

Follow the Step by Step Instructions and Wiki Page. This will get the code from Launchpad, set up your development environment, and getting you used to the Launchpad workflow.

2. Pick a bug

Here’s the full list if you want to find more, feel free to just grab one, assign it to yourself, mark it in progress and get started.

3. Fix your bug and then get your code into Unity

Don’t worry we won’t leave you hanging, you can get a-hold of a Unity developer through many different ways:

  • #ayatana on freenode IRC during European and American workdays. Or you can post to the mailing list if you have a question.
  • We also have weekly IRC Q+A for any developer who wants to dive in and ask a Unity developer. 7pm-8pm UTC (That’s 2pm EST) every Friday!

Remember you can read all of Jorge’s previous Bitesize Bug Reportsby following the Bitesize tag.

Read more

Here’s my desktop when I’m working on stuff:

And here it is clean with my Launcher shrunk down, thanks to Andrea Azzarone’s contribution. This feels really great on my laptop:

Neil’s also landed a bunch of multimonitor fixes. Here’s some other goodies in Unity 3.6.4. Bitesize report on Tuesday, but I just had to share the love on this tiny-launcher.

I am now on the fence whether I should keep my bookmark toolbar or hide it to get even more content on my screen, but I do find it useful. 

Read more
Christian Giordano

One of our goals in the Unity design effort is maximising immersion in content, and reducing the amount of chrome and clutter needed around that content.

Unity’s new Overlay Scrollbars are a small but important detail in this bigger picture.


Today’s scrollbars are optimized for cursor driven UI but they became easily unnecessary and bulky on touchable and small screen devices. In those cases, optimization of the screen’s real-estate becomes essential. Other platforms optimized for touch input like Android and iOS are already using a light-weight solution visible only while dragging the content.

Our interest is in bringing a more lightweight approach to window chrome, like scrollbars, to the desktop experience. Touch and scrollwheels are making that chrome, if not obsolete, then certainly less important. We want to embrace new thinking from the mobile world, while still retaining some of the key semantics and experiences of the desktop world in recognition of the differences between the environments.



There have been few attempts in the past to bring innovation in this very mature GUI widget. Unfortunately the most radical approaches didn’t really survive long. We had a look at these attempts and analyzed why they failed. Some of them were just trying too hard, a good approach could have been to do a step at the time, in this case more an evolution than a revolution.


After having a better idea on the problem, and the various attempts, it was time to take some decisions starting from the scope for the solution.

The prerequisites we defined were:

  • Has to reduce at the minimum the usage of screen real-estate: to provide more immersive experiences.
  • Has to allow the user the ability to interact with 100% of the content surface: to be able to work over any content already created.
  • Has to work well both on cursor driven UI and on touch ones: this is a prerequisite of any Unity solution.
  • Shouldn’t conflict with the window resizing functionalities (ie. dragging windows borders)

One of the contexts we used to validate our solution was scrollable panes rich applications like Eclipse:
Eclipse IDE


To have a solution which would embrace touch input devices, some of the functionalities available on cursor driven solutions might have to go. For this reason we prioritized the scrolling functionalities (from the more important to the least):

  1. Scrolling via mouse wheel (or dragging content on touch devices)
  2. Scrolling via thumb
  3. Page up/down
  4. Jump to position via bar
  5. Line up/down


Going for an evolution approach of the current cursor driven scrollbars towards the overlay ones we have seen on more recent touch UI platform, we quickly narrowed down the options and the variations we considered were fairly similar.


Without further ado, here the video which shows both the prototype and the work in progress implementation (the visual might not be 100% accurate).

Overlay Scrollbars in Unity from Canonical Design on Vimeo.

User testing

As we usually do, especially for the more controversial design solutions, we tested the prototype in our office with external users. The results were so positive that they almost surprised us. People were involved in completing tasks where the scrollbars were just a marginal mean, of course they weren’t aware of what was really tested. Bottom line, despite they were using a not 100% stable prototype, they used the scrollbars so intuitively, going straight to the thumb and using it without any problem.

The current implementation is already available for everyone to test it starting from here. Please give it ago and report some bugs if you can!


  1. We are fully aware that our solution can be an easy target for critics (as they were who tried to innovate in the field before us). As mentioned earlier, we believe priorities are changed recently in the industry and that this is the right time to make our own attempt.
  2. We just noticed MacOSX Lion is likely to give it a try on merging the traditional scrollbars with the overlaid ones. From the few screenshots we saw, it looks like a quite different solution. What else can we say, good luck to them and may the best win!

Read more

(Original Post)

Lots of updates today. First of all, by the time you read this or by the time your mirror updates (or when you get Alpha 3 on Thursday) you’ll have the latest drop of the Unity Dash:

Unity File Places

Unity 11.04 DashSearching through the Dash in Ubuntu 11.04Quick lists land in Unity

Other Contributors this Week

  • We have a new contributor this week, Marco Bisaro ?has fixed  Bug #713789 – Upper left Ubuntu logo has different background color than panel.
  • Olivier Sauder’s work on keybindings for the launcher has landed
  • Mathew Rasmus has made it so the launcher uses proper getter/setter for the Launcher’s member-var_launcher_action_state.
  • This could be you! See below!

General Unity Fixes and New Stuff

What a crazy week! Double dose of unity (Thursday and Tuesday)! We also got a new compiz with a full stack rebuild/update. That totalize more than 23 updates within the week. As you can see, we got a lot of fixes and enhancements:

Other Highlights

  • Most of known common crashers for unity have been tackled
  • Lot of accessility improvments
  • Lot of launchers fix and most of “false show” positive or “launcher being crazy” on intellihide mode fixed
  • Drag and drop from the application and file places to the launcher is now functional (but still in beta Funny :) )
  • New shortcuts with the Super key:
    • tap super open the dash
    • Keeping super press will get some shortcuts showing: Super + to get active window of an application or show the places/ws switcher/trash
    • if you add Shift to the dance, it will open a new instance of an application instead of getting an existing one
    • Key navigation to all elements of the launcher now, and quicklist! Alt + F1 showing the launcher when hidden.
  • Rework fade effect animation when hovering the bfb (the ubuntu logo) Still some known crasher on the unity window decorator. It’s tracked and under debugging right now. Hope we can get a fix after alpha3 on upgrade.

How to Get Involved

1. Get the Code

Follow the Step by Step Instructions and Wiki Page. This will get the code from Launchpad, set up your development environment, and getting you used to the Launchpad workflow.

2. Pick a bug

This week we want to focus on these bugs, pick one:

  • Bug 718889 -  Launcher does not hide/unhide on Expo
  • Bug 660010 – No ‘safely remove’ option is present in the unity menu when a usb disk is inserted
  • Bug 718885 – Launcher responds to click off from a quicklist
  • Bug 721121 – Icon in Launcher should be home folder icon
  • Bug 718885 – (NEW!) Launcher responds to click off from a quicklist
  • Bug 725529 – (NEW!) ?Double-click on panel to unmaximize only works in right half
  • Bug 724727 – (NEW!) Super key shortcut overlay not with umlauts, greek/cyrillic letters
Here’s the full list if you want to find more, feel free to just grab one, assign it to yourself, mark it in progress and get started. I’ll be picking a new selection for each blog post each week, but the list is always changing, so you can always just dive into the list and snag one.

3. Fix your bug and then get your code into Unity

Don’t worry we won’t leave you hanging, you can get a-hold of a Unity developer through many different ways:

  • #ayatana on freenode IRC during European and American workdays. Or you can post to the mailing list if you have a question.
  • We also have weekly IRC Q+A for any developer who wants to dive in and ask a Unity developer. 7pm-8pm UTC (That’s 2pm EST) every Friday!
  • Mention session in developer week.

Read more

Now we can rock this...

Mikkel and Ken have a weekend present for you for those of you who have been waiting to add Unity Launcher bling to your Python apps. I guess these are bindings or “accessible in python” or whatever the GI way of saying it is:

Please note that this is new and I’m really just trying to sucker you into banging on it so you can file bugs and update documentation.

(You might need gir1.2-unity-3.0 if you don’t have it installed)

Read more

Here’s something I’ve been waiting for that I’m sure application authors will enjoy: 

We now have an API for applications to leave a progress meter and/or a number on their launcher. The wiki page is a bit sparse so expect more detail there over the coming week.

What we need to do

Well, the first thing I’m working on is getting the wiki page up to shape. We’re going to need examples for different languages, and basically make the page useful for application developers. I’m on that this week. I could use a hand here if someone wants to dig in.

Next, we need people to think about where this is useful. So right away, you’re thinking mail apps, Transmission and Deluge, USC, update-manager, etc. 

The library is called libunity, which is the same library you’ll use for Places and stuff, and you can use it in one of two ways:

  •  Directly in your application, just link up to libunity, you’ll notice the the API is similar to app indicators. This is on purpose, so if you’ve already got libindicator support in your app, this should just be additive and straightforward.

For example, right now your application might put a “new message” counter in the messaging menu, this is designed so that you can also just plop the same number right on the launcher icon too.

  • Or standalone, like the example on the wiki page - this is for you people who want to write little wrapper scripts to monitor something (like say, your mutt instance on a remote server, *hint hint*) (think of the things we could get from byobu running on your server!)

Application developers, we’re looking for feedback for libunity, feel free to file bugs.

How You Can Help

Feel free to start filing bugs in Launchpad for applications to support this. Make sure you tag em “bitesize”, as these will be easy for people to dig into and make work.

Got a favorite application? Link the up to our resources or they can contact us directly if they want help with linking these up.

Other Unity Improvements that Just Landed

Part 2 of the things that landed today are much more user visible, mainly, drag and drop for the Launcher:

  • Drag stuff into the trash
  • Being able to drag files onto apps, for example select 4 text files and drag all of them onto the text editor and it will open them all up at once.
  • Drag any .desktop files right into the launcher, but you can’t drag from the Dash yet, but you will be able to soon. For an example of this drag and drop applications from /usr/share/applications to get an idea.
  • Drag anything from a GNOME menu, GNOME Panel, and any dock that does xdnd into the launcher (for those of you with frankendesktops) - remember that we already import those launchers on first run.

Read more

Because people only land cool stuff after my weekly report: 

First off, Marco Trevisan (Treviño) has readded the old autohide behavior to the launcher for those of you that are into that sort of thing. Here’s the video showing you how it works.

Secondly, power keyboard users might want to check out the keyboard shortcuts page. I recently discovered the power of Ctrl-Alt-numpad, I think you’ll dig it. 

And lastly, Jason’s made it so that when you drag a certain file type into the launcher the application that launches it stays lit, but the rest “shut off”. So assuming you have say, GIMP and Shotwell in your launcher dragging a .png close to the launcher will keep those lit and the ones that don’t support .png will not be lit. Small, but slick.

Read more