[PATCH] Menu Spec - Desktop specific menus

Bastian, Waldo waldo.bastian at intel.com
Sat Sep 9 03:13:25 EEST 2006


This change codifies how to use different .menu files for different
desktop environments. Some distributions currently already do this. This
change will require them to set $XDG_MENU_PREFIX accordingly. They
should also check that their distribution picks up the
applications-merged directory correctly.

Current:

$XDG_CONFIG_DIRS/menus/applications.menu 
	This file contains the XML definition of the main application
menu layout. The first file found in the search path should be used;
other files are ignored. This implies that if the user has their own
applications.menu, it replaces the system wide one. (Though the user's
menu may explicitly merge the system wide one.) 
Other menu files may exist, but are not specified in this document. 

$XDG_CONFIG_DIRS/menus/menu-file-basename-merged/ 
	The default merge directories included in the <DefaultMergeDirs>
element. By convention, third parties may add new <Menu> files in this
location. menu-file-basename means the "applications" from
"applications.menu" for example. So the merge directory would be
"applications-merged". 

Proposed:

$XDG_CONFIG_DIRS/menus/${XDG_MENU_PREFIX}applications.menu 
	This file contains the XML definition of the main application
menu layout. The first file found in the search path should be used;
other files are ignored. This implies that if the user has their own
${XDG_MENU_PREFIX}applications.menu, it replaces the system wide one.
(Though the user's menu may explicitly merge the system wide one.)

Systems that offer multiple desktop environments and that want to use
distinct menu layouts in the different environments can use differently
prefixed .menu files. In this case the $XDG_MENU_PREFIX environment
variable must be set by the system to reflect the .menu file that is
being used.

For example if a system contains both the GNOME and the KDE desktop
environments it can decide to use gnome-applications.menu as the menu
layout in GNOME sessions and kde-applications.menu as the menu layout in
KDE sessions. To correctly reflect this, it should set the
$XDG_MENU_PREFIX environment variable to "gnome-" respectively "kde-".

Implementations may chose to use .menu files with other names for tasks
or menus other than the main application menu. Such usage is not covered
by this specification.

$XDG_CONFIG_DIRS/menus/applications-merged/ 
	The default merge directories included in the <DefaultMergeDirs>
element of application.menu files. By convention, third parties may add
new <Menu> files in this location to create their own sub-menus.

Note that a system that uses either gnome-applications.menu or
kde-applications.menu depending on the desktop environment in use must
still use applications-merged as the default merge directory in both
cases.

Implementations may chose to use .menu files with names other than
application.menu for tasks or menus other than the main application
menu. In that case the first part of the name of the default merge
directory is derived from the name of the .menu file. 

For example in a system that uses a preferences.menu file to describe an
additional menu, the default merge directories included in the
<DefaultMergeDirs> element in the preferences.menu file would become
$XDG_CONFIG_DIRS/menus/preferences-merged/

Patch attached.

Waldo Bastian
Linux Client Architect - Client Linux Foundation Technology
Channel Platform Solutions Group
Intel Corporation - http://www.intel.com/opensource
OSDL DTL Tech Board Chairman
-------------- next part --------------
A non-text attachment was scrubbed...
Name: menu-spec-desktops.patch
Type: application/octet-stream
Size: 4815 bytes
Desc: menu-spec-desktops.patch
Url : http://lists.freedesktop.org/archives/xdg/attachments/20060908/882eabdf/attachment.obj 


More information about the xdg mailing list