From 51b38269527cb71b17bb8e3963c860006e795778 Mon Sep 17 00:00:00 2001 From: Waldo Bastian Date: Tue, 19 Sep 2006 19:43:10 +0000 Subject: 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. --- menu/menu-spec.xml | 65 +++++++++++++++++++++++++++++++++++++++++++----------- 1 file changed, 52 insertions(+), 13 deletions(-) diff --git a/menu/menu-spec.xml b/menu/menu-spec.xml index 72831fa..247499e 100644 --- a/menu/menu-spec.xml +++ b/menu/menu-spec.xml @@ -107,31 +107,70 @@ Here are the files defined by this specification: - $XDG_CONFIG_DIRS/menus/applications.menu + +$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 applications.menu, it replaces the system wide one. - (Though the user's menu may explicitly merge the system wide one.) + 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. - Other menu files may exist, but are not specified in this - document. + 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/menu-file-basename-merged/ + $XDG_CONFIG_DIRS/menus/applications-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". + 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/ -- cgit v1.2.3-70-g09d2