Comment 15 for bug 701294

Revision history for this message
Klaus Reichl (klaus-reichl) wrote :

After running natty and oneiric on my laptops and getting into unity, I tried oneiric on my desktop (2 screen setup with lot of "ssh" work on remote computers) in preparation for 12.04.

And I agree with most people criticizing the current application menu implementation.

Consider windows having menus sitting far away from the panel, even worse if auto-raise is on
You have to navigate around other applications or pass them quick to get to the right menu (not to one from a different application).
=> that's a design flaw

One may argue starting an application with UBUNTU_MENUPROXY="" helps here, however, one has to
* change every .desktop file => clumsy
* start apps from command line => that's what I did years ago and try to avoid thanks to a good desktop design
* remove libappmenu.so or change startup scripts in /etc/X11/Xsession.d => this is global for all logins on a system and thus wrong

Consider applications which are running one local instance and others remotely. Oh boy, local instances have application menus in the panel, remote instances on top of the window => huhu, not acceptable.

Here is one (non-invasive) solution which let users decide what they want. A better solution would be, however, to be able to select per application class or even by application state (full screen / not full screen).

What I did is to change the /etc/lib/Xsession.d/80appmenu* files to check if UBUNTU_MENUPROXY is already set, and leave it alone if so. So a user can disable application menus generally setting in her .xprofile.

Code is for /etc/X11/Xsession.d/80appmenu

if [ -z "$UBUNTU_MENUPROXY" ] && [ -f /usr/lib/gtk-2.0/2.10.0/menuproxies/libappmenu.so ]
then
 export UBUNTU_MENUPROXY="libappmenu.so"
fi

and similarilly for /etc/X11/Xsession.d/80appmenu-gtk3
if [ -z "$UBUNTU_MENUPROXY" ] && [ -f /usr/lib/gtk-3.0/3.0.0/menuproxies/libappmenu.so ]
then
 export UBUNTU_MENUPROXY="libappmenu.so"
fi

for .xprofile
UBUNTU_MENUPROXY=""
export UBUNTU_MENUPROXY