Archivos de definición de menú
Los archivos de menú definen la jerarquía de los menús que se usan en la barra de menú de GNOME. Modificando esos archivos puede personalizar los menús para todos los usuarios o para un solo usuario, dependiendo de la ubicación del archivo applications.menu que modifique.
Los archivos de menú deben estar ubicados en $XDG_CONFIG_DIRS/menus/applications.menu. Si $XDG_CONFIG_DIRS1 no está activado, entonces se usa la ruta predeterminada /etc/xdg. Esto también implica que una versión específica del usuario debe estar ubicada en $XDG_CONFIG_HOME/menus/applications.menu en el que se busca primeramente. Si $XDG_CONFIG_HOME no está activado, entonces se usa la ruta predeterminada ~/.config. Los directorios que aparezcan primero en $XDG_CONFIG_DIRS tienen preferencia cuando existen varios archivos applications.menu. El primer archivo encontrado se usa mientras que los subsiguientes se ignoran.
Si está confundido acerca del orden en el que se buscan las rutas, aquí hay una pequeña lista para resolver la ubicación de applications.menu:
- Buescar en cada directorio de $XDG_CONFIG_HOME para encontrar menus/applications.menu. Si $XDG_CONFIG_HOME no está establecido, se cambia el predeterminado al directorio ~/.config/.
- Buescar en cada directorio de $XDG_CONFIG_HOME para encontrar menus/applications.menu. Si $XDG_CONFIG_HOME no está establecido, se cambia el predeterminado al directorio /etc/xdg/.
- Use el primer archivo applications.menu que encuentre.
Puede ver un ejemplo de un archivo .menu en el Ejemplo 2-1. En este ejemplo, el menú de nivel superior se llama Applications, que está especificado usando el elemento <Name>. El menú Applications contiene un sólo submenú, pero se permiten varios submenús. Cada submenú puede tener también elementos<Include>. El propósito del elemento <Include> es servir de filtro sobre las entradas de escritorio disponibles usando reglas de coincidencias.
Por ejemplo, el elemento <Category> es una regla de coincidencia básica que selecciona una entrada de escritorio sólo si la clave Categories contiene el contenido del elemento <Category>. En el ejemplo, el menú Accessories incluirá una entrada de escritorio sólo si contiene «Utility» pero no «System» en la clave Categories. Para obtener más información acerca de las claves de cateogias, consulte la Sección 2.3: Archivos de entrada de escritorio.
<!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 -->
La Tabla 2-1 describe algunos de los elementos en los archivos .menu. Para obtener una descripción más detallada, vea la especificación de menús XDG.
Elemento | Descripción |
---|---|
<Menu> | El elemento raíz que puede contener elementos <Menu> anidados que definen submenús. Cómo están anidados los elementos determina la estructura del menú. |
<Name> | Especifica el nombre del menú. Cada elemento <Menu> debe contener un elemento <Name>. |
<Directory> |
Especifica el nombre del archivo de entrada de directorio que especifica el nombre, comentario e icono para el menú. Si este elemento no está especificado, entonces el elemento <Name> se usará para mostrar el nombre del menú. De forma predeterminada, se busca en los archivos .directory para las ubicaciones $XDG_DATA_DIRS/desktop-directories/ tal y como se expone en la especificación de menú XDG. |
<DefaultAppDirs> | Esta es una instrucción que indica que todas las entradas de escritorio disponibles de $XDG_DATA_DIRS/applications/ deben escanearse. Si no se incluye esta instrucción, entonces esas ubicaciones no se escanearán para las entradas de escritorio. |
<DefaultDirectoryDirs> | Esta es una instrucción que indica que todas las entradas de directorio disponibles de $XDG_DATA_DIRS/desktop-directories/ deben escanearse. Si no se incluye esta instrucción, entonces esas ubicaciones no se escanearán para las entradas de directorio. |
<Include> | Contiene una lista de reglas coincidentes por las cuales se genera el contenido de un menú. Puede incluir las reglas de coincidencias <Filename>, <Category>, <And>, <Or>, <Not>, o <All>. Si hay más de una regla persente se aplicacrá un OR lógico sobre las reglas de tal forma que se incluyan las entradas de escritorio que coincidan con cualquier regla. |
<Exclude> | Lo opuesto a <Include> ya que cualquier entradas de escritorio que coincida en este elemento se excluirá del conjunto anterior de elementos incluidos. Por esta razón, este elemento debe aparecer después del elemento <Include>. |
<Filename> | Una regla de coincidencia que selecciona una entrada de escritorio cuando el identificador de archivo del escritorio (Desktop File-Id) coincida con el contenido del elemento <Filename>. |
<Category> | Una regla de coincidencia que selecciona una entrada de escritorio cuando la clave de categorías coincide con el contenido del elemento <Category>. |
<And> | Una regla de coincidencia que selecciona una entrada de escritorio cuando está seleccionada por todo de las reglas de coincidencia anidadas en el elemento <And>. |
<Or> | Una regla de coincidencia que selecciona una entrada de escritorio cuando está seleccionada por cualquiera de las reglas de coincidencia anidadas en el elemento <Or>. |
<Not> | Una regla de coincidencia que no selecciona una entrada de escritorio cuando está seleccionada por cualquiera de las reglas de coincidencia anidadas en el elemento <Not>. |
<All> | Una regla de coincidencia que selecciona todas las entradas de escritorio. |
$XDG_CONFIG_DIRS es la variable de entorno definida en la especificación de base de directorio XDG.