Ficheiros de Definição de Menus

Os ficheiros menu definem a hierarquia de menus a utilizar na barra de menu do GNOME. Ao alterar estes ficheiros, poderá personalizar os menus de todos os utilizadores, ou apenas um utilizador dependendo da localização do ficheiro applications.menu que alterar.

Os ficheiros de menu devem residir em $XDG_CONFIG_DIRS/menus/applications.menu. Se $XDG_CONFIG_DIRS1 não estiver definida, então o caminho por omissão /etc/xdg será utilizado. Tal implica que a versão especificada pelo utilizador poderá estar localizada em $XDG_CONFIG_HOME/menus/applications.menu que é procurado primeiro. Se $XDG_CONFIG_HOME não estiver definida, será utilizado o caminho por omissão ~/.config. Os directórios que surgirem primeiro em $XDG_CONFIG_DIRS têm precedência caso existam vários ficheiros applications.menu. O primeiro ficheiro encontrado é utilizado e os ficheiros subsequentes serão ignorados.

Caso esteja confuso sobre a ordem em que os caminhos são procurados, verifique a lista seguinte indicando a ordem de resolução para os ficheiros applications.menu:

  1. Procurar em cada directório constante em $XDG_CONFIG_HOME com vista a encontrar menus/applications.menu. Se $XDG_CONFIG_HOME não estiver definida, por omissão apontará para o directório ~/.config/.
  2. Procurar em cada directório constante em $XDG_CONFIG_DIRS com vista a encontrar menus/applications.menu. Se $XDG_CONFIG_DIRS não estiver definida, por omissão apontará para o directório /etc/xdg/.
  3. Utiliza o primeiro ficheiro applications.menu encontrado.

Pode observar um exemplo de um ficheiro .menu em Exemplo 2-1. Neste exemplo, o menu de nível de topo denomina-se Applications, que é especificado utilizando o elemento <Name>. O menu Applications contém um único submenu, mas são permitidos vários submenus. Cada submenu poderá também ter um elemento <Include>. O objectivo do elemento <Include> é o de realizar um filtro sobre o conjunto de definições de iniciadores disponíveis utilizando regras de equivalência.

Por exemplo, o elemento <Category> é uma regra de equivalência básica que selecciona uma definição de iniciador apenas se a chave Categories contiver o conteúdo do elemento <Category>. No exemplo, o menu Accessories irá incluir uma definição de iniciador apenas se contiver “Utility” mas não “System” na chave "Categories". Para mais informações sobre a chave "Categories", consulte Secção 2.3 ― Ficheiros de Definição de Iniciador.

Example 2-1Exemplo de um ficheiro .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>

  <!-- Ler as localizações padrão de ficheiros .directory e .desktop -->
  <DefaultAppDirs/>
  <DefaultDirectoryDirs/>

  <!-- Submenu Acessórios (Accessories) -->
  <Menu>
    <Name>Accessories</Name>
    <Directory>Accessories.directory</Directory>
    <Include>
      <And>
        <Category>Utility</Category>
        <Not>
          <Category>System</Category>
        </Not>
      </And>
    </Include>
  </Menu> <!-- Fim do Accessories -->

  <!-- possivelmente mais submenus -->

</Menu> <!-- Fim do Applications -->

Tabela 2-1 descreve alguns dos elementos dos ficheiros .menu. Para uma descrição mais detalhada, consulte a especificação de menu XDG.

Tabela 2-1Elementos do Ficheiro de Definição de Menu
Elemento Descrição
<Menu> O elemento raiz que poderá conter elementos <Menu> encadeados que definem submenus. A forma como estes elementos são encadeados determina a estrutura do menu.
<Name> Especifica o nome do menu. Todos os elementos <Menu> têm de conter um elemento <Name>.
<Directory>

Especifica o nome do ficheiro de definição de directório que especifica o nome, comentário, e ícone do menu. Se este elemento não estiver especificado, é utilizado o elemento <Name> para apresentar o nome do menu.

Por omissão, os ficheiros .directory são procurados na localização $XDG_DATA_DIRS/desktop-directories/ tal como definido na especificação de menu XDG.

<DefaultAppDirs> Esta é uma instrução que indica que todas as definições de iniciadores disponíveis em $XDG_DATA_DIRS/applications/ deverão ser analisadas. Se esta instrução não for incluída, então estas localizações não serão analizadas em busca de definições de iniciadores.
<DefaultDirectoryDirs> Esta é uma instrução que indica que todas as definições de directórios disponíveis em $XDG_DATA_DIRS/desktop-directories/ deverão ser analisadas. Se a instrução não estiver incluída, estas localizações não serão analisadas em busca de definições de directórios.
<Include> Contém uma lista de regras de equivalência com base nas quais são gerados os conteúdos de menus. Poderá incluir as regras de equivalência <Filename>, <Category>, <And>, <Or>, <Not>, ou <All>. Se estiver presente mais do que uma regra, será feito um OR lógico destas por forma a que definições de iniciadores que respeite qualquer uma das regras seja incluído.
<Exclude> O oposto de <Include> visto que qualquer definições de iniciadores que tenha equivalência neste elemento será excluído do conjunto anterior de elementos incluídos. Por esta razão, este elemento deverá surgir após o elemento <Include>.
<Filename> Uma regra de equivalência que selecciona um definição de iniciador quando o Desktop File-Id equivale ao conteúdo do elemento <Filename>.
<Category> Uma regra de equivalência que selecciona um definição de iniciador quando a chave Categories equivale ao conteúdo do elemento <Category>.
<And> Uma regra de equivalência que selecciona um definição de iniciador quando são seleccionadas pelo todas as regras de equivalência encadeadas do elemento <And>.
<Or> Uma regra de equivalência que selecciona um definição de iniciador quando são seleccionadas pelo qualquer de entre as regras de equivalência encadeadas do elemento <Or>.
<Not> Uma regra de equivalência que não selecciona um definição de iniciador quando são seleccionadas pelo qualquer de entre as regras de equivalência encadeadas do elemento <Not>.
<All> Uma regra de equivalência que selecciona todos os definições de iniciadores.
1

$XDG_CONFIG_DIRS é a variável de ambiente definida na especificação de directório base XDG.