That’s my blog… Life and Linux

Introducing Locally Integrated Menus to Unity 7

Hey Ubuntu folks¹!

This is the Unity desktop team and during the last months we focused, as always, in polishing and improving the user experience of our default window manager for the next upcoming LTS!
In fact, while in the last months most of the Canonical commitment to Ubuntu has been directed to the Touch form factors, the “classic” desktop has not been forgotten at all and, we’re still working hard on it, to give our users the best experience and to approach smoothly to the convergence vision that we’ll get with Unity 8.

Part of this work have been the spread improvements, the HighDPI support, the new decorations and tons of various bugs fixed; however with this important milestone coming we also wanted to finally propose a solution to fix the main UX bug we have in Unity since its very first release: the menus being hard to find or too far from their parent window.

In fact, having the applications menus in the top panel really worked very well in small screens but now, especially with HiDPI monitors getting more and more popular, the top panel could be really too far from the actual window location… The solution, that the UX designer JohnLea has defined are the Locally Integrated Menus (LIM).

Ubuntu Unity Integrated Menus

People might recall that also at 12.04 times we implemented a first prototype of LIM, however due to some very-hard-to-fix issues we had with core applications, we decided not to try to propose an half-working solution for an LTS.

So, almost 2 years have passed, but our intent to get this feature done was still strong, although this time we wanted to implement LIMs in the proper way, as Ubuntu quality standards deserve. In addition designers defined a new and improved revision of their work, proposing to show the menus inside the decorations themselves in horizontal mode (until we’ve room for them); so, continuing to save the precious vertical space and keeping the nice look of menu-less windows unchanged.

To be honest, we’d loved to land this way before, but the amount of technical work needed has not to be underestimated.
Being more precise, one of the blockers we had in 12.04 was our dependency on the legacy compiz decor plugin + gtk-window-decorator, that has worked “OK” in the last years but – a part from using deprecated technologies (gtk2 in primis) – it really would have made this concept impossible to realize.

So, the first step has been moving away from the old gtk2-based decorations and writing brand new decorations supporting Gtk3 CSS theming² inside Unity itself; this has been an huge work (including writing a brand-new widget system for handling compiz textures in a more natural way), but it gave us great benefits in the end such as much faster windows resizing , improved look, support for dynamic scaling (for both HighDPI and accessibility reasons).

Once we had this new layout where to place any widget quite easily, all took shape in few lines, we only had to handle the fact that now menus opens on mouse button release and only if the user doesn’t keep it pressed for too long³, while a slightly trickier part was to handle the case where we had a too small window to show menus in horizontal mode, and where we had to fallback to a dropdown menu.

LIM’s dropdown, shown if we have not enough space

As this is an LTS release, before setting this menu mode as the default we wanted to have some community feedback. For now, you have to enable it using the Unity Control Center Appearance panel, and let us know what you think!

Unity Control Center with Application Menu settings

Tweakers might be happy to know that there are also other settings you can use to adjust your LIM experience under the com.canonical.Unity.IntegratedMenus gsettings schema, that allows to define the pressure and movements thresholds, and to also enable double-click over the menus (to maximize the window, if you’re fast enough); However, while you can adjust the settings for now, we encourage to use the defaults as they are based on wide user testing and are coherent with our design guidelines.

After some words, I guess it’s time to see them in action, and upgrade your Ubuntu Trusty machine to enjoy them!


Youtube Video

[1] Hello Planet, I should also probably say! 😉
[2] We really encourage and support anyone who wants to update its theme to support Unity
[3] Maximum press time is configurable, but default values are based on design user testing

  • Unfortunately we can’t access to the menus of a root application… I it’s just a simple matter of permissions…

  • Pingback: Ubuntu traerá de vuelta los menús a las ventanas de aplicaciones | Misiongeek()

  • Pingback: Ubuntu traerá de vuelta los menús a las ventanas de aplicaciones | TECNOLOGÍA()

  • julien

    You’re absolutely right, and that’s exactly why each application has to make its own UI choices. And that’s also why it is very important for distributors to trust the developers and respect their choices. And Canonical is doing exactly the opposite of this. I just hope they learn from their mistakes…

  • Gérald Maruccia

    Well thanks for making it clear-er 🙂 Yes an option has to be proposed or an easy way to quickly switch between those menus and titles.

    Anyway I’m very impatient to use those new features as I immediatly can see the comfort they will bring to me day to day !

  • Gérald Maruccia

    Mmmm… I really think the LIM thing is a good idea, very consistent with the global feel and look of Unity and it leaves enough room for mixes : title windows + horizontal menu + one-global-button-or-array and any other things future can bring.

    I’m not used to gnome3 so I won’t criticise it, I still can’t imagine how just one button could sum-up all the menus of an app – except if this app’ has been designed specifically within this aim.

    And I’m not that sure app’ developpers are aware of how people really use their softwares, regarding of usability and ergonomy 😀 it’s not at all Canonical specific and that’s why each DE or distribution tries to answer in its own way.

  • jmsm

    Hi Marco! Thank you very much for your work in Ubuntu! Have you considered this:

    – When a window is maximized, do we really need the title? Is the title or the menus (fixed menu) more useful?

    – When a window isn’t maximized why not show the tile in the top unity bar for the active window and the menus (fixed) in the window top bar?

    – Unmaximized, inactive windows could perhaps have window title in the window top bar?

    I really like Ubuntu and this new option is awesome. Thanks.

  • Indian_Art

    Brilliant move. Thanks for listening & respecting your users by offering them choice.

    Feedback: “the menus being hard to find or too far from their parent window” Thanks for this feature because we feel this is optimum use of space both pixels & mind-space. Also, so happy to hear: the “classic” desktop has not been forgotten at all and, we’re still working hard on it

    May I suggest other great features that will increase Ubuntu’s popularity:

    An option for the ‘Classic User Interface’: The task bar (bottom panel) with a ‘Menu’ button (like
    Linux Mint or the ‘Start button’ of Windows). This will bring back & encourage a lot of people to use Ubuntu who find this a ‘familiar’ & comfortable UX. Once they like the OS they will find the Unity UX better & will be more conditioned to accept & like its features.
    Because there is no “Classic” UI, I am forced to install Kubuntu instead, for some people.

    In addition, an option not to club similar windows & stack it together. For example, if there
    are 2 Writer file documents, their names should be next to each other in the task bar / bottom panel. In other words, one file should not hide another file of the same App/ program.

  • Indian_Art

    @hittio Now Global Menu shares screen space / real estate with the Title & when the Menus are not needed only the Title shows. This I feel is ideal as because it is optimal use of space & house keeping by tucking away the clutter. I hope the present system continues.

  • Very cool and thank you! If you don’t mind I have some thoughts.

    People are all working on “convergence” (especially windows). But with such different mediums (desktop / tablet , keyboard mouse/ touch) and screen sizes and multi screen, I think another approach that you are starting to show the way with right here is the approach:

    A toolkit that seamlessly provides different “interface display profiles” on different mediums that can be easily switched between, and the underlying code is the same.

    On the desktop and on multiscreen setups for a long time I have liked focus-follow-mouse and in-app-menus (glabal menu + focus-follow-mouse is totally a no go :P) so on all my desktops the first thing I do is strip out the global menu :/. However, I have found in the last couple years that on my 10″ netbook, I usually alt-tab between full screen apps, and I do like the global menu there. 🙂

    So canonical/ubuntu/unity, providing a GUI that can switch between different modes, provides the best single point of flexibility. Meanwhile, Microsoft’s approach of having a completely separate “classic desktop mode” and “metro mode” seems likes a total fail as we have seen.

    So please keep up the good work on providing a toolkit/interface that can work differently and well on many different displays and platforms!

  • Josh

    Why doesn’t the local menu activate when you mouse over the title bar of a non-active window?

  • ocra

    I’d like the local menu to appear on non-active windows as well. Sometimes, I just want to access the menu of a non-active window with a single click. The video shows that it requires 2 clicks. One to make the window active and another to actually click on a menu item.

  • Pingback: Muere el Global Menu de Ubuntu, vuelven el menú a las ventanas en el próximo Ubuntu como de toda una vida()

  • angel

    I understand the limitation why root application’s menu cannot be integrated with the global menu. Will the local menu (the Unity version) work with root applications ? If no, then I don’t understand the difference between displaying the local menu in two lines (as is done today), and the single line ‘Unity’ local menu.

  • Sicofante

    When a window isn’t maximized why not show the tile in the top unity bar for the active window and the menus (fixed) in the window top bar?

    I think this is a great idea. We wouldn’t have to choose between menu and title and would be using a wasted space (the top bar, which will be empty when using local menus).

    At the same time, this should be very easy to implement, right Marco? Please ask “permission” to the designers to implement this!!!

  • Chad Germann

    A few questions to ponder. Why does the Top bar need to display the application name at all? It is after all already displayed in the windows title bar and that is only not displayed when it is full screen an than it is simply extraneous information.

    Why should the application name (Worthless information) given display priority over the location of Application controls (Useful information)?

  • Chad Germann

    this is exactly my issue these “Useability tests” have never been fully published nor has the method or the testing agency.

    As i understand it Usability testing is cone using a Sampling of persons that ideally represents a cross section of a population (Representative Sample) . Test such as these are easly skewed nt just by interpretation of the data but poor Sampling for example was the sample pulled at a shopping mall or, was it was it pulled at the UDS?

  • Pingback: Ubuntu traerá de vuelta los menús a las ventanas de aplicaciones | Compartiendo()

  • Pingback: Ubuntu traerá de vuelta los menús a las ventanas de aplicaciones | Sistema Geek()

  • 2eurocents

    Oh wow. That’s very bad news for me. I’ll just use 13.10 until I figure something else out. I wonder what you’ll put in the panel? It will just be empty now, the whole left side and center of it? Seems pretty odd.

  • http://tiamat.tsotech.com/displays-are-the-key

    this also raises some more points. for some bizarre reason monitors and desktops have been stuck in a no growth weird zone for like a decade. compared to all other computing parts advancing like moore’s laws it’s really strange. but its partly because we don’t know what we’d do with bigger desktops. but ideally some people would like them. try thinking about an opposite mobile case of super huge desktops. 5000×5000 or more. tons of windows. obviously something like global menu doesn’t scale to that either.

    you guys have done a really good job of sewing up the low end of display sizes but some of us still have, and hope for even bigger displays. please keep pumping out improvements for those too 🙂

  • Very, VERY NICE, Marco.
    Hope this become default on 14.04
    Keep going! 🙂

  • hictio

    And I hope that, since the folks at Canonical are making changes, they add an option to keep the Global Menu always visible 🙂
    It is not that hard, and, doing so they will keep every single Unity user happy, since they’ll offer the 3 possible options.
    Personally I find this new option even less useful than the current implementation of Global Menu (the one that vanishes the menus when you aren’t making a mouse over).

  • julien

    > And I’m not that sure app’ developpers are aware of how people really use their softwares, regarding of usability and ergonomy

    Well, I sure hope they do, or at least try to. I’m an application developer myself, and I communicate a lot with my users, and take their input into account when designing my apps UI.

    > it’s not at all Canonical specific and that’s why each DE or distribution tries to answer in its own way.

    Well, I don’t agree at all here. Which other distribution twicks the menu system? Not Debian, not Fedora, not Suse, not Slackware, not Ubuntu GNOME, not Kubuntu, not Xubuntu, not Lubuntu, not Mint… the only distribution that does this is stock Ubuntu, through Unity, and maybe some of its derivatives.

  • Pingback: Visto nel Web – 119 | Ok, panico()

  • Pingback: Les menus dans les applications feront leurs retour sur Ubuntu 14.04 LTS()

  • I think you misunderstood. Nothing changes unless you ask for it to be changed. The way you have it now, is the same way in 14.04, except that you can change it if you want to.

  • While the one you describe was the designed solution, it had some technical difficulties, as it would need to change indicator-appmenu in a substantial way and so the unity panel service… So we decided to go with this implementation for now, not to change too much our platform, with the risk of introducing bugs.

  • The “faded” title was actually a bug that LIMs wanted to solve, and I personally don’t see much gain from showing that…

  • Potatoes

    That’s unfortunate. It’s similar to one of my main issues with a global menu and multiple non-maximized windows. I hope the original design solution eventually gets implemented.

  • Gavin Engel

    So many things … firstly people like me aren’t annoyed by the faded title as much as the placement of menus on the top. That is the “bug” if there ever was one. Secondly when your window is 12 inches wide, there is no reason to fade anything–there is plenty of room for both. Thirdly, it is frankly bizarre that one would not want to support showing simultaneously in order to make life easier for people like me.

  • Well, we might, but I’d personally prefer this solution (one more click is not that a problem imho)…

  • 2eurocents

    I hope you’re right, I really enjoy using Ubuntu at this point, but I think the author of this post said it will be the default, and – with no option to switch off? That’s unclear to me.
    Like I said I have the crappy 15-inch display with 1366×768 res, like much of the world, so my mouse doesn’t have to “travel” anywhere to reach the menus in the panel, and I really like it this way.

  • He’s right. The author of the post and of the code (myself) said that LIMs are optionally available, but we’re considering to set this *option* the default one. This doesn’t mean that global menu will be removed.

  • Pingback: Ubuntu 14.04: le barre dei menu integrate nelle titlebar | oneOpenSource()

  • Pingback: Weekly News Round-Up: Feb 17 – Feb 23 | TuxArena()

  • Gérald Maruccia

    I better understand your point of view now. But does not Gnome do the same move with the “one-wheel-button” ?

    So you’re very right : developpers have to clearly signify which items in the menus are solid part of their core-software and which items deal with general functions and then can be dealt through OS.

    And beyond that, final user should have the ability to re-arrange core-app’menus regarding his own usage of the software – much needed in case of “richer / fatter” app’s.

    Sorry, I’m just a very happy user with Unity – and sometimes KDE 😀

  • julien

    > I better understand your point of view now. But does not Gnome do the same move with the “one-wheel-button” ?

    Well, GNOME does that to some of its applications, when they thing this is a good idea. As they have full control of their app design, this is not a problem.

    > Sorry, I’m just a very happy user with Unity – and sometimes KDE 😀

    No need to apologize! To each his own, I respect that.

  • Danilo

    This is pretty neat: it finally makes sense to use sloppy mouse focus with Unity (which I struggled with since top-menu was introduced).

    HiDPI stuff doesn’t work for me properly though. Font sizes change only when set from the unity-tweak-tool, but they are changed for all the screens then.

  • Danilo

    Well, if you have 1000 files in a folder, and ask any sample of people to rename all the files so they have the current date appended to the existing file names, CLI people would probably win out every time. It just means that CLI is indeed more efficient for such a mundane task (and it’s quite trivial to prove that CLI is more efficient for a bunch of things, with shell basically being a programming language with interfaces designed for managing files, programs and their input and output). Basically, it’s a test case that’s well suited to CLI but not to GUI.

    Being more efficient does not mean something is more usable (and more often than not, it’s exactly the opposite).

    The intersection of the two (usable and efficient) usually involves a very complex architecture that provides complicated answers to simple queries (think Wolfram Alpha, Google search box, or hopefully something that Unity dash search can become).

    All of them in existence are still read-only, but the idea is to get to a smart interface that will do what you want.

  • Chad Germann

    I think you missed the point the CLI vs GUI comment was indented to be an obvious example on how sample stacking works.

    the whole post was about Manipulating studies in the social Sciences or in this case user studies

  • Alwyn

    Just to give you my experience after using the new menu locations for a week now. Interestingly, because I had got used to the global menu since 12.04 I still catch myself throwing the mouse to the top of the screen for the menu, only to remember where it now is! I’ve been through enough GUI transformations in my career to realise that this is just getting used to another location. However, even when I recall where the menu now is, I often throw the mouse past the window title bar – probably because the menu is not visible until you get there. Again, I know that I’ll get used to this, but for me on a smaller screen the global menu seems the more intuitive.

    So, basically, my feedback is that it works well and is a brilliant option for those with larger monitors. However, for working on the laptop or smaller screen, the global menu is more intuitive. Having the option is _brilliant_, so keep the option in! And if the option to have either is available I guess it then doesn’t really matter what you make the default. It would just seem rather counter-intuitive to make the title bar menu the default after getting people so used to the global menu over the last two years.

    Great work! Do be encouraged in all you are doing!

  • Pingback: Ubuntu Unity to bring back local menus | Matias Vangsnes()

  • Gio

    Nice!
    However, with the current implementaion of LIMs the double-click action in the titlebar to maximize the window works only if I click outside of the menu.
    May I suggest to consider reintroducing the old behavior for double-click? I use it a lot… 😀 🙂

  • Khurshid Alam

    @3v1n0:disqus Why does global-appmenu(since beginning of Unity) & LIM not show icons on the menu for gtk-applications even with “show-icons-on menus” enabled from dconf? This is very uncomfortable when using menu-heavy applications like openshot or gimp.This actually forces users to read from text label rather than easily recognizing it from icons This also leads to inconsistent experience in Unity because other gtk-menus like menu in indicator-applet or simple right-click menu in nautilus do show icons.

    Gnome already created enough controversy by first removing it from gtk-3.10. Later, They patched it back.

    If this behavior is intentional, then I would say, Ubuntu (or Unity-Gtk, on this particular case), this time, has gone too far by not respecting XSettings.

  • Cool, as for the HiDPI stuff, lots of things are still under heavy work, see https://code.launchpad.net/~3v1n0/unity/hidpi-better-scaling and https://plus.google.com/108101042776723451522/posts/3aKE8rN32ZA

  • It’s actually off by default as per design decision, but as I said on the psot and explained in this bug https://bugs.launchpad.net/ubuntu/+source/unity/+bug/1283695/comments/2 can be enabled using the settings 😉

  • I think some applications does, but I don’t recall the internals (this side of the work is done by the indicators team), but one of the main reasons is related to the fact that we are exporting menus from the apps to the shell using DBus, and passing also images has not been a priority.

  • TJ

    How come Nautilus has two different app menu systems? Can Ubuntu solidify these in 14.04?

    Look at the Nautilus window. Why is there an App menu and there’s also a menu-button all the way to the right on the toolbar. This setup is very irritating. Why is this allowed in Ubuntu? It makes dealing with menu system confusing and inefficient.

  • Pingback: Linux Outlaws 335 – They Lost the Allen Key | Sixgun Productions()