The XDG Menu Specification specifies the use of an applications.menu file to 
describe the menu layout. This implies a single menu layout regardless of 
desktop environment used. Some distributions (Debian in particular) wanted to 
have different menu layouts dependng on the desktpo environment used, and 
decided to prefix the applications.menu file with either "gnome-" or "kde-". 
Unfortunately this breaks applications that expect an applications.menu file to 
be used (as the specification says it will). To accommodate the need for 
different desktop layouts under different desktop environments, the XDG Menu 
Spec has been updated [1] and the notion of $XDG_MENU_PREFIX has been 
introduced. XDG_MENU_PREFIX indicates the prefix, if any, that is applied in 
front of "applications.menu". So if Debian is using "gnome-applications.menu" 
instead of "applications.menu", it will need to export XDG_MENU_PREFIX="gnome-" 
as part of the desktop session to inform applications (the few that care) about 
the currently active menu layout.

Note that software that is included in Debian doesn't actually need to honour 
$XDG_MENU_PREFIX (I understand that Debian policy ยง9.9 forbids this), the only 
requirement is that $XDG_MENU_PREFIX is set to reflect the prefix used by the 
currently active desktop environment so that third party applications have a 
disto neutral way of finding the right "applications.menu" to use.

That's the straightforward part. The hairy part is that $XDG_MENU_PREFIX must 
_NOT_ be applied to prefix the applications-merged directory. The rationale for 
this is that third party applications should be able to install menu extension 
in applications-merged that apply regardless of the desktop environment used. 
So far Debian did/does not follow this part of the specification and used/uses 
"gnome-appplications-merged" and "kde-applications-merged" instead of 
"applications-merged".

Josselin Mouette recently fixed gnome-menus, gnome-panel, bug-buddy and eel2 to 
use the proper "applications-merged" directory regardless of the prefix used 
for "*-applications.menu" in Debian CVS (unstable). 

Since it is the intention of LSB to require XDG Menu Spec compliance for LSB 
3.2 I would like to ask the Debian release team to consider Josselin's changes 
for inclusion into etch as well.

Cheers,
Waldo

[1] http://standards.freedesktop.org/menu-spec/menu-spec-1.0.html

Intel Corporation - Channel Platform Solutions Group - Hillsboro, Oregon

Reply via email to