(two articles with extensive mockups are linked at the bottom)
Example Headerbars:
Example HUD Overlay (could be made touch-friendly, see other mockups):
Summary
What if Unity 8 brought back the features of Unity 7 but in slightly different (more modern and robust) form? The idea is inspired by Gnome headerbars, KDE DWD protocol and (obviously) Unity 7 locally integrated menus and HUD. It borrows concept from all three. It can be used to create touch interfaces for apps that don't have them.
It also creates an extremely consistent consistent UI. Right now Gnome headerbars are wildly inconsistent with the UI of traditional applications. In general, no application rewrites will be required for this to work.
The idea is basically the following...
First the server-side headerbar. It's a very simplified version of KDE's DWD:
- Export menu items over D-Bus (doesn't have to be for all applications).
- For non-CSD apps, allow buttons and menus to be placed in the server-side window decorations, Gnome-style.
- These buttons will send D-Bus calls to the decorated application (or even run external applications/scripts).
- You can have hamburger menu(s) give the user actions that you can't fit into the decoration. So you can, for example, replace the menubar with
- These buttons and menus can trivially configured by the user or the developer (just like a toolbar).
- Many applications allow you to hide toolbars that you don't need. If the functionality of the toolbar has been transferred to the headerbar, the toolbar can now be hidden, giving much more room for content, which is important on smaller screens.
- Bonus: Would be nice to be able to have different colors for the server-side decorations, to match window chrome.
This way, app developers can deliver consistent native "headerbar" functionality to users with virtually no effort. And users can customize them to their needs. Nobody is locked into anything. Compare this with Gnome's approach of rewriting the entire UI for every app, a UI can't be customized by the user and won't work well anywhere outside of Gnome.
However, headerbars are very limiting. So one would have add HUD.
- The HUD is locally integrated (displayed wherever the app window is located).
- The HUD allows the user to search the menu items (or other stuff, if applicable). Like Unity 7.
- The HUD can also contain buttons and menus. You can use that to graft a touch interface on virtually any app. You can display the menu-bar as a big touch friendly sidebar, for example.
All of this stuff can be done with nothing more than menu export over D-Bus and a couple config files, but the possibilities are basically endless with further developer effort. One could integrate help documentation into the HUD, for example.
The gains in screen space, efficiency and UI consistency are potentially enormous. The HUD/Headerbar interface stays out of your way, unless you need it and is more discoverable and quick than using traditional menus and toolbars.
I wrote two articles with lots of mockups, one for the Headerbar and one for the HUD. Please take a look.