HUD to replace menus in Ubuntu 12.04
Source: www.markshuttleworth.com Ubuntu sponsor Mark Shuttleworth has posted a blog entry introducing a new GUI element. The HUD, short for head-up display, will initially operate alongside conventional application menus, but may eventually replace them altogether. Pressing the ALT key brings up a overlaid, semi-transparent dialog box, into which the user simply types what they want to do. The HUD then searches for relevant menu options and presents a list from which the user can select the required option.
This video shows how the HUD is used:
Currently the HUD consists primarily of a search function which goes through menu options in Gtk and Qt applications (including all Gnome and KDE applications). The HUD will learn which options the user selects most frequently and will adapt to their preferences, so that it should then generally suggest the correct action. It should be relatively simple to implement voice control for HUD, though that remains a topic for future development.
According to Shuttleworth, as it presently stands, the HUD is an effective solution for performing the primary function of menus – executing a specific application function with which the user is already familiar. It will save users the hassle of navigating menus with the mouse and save them the job of working out which menu they need, such as wondering if Settings is under Edit, Tools or Options?. The HUD is not yet able to offer the secondary function performed by menus – that of providing an overview of the functions available within an application – but the developers are working on it. Once they come up with a suitable solution, Shuttleworth believes that application menus could even disappear completely.
For the more technically inclined, Ted Gould gives an overview of how the HUD collects and searches the menus. It uses the same Dbusmenu data that Ubuntu 11.10 uses to create the current global menu. This means that any application which works with global menus should work with the HUD. By "just remixing it for search" and using the already localised menu labels, the data is then matched using an implementation of the Levenshtein distance which makes it more more resilient to "fat finger" typos. Regularly used selections are then remembered in an sqlite database and used to bias the offered selection.