Shared publicly  - 
 
The last few months I’ve been involved with a project we’re revealing today, HUD. So I’m going to talk a little bit about it.

The idea is really rather simple, menus are a fairly awkward way of accessing really rather useful actions, you want to do something but have to break your work-flow in order to find your way through what is often a large nest of menus, even when you know precisely what you want - you end up taking a long trip just to get your action. The simple solution we have come up with is to present a searchable interface to activate these menu items. You hit <Alt> - the HUD interface opens up, you type your action and hit return. http://markshuttleworth.com explains In much greater detail than I’ll go into here.

Supporting Browsing and Actions

In HUD we still have to support both browsing menus to discover what an application can do and actioning. Actioning is fairly simple, if you want to blur an image in GIMP, you tap alt, type Blur, press return. But discovering that GIMP has a blur function is slightly trickier. To solve that we have a combination of a selection of results presented to the user along with some clever fuzzy matching.
Ted Gould does a fantastic job of explaining the details over on his blog http://gould.cx/ted/blog - Along with a call to arms to help refine the results and test cases.
HUD also has another trick up its sleeve, it learns. The more you use an action related to a search the higher priority it is given. This really starts to take off after actively using the HUD for a while, doing common actions that used to require you to move to the menus and potentially find a deep nested menu are suddenly much quicker and smoother to activate.

HUD and Testing

One of the focuses for this cycle has been an increased effort towards testing and stability. The HUD feature is no exception. HUD will land will a full backend UnityCore automatic test-suite with manual tests for the client side. The manual-tests are currently going through a process to be converted over to autopilot thanks to the awesome work the QA team has done this cycle to enable autopilot for Unity.

Development notes

The code for HUD sits at http://code.launchpad.net/~gordallott/unity/hud and will be merged in to unity sometime within the next week or two - hopefully for unity 5.2.0. There are some visual refinements that still need to land, what we are demoing today is not the final look.
Once we have the initial feature landed there needs to be some more work done on the search bar, namely full completion support and making sure our test suite is top notch.

Much of the work is shared between Unity and Unity 2d, including a fully featured test suite via UnityCore. Which means we should land the same HUD service in unity-2d sometime this cycle.

Merges and bugs should be filed against the normal unity project: http://launchpad.net/unity/ - whereas service errors (including bad matching) should be filed against the indicator-appmenu repository: http://launchpad.net/indicator-appmenu
one last thing: http://people.canonical.com/~ories/HUD.m4v
54
35
Cody Russell's profile photoMichał Prędotka's profile photoDuncan McGreggor's profile photoJavier Pastor's profile photo
9 comments
 
Good job, promising ;) Good luck with the project!
 
In Inkscape the Alt key is used for selecting an object covered by other object. Will taking the Alt key for summoning the HUD be a problem for using it with Inkscape operations?
 
The main point here:
Extracting menus from the application, then mapping it to actions.

Next:
Extracting more feature from the app, create a visual input<->functions mapper.
 
Amazing Gord, keep playfull, Serendipity....is Water Dragon year!!!
 
+Gord Allott How do you implement the feature to discover the menu? I would expect something like KickOff from KDE4, just in "HUD Style".
 
I think a new user of an application learns it with the help of menus to some extend or if someone is new to Ubuntu, he can learn a lot of things with the help of menus. Even if the menu is kept, in some future releases it only help the continuing Ubuntu users. Now what about a new Ubuntu user? How can we overcome this difficulty? I think it will be fine if we implement some alternate methods to find what are the options available in some application or in Ubuntu(A quick 'command help' or an intuitive map or something like that..). I think this is an important issue. This new idea of HUD is really exciting......Congratulations to the Ubuntu team...:)
 
Hi Gord, just came across the HUD idea today. It strikes me as very interesting. Thinking about Mark's blog post on the second usage of menus, that of discoverability, have you considered the ability the HUD gives you for moving away from tree structures to tag structures for command organisation? So, upon pressing Alt the user could be presented with a map of the tags given to the commands available - by clicking/digging into a tag the commands within become accessible. So you'd have multiple routes to the same commands, and even the possibility of sharing semantics if users began to customise their tagging.
Add a comment...