GNOME has introduced the AppMenu for some of its core applications a while back (for some applications like Epiphany, with GNOME 3.4 and for others like Nautilus, etc. with GNOME 3.6), meaning that part of the menu or the whole menu is displayed as a drop-down on the top GNOME Shell bar:
Some applications now have two menus: an AppMenu that's displayed on the top GNOME Shell bar which is used for actions that affect the entire application and another menu that's displayed in the application window, which affects the currently focused window. Such applications include: Nautilus 3.6+ (the AppMenu includes: Preferences, New Window items, etc., while the cog menu that's displayed in the application window can be used to open a new tab, create a new folder, etc.), Totem 3.6+ (uses an AppMenu and a regular horizontal window menu) or Epiphany (Web) browser.
Other GNOME applications only use an AppMenu, without a secondary window menu: GNOME Documents, Contacts, Boxes, Cheese or Empathy.
While using an AppMenu for actions that affect the entire application and another one for window-specific actions makes sense in theory, in reality this seems to have caused confusion, inconsistency and some would say that it brings no real benefit. Further more, GNOME Shell's top bar is only displayed on the main monitor when using multiple monitors and thus, if you want to access it for an application that's displayed on another monitor, the mouse needs to travel a considerable distance.
And this isn't confusing just for GNOME Shell users. The GNOME Shell AppMenu is also used in Unity and for instance, in Nautilus 3.6 (which is installed by default in Ubuntu 13.04 and can easily be installed in Ubuntu 12.10 using the GNOME 3 PPA), it's not clear that there's a menu on the top Unity panel:
It doesn't look like there's a menu on the top panel |
But there is a menu... |
Further more, Ubuntu 13.04 (with Unity) users can't access the Totem preferences, among other menu items, because Totem uses the classic horizontal menu and thus, the menu is displayed on the top Unity panel, so the Shell AppMenu is not displayed at all - I've reported the bug here, hopefully this will be fixed in Ubuntu.
So here's how to remove the AppMenu, but retain its functionality.
How the menus will work after disabling the GNOME Shell AppMenu
Removing the GNOME Shell AppMenu doesn't mean you'll lose the AppMenu menu items. They will still be available - here's how things will work after using the instructions below:
- for Nautilus 3.6+ and Epiphany 3.6+, the contents of the AppMenu will be merged into the Cog menu; for Epiphany 3.4, the Shell AppMenu will be displayed in the application window, but not as a horizontal menu bar but as a single menu item;
- GNOME Shell: for Totem 3.6+, you'll get a new menu in the application window, so the menu will be displayed on two lines. I'm not aware of a work-around for this (hopefully, Totem will at least get a cog menu soon);
- Unity: this tweak will only affect Nautilus 3.6+ and Epiphany 3.6+. For applications that only have a Shell AppMenu, the menu will continue to only be displayed on the top panel. Also, for Nautilus 3.6 and Epiphany 3.6, the contents of the Shell AppMenu will be merged in the cog menu, but it will also be displayed on the top panel;
- for the applications that only use a Shell AppMenu (GNOME Documents, Contacts, Empathy, Cheese, etc.), the menu will be displayed in the application window, but not as a horizontal menu bar but as a single menu item (see screenshot below).
GNOME Documents with the AppMenu displayed in the application window |
And an extra note for Unity with Totem 3.6+ (installed by default in Ubuntu 13.04 Raring Ringtail): you can get access to Totem's Shell AppMenu without using the tweak below, by launching Totem with "UBUNTU_MENUPROXY=0 totem" so you'll get the regular menu in the application window and the Shell AppMenu on the top Unity panel (actually, using the tweak below won't fix Totem and you'll still have to use that command).
Disable the GNOME Shell AppMenu
Don't worry, if you don't like the way things work after disabling the Shell Appmenu, you can easily revert this change.
GNOME Shell 3.4: To disable the AppMenu but still get the AppMenu functionality in the application window, simply install the Remove Panel App Menu GNOME Shell extension.
GNOME Shell 3.6: The Remove Panel App Menu extension doesn't yet support GNOME Shell 3.6, but you can still remove the AppMenu and get its functionality in the application window. To do this, firstly install the Remove App Menu GNOME Shell extension. Unlike the other extension, this one only only removes the AppMenu from the top GNOME Shell panel, but the AppMenu functionality isn't added to the application window. To get the AppMenu functionality in the main application window, you can simply use the command below:
gsettings set org.gnome.settings-daemon.plugins.xsettings overrides '@a{sv} {"Gtk/ShellShowsAppMenu": <int32 0>}'
You can also use the command above if you want the AppMenu functionality in the main application window, but you also want the AppMenu to be displayed on the top GNOME Shell panel.
If you want to revert this change use the command below:
gsettings set org.gnome.settings-daemon.plugins.xsettings overrides '@a{sv} {}'
and also, disable the extension (either "Remove App Menu" or "Remove Panel App Menu", depending on which you've installed).You don't need to restart GNOME Shell or even the applications - the changes will be applied instantly.
Since Unity users can't install GNOME Shell extensions, they can use the same command as above to get the AppMenu functionality in the "cog" menu for Nautilus 3.6+ and Epiphany 3.6+.
some bits via GNOME Shell mailing list.