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