Fitxers de definició de menú

Els fitxers de menú defineixen la jerarquia dels menús que s'utilitzen a la barra de menú del GNOME. En modificar aquests fitxers podeu personalitzar els menús per a tots els usuaris o per a un de sol, depenent de la ubicació del fitxer applications.menu que modifiqueu.

Els fitxers de menú han de residir a $XDG_CONFIG_DIRS/menus/applications.menu. Si $XDG_CONFIG_DIRS1 no s'ha establert, llavors s'utilitza el camí predeterminat /etc/xdg. Això també implica que una versió específica de l'usuari ha d'estar ubicada a $XDG_CONFIG_HOME/menus/applications.menu, on primer es fa la cerca. Si $XDG_CONFIG_HOME no s'ha establert, llavors s'utilitza el camí predeterminat ~/.config. Els directoris que apareguin primer a $XDG_CONFIG_DIRS tenen preferència quan hi ha diversos fitxers applications.menu. El primer fitxer trobat és l'utilitzat i els fitxers següents són ignorats.

Si esteu confós sobre l'ordre en què es cerquen els camins, a continuació es mostra una llista senzilla per a resoldre la ubicació del applications.menu:

  1. Es cerca en cada directori de $XDG_CONFIG_HOME per a trobar el menus/applications.menu. Si $XDG_CONFIG_HOME no s'ha establert, es canvia el directori predeterminat a ~/.config/.
  2. Es cerca en cada directori de $XDG_CONFIG_DIRS per a trobar el menus/applications.menu. Si $XDG_CONFIG_DIRS no s'ha establert, es canvia el directori predeterminat a /etc/xdg/.
  3. S'utilitza el primer fitxer applications.menu que es trobi.

Podeu veure un exemple d'un fitxer .menu en l'Exemple 2-1. En aquest exemple, el menú de nivell superior s'anomena Applications, que està especificat a través de l'element <Name>. El menú Applications conté un submenú, però es permeten diversos submenús. Cada submenú també pot tenir un element <Include>. La finalitat de l'element <Include> és servir de filtre sobre el conjunt d'entrades disponibles de l'escriptori utilitzant regles de coincidència.

Per exemple, l'element <Category> és una regla de coincidència bàsica que selecciona una entrada d'escriptori només si la clau Categories conté el contingut de l'element <Category>. En l'exemple, el menú Accessories només inclourà una entrada d'escriptori si conté “Utility” però no “System” en la clau Categories. Per a obtenir més informació sobre la clau Categories, vegeu la Secció 2.3 ― Fitxers d'entrada d'escriptori.

Exemple 2-1Exemple d'un fitxer .menu

<!DOCTYPE Menu PUBLIC "-//freedesktop//DTD Menu 1.0//EN"
 "http://www.freedesktop.org/standards/menu-spec/1.0/menu.dtd">
<Menu>
  <Name>Applications</Name>
  <Directory>Applications.directory</Directory>

  <!-- Read standard .directory and .desktop file locations -->
  <DefaultAppDirs/>
  <DefaultDirectoryDirs/>

  <!-- Accessories submenu -->
  <Menu>
    <Name>Accessories</Name>
    <Directory>Accessories.directory</Directory>
    <Include>
      <And>
        <Category>Utility</Category>
        <Not>
          <Category>System</Category>
        </Not>
      </And>
    </Include>
  </Menu> <!-- End Accessories -->

  <!-- possibly more submenus -->

</Menu> <!-- End Applications -->

Taula 2-1 descriu algun dels elements en els fitxers .menu. Per a una descripció més detallada, vegeu l'Especificació de menú XDG.

Taula 2-1Elements dels fitxers de definició de menú
Element Descripció
<Menu> L'element arrel que pot contenir elements imbricats <Menu> que defineixen els submenús. La manera en com aquests elements estan imbricats determina l'estructura del menú.
<Name> Especifica el nom del menú. Cada element <Menu> ha de contenir un element <Name>.
<Directory>

Especifica el nom del fitxer d'entrada de directori que especifica el nom, comentari i icona per al menú. Si aquest element no està especificat, llavors l'element <Name> s'utilitzarà per a mostrar el nom del menú.

Per defecte, es cerca els fitxers .directory a la ubicació $XDG_DATA_DIRS/desktop-directories/ tal i com s'explica en l'Especificació de menú XDG.

<DefaultAppDirs> Aquesta és una instrucció que indica que totes les entrades de l'escriptori a $XDG_DATA_DIRS/applications/ s'haurien de processar. Si aquesta instrucció no s'inclou, no es cercaran entrades d'escriptori en aquestes ubicacions.
<DefaultDirectoryDirs> Aquesta és una instrucció que indica que totes les entrades de directori disponibles des de $XDG_DATA_DIRS/desktop-directories/ s'haurien de processar. Si aquesta instrucció no s'inclou, no es cercaran entrades d'escriptori en aquestes ubicacions.
<Include> Conte una llista de regles de coincidència a partir de les quals es generen els continguts d'un menú. Pot incloure les regles de coincidència <Filename>, <Category>, <And>, <Or>, <Not> o <All>. Si hi ha més d'una regla present, s'aplicara un OR lògic a les regles de manera que s'incloguin les entrades d'escriptori que coincideixin amb qualsevol regla.
<Exclude> L'oposat de <Include> ja que qualsevol de les entrades d'escriptori que coincideixin amb aquest element s'exclouran del conjunt anterior d'elements inclosos. Per aquesta raó, aquest element ha d'aparèixer després de l'element <Include>.
<Filename> Una regla de coincidència que selecciona una entrada d'escriptori quan l'identificador del fitxer de l'escriptori coincideix amb el contingut de l'element <Filename>.
<Category> Una regla de coincidència que selecciona una entrada d'escriptori quan la clau Categories coincideix amb el contingut de l'element <Category>.
<And> Una regla de coincidència que selecciona una entrada d'escriptori quan està seleccionada per totes les regles de coincidència imbricades en l'element <And>.
<Or> Una regla de coincidència que selecciona una entrada d'escriptori quan està seleccionada per qualsevol de les regles de coincidència imbricades en l'element <Or>.
<Not> Una regla de coincidència que no selecciona una entrada d'escriptori quan està seleccionada per qualsevol de les regles de coincidència imbricades en l'element <Not>.
<All> Una regla de coincidència que selecciona totes les entrades d'escriptori.
1

El $XDG_CONFIG_DIRS és la variable d'entorn definida en l'Especificació de base de directori XDG.