ApplicationMenu
Application Menu
In the 10.10 cycle we are working to bring support to the Ubuntu Netbook Edition for application menus in the panel. We feel that the interaction design benefits for this work are significant and Canonical are investing in producing support for this throughout the 10.10 cycle. For more on the design rationale, see the announcement for details.
We have produced an implementation that supports GTK and Qt menus and this implementation is known as indicator-appmenu. Essentially the project re-routes menus over dbusmenu so that they appear in the panel.
To ensure that this feature is high-quality and well tested, the code has been released right at the beginning of the Maverick cycle and we are keen to work with the community to (a) test applications and (b) fix indicator-appmenu ad applications that experience problems.
This page is where you can learn how to participate in this work and where we can track progress.
Goals
We need to test the global menu on as many applications as possible. We will put the application menu in the Unity (Lucid) PPA so that upstream developers and enthusiasts can test it without committing to Maverick.
XUL applications (such as Firefox and Thunderbird) and OpenOffice are NOT targets for Maverick, as they will require more work.
- We need testing on GTK and Qt applications.
- Work on supporting other the application menu on other toolkits would be welcome, but not a priority for the DX team, help wanted.
Schedule
- Alpha 1 - Enable the application menu in Maverick and Lucid PPA.
- Alpha 2 - Turn off double menu feature
- Alpha 3 - Testing
- Beta/RC - Done
Installation
Ubuntu Netbook Installation
NOTE: The Unity panel does not support the extra Application menu indicator yet. But you can already install the different parts, and future updates will activate the feature automatically.
Load a terminal and run sudo add-apt-repository ppa:canonical-dx-team/une and sudo apt-get update.
Run sudo apt-get install unity. The menu will be part of Unity so you only need to install the "unity" package and the "indicator-applet-appmenu" package.
- Log out and log in back into the Unity session.
Ubuntu Desktop Installation
For development purposes, a gnome-panel compatible version is also available.
Load a terminal and run sudo add-apt-repository ppa:canonical-dx-team/une and sudo apt-get update.
Install packages: apt-get install appmenu-gtk libqtgui4 indicator-applet-appmenu indicator-appmenu
Right click on the panel, and add the "Indicator Applet Appmenu" applet. Note: you won't see any change on the panel yet, but if you add the applet a second time it will exit so you can remove it (choose: delete & don't reload)
Load an application with this env. variable: GTK_MENUPROXY="libappmenu.so" gnome-terminal
- It should now look like this:
Note: if you already have other gnome-terminal's open, make sure you close them all before you issue the command above
Note: When testing we purposely enable the Global Menu AND keep the old menu in place. That way it is obvious to you if anything is broken. Unity will also pull in indicator-datetime, so you will end up with two clocks too. Please don't file bugs on double menus and clocks, it's like that on purpose! See below. |
Kubuntu Desktop Installation
Register the Unity PPA in your sources.list.
Install packages: apt-get install libqtgui4 plasma-widget-menubar
- Add the "Window Menubar" applet to your panel.
Start any Qt/KDE application, the menu should be embedded in the panel. You can enable double menus by setting the APPMENU_DISPLAY_BOTH env. variable: APPMENU_DISPLAY_BOTH=1 dolphin
Test Plan
Testing the rendering of the menus
The appmenu indicator presents menus on the panel but there are particular cases where this may not work, like with:
- applications that have non-standard GTK or QT menu items, or specific widgets like the Firefox throbber
- applications that have multiple menubars
- applications that have a fullscreen mode
The goal is to identify all the applications that may not be working properly in those particular cases.
Note: this only works with QT or GTK based applications. Namely, OpenOffice, Mozilla or Java AWT applications are not supported.
- Test the Application
- Check every menu item, every sub menu, and every submenu item.
- Check for state changes, things that cause the menus to become insensitive or reorder.
- Check to make sure icons, translations, and text are correct.
- If something is acting wrong check to see if the normal menu in the application window exhibits the same behavior.
- Fill in the status of the application in the grid below.
- Filing bugs:
- For applications that have a bug with the application menu, file a bug on launchpad and tag it with "app-menu".
- File a wishlist bug in the upstream bug tracker and ask them if they would consider supporting the application menu. Provide links to this page and to the documentation so that it's easy for application authors to find what they need.
Make sure you link the launchpad bug to the upstream bug (Instructions) so that we can follow the bug and see if any developers need help adapting their application.
Testing the appmenu module
The panel need to present the menubar of the currently active application. This part of the test plan ensures that this behavior is properly implemented.
Main use cases to support (User level)
Using the (default) desktop menu - when the user is using the desktop (ie no other application is the active application), the system needs to display the default desktop menu
Opening an application - when the user opens an application, the System needs to switch the panel menu to display the menu of that application
Switching to another application - when the user switches to another application (ie another application becomes the 'active' one), the System needs to switch the panel menu similarly
Quitting an application - when the user quits an application, the System will have to determine which other application becomes the active one, and display the corresponding menu; if no application is active, a default menu should be displayed
Other use cases (System level)
Managing transient windows - when transient windows take the focus, the System needs to present the right panel menu to the user
Managing unresponsive applications - the System needs to manage applications that either block or crash
Managing unsupported applications - the System needs to display a minimal menu corresponding to an active application that does not support our menu system
Filing bugs
- Make sure you can reproduce the issue and write down the steps to trigger the problem
- Tag it with "app-menu"
Getting Help
If you're an upstream app developer and your application doesn't work we have a few options for you:
- Upstream Application Developers - If you use GTK or Qt menus without any custom widgets it should Just Work. In some cases removing the custom menu bits should make it all work.
- Ted Gould (tedg) and Cody Russell (bratsche) are available on #ayatana on Freenode IRC if you have a special case and need help.
The Ayatana Mailing List is the right mailing list to post technical questions and queries.
If you still can't find help mail JorgeCastro and he'll hunt someone down for you.
Applications we Have to Test
Here are all the applications that we ship by default on the Netbook Edition. After you've tested mark the status either green or red. Make sure to link to the bug report in the status column if there's a problem.
Package |
Checked by |
Status |
ubiquity |
|
|
gparted |
|
|
apport-gtk |
|
|
evolution (maybe evolution --express) |
|
|
file-roller |
|
|
empathy |
|
|
gcalctool |
|
|
gconf-editor |
|
|
gdm |
|
|
gedit |
Cody Russell |
|
gnome-about |
|
|
gnome-applets |
|
|
software-center |
|
|
gnome-codec-install |
|
|
transmission-gtk |
|
|
gnome-control-center |
|
|
system-config-printer-gnome |
|
|
gnome-media |
|
|
gnome-menus |
|
|
gnome-nettool |
|
|
seahorse |
|
|
gnome-system-monitor |
|
|
gnome-system-tools |
|
|
gnome-terminal |
|
|
gnome-utils |
|
|
gucharmap |
|
|
checkbox-gtk |
|
|
language-selector |
|
|
chromium-browser |
|
|
firefox |
|
|
nautilus |
|
|
banshee |
|
|
rhythmbox |
|
|
alacarte |
|
|
ssh-askpass-gnome |
|
|
synaptic |
|
|
software-properties-gtk |
|
|
totem |
|
|
update-manager |
|
|
gdebi |
|
|
yelp |
|
|
gnome-disk-utility |
|
|
aisleriot |
|
|
gnome-mahjongg |
|
|
gnome-sudoku |
|
|
quadrapassel |
|
|
gnome-volume-control |
|
|
onboard |
|
|
openoffice.org |
|
|
evince |
|
|
gnome-screensaver |
|
|
jockey-gtk |
|
|
usb-creator-gtk |
|
|
computer-janitor-gtk |
|
|
cheese |
|
|
simple-scan |
|
|
gwibber |
|
|
tomboy |
|
|
shotwell |
|
|
Applications that we Should Test
These applications are not shipped in UNE, but would be good to test anyway due to popularity or because you're passionate about them. Feel free to add what you want to work on!
Package |
Checked by |
Status |
blender |
|
|