Soubory s definicí nabídky
Soubory nabídek definují hierarchii nabídek, kterou používá panel nabídek GNOME. Změnou těchto souborů můžete přizpůsobit nabídky pro všechny uživatele nebo pro jednoho uživatele, v závislosti na umístění souboru applications.menu, který měníte.
Soubory nabídek musí být umístěné v $XDG_CONFIG_DIRS/menus/applications.menu. Pokud není $XDG_CONFIG_DIRS1 nastavená, použije se výchozí cesta /etc/xdg. Rovněž je implementováno, že lze do umístění $XDG_CONFIG_HOME/menus/applications.menu uložit uživatelem vytvořenou verzi, která se prohledá jako první. Pokud není $XDG_CONFIG_HOME nastavená, použije se výchozí cesta ~/.config. Složky, které se vyskytují v $XDG_CONFIG_DIRS jako první jsou brané přednostně při více souborech applications.menu. První nalezený soubor se použije a ostatní soubory jsou ignorovány.
V případě, že jste z pořadí, ve kterém se cesty prohledávají, zmateni, tak zde je jednoduchý seznam postupu rozhodování o umístění applications.menu:
- Prohledá se každá složka z $XDG_CONFIG_HOME v zadaném pořadí, zda se v ní nenachází menus/applications.menu. Pokud není $XDG_CONFIG_HOME nastavená, použije se výchozí složka ~/.config/.
- Prohledá se každá složka z $XDG_CONFIG_DIRS v zadaném pořadí, zda se v ní nenachází menus/applications.menu. Pokud není $XDG_CONFIG_DIRS nastavená, použije se výchozí složka /etc/xdg/.
- Použije se první nalezený soubor applications.menu.
Příklad 2-1 obsahuje ukázku souboru .menu. V tomto příkladu se nejvyšší nabídka nazývá Aplikace, což je dáno elementem <Name>. Nabídka Aplikace obsahuje jednu podnabídku, ale může jich být více. Každá podnabídka může také mít element <Include>. Účelem elementu <Include> je provádět filtrování sady dostupných vstupů pracovního prostředí pomocí srovnávacích pravidel.
Například element <Category> je základní srovnávací pravidlo, které vybere vstup pracovního prostředí pouze v případě, že klíč Categories obsahuje hodnotu elementu <Category>. V příkladu bude nabídka Příslušenství zahrnovat vstupy pracovního prostředí jen v případě, že budou mít v klíči Categories uvedeno ‚Pomůcky‘, ale ne ‚Systém‘. Více o klíči Categories uvádí Oddíl 2.3 ― Soubor vstupu pracovního prostředí.
<!DOCTYPE Menu PUBLIC "-//freedesktop//DTD Menu 1.0//EN" "http://www.freedesktop.org/standards/menu-spec/1.0/menu.dtd"> <Menu> <Name>Aplikace</Name> <Directory>Applications.directory</Directory> <!-- Read standard .directory and .desktop file locations --> <DefaultAppDirs/> <DefaultDirectoryDirs/> <!-- Accessories submenu --> <Menu> <Name>Příslušenství</Name> <Directory>Accessories.directory</Directory> <Include> <And> <Category>Pomůcky</Category> <Not> <Category>Systém</Category> </Not> </And> </Include> </Menu> <!-- End Accessories --> <!-- possibly more submenus --> </Menu> <!-- End Applications -->
Tabulka 2-1 popisuje některé z elementů v souborech .menu. Úplný popis najdete ve Specifikaci nabídek od XDG.
Element | Popis |
---|---|
<Menu> | Kořenový element, který může obsahovat vnořené elementy <Menu> definující podnabídky. Tím jak jsou elementy vnořené je daná struktura nabídky. |
<Name> | Určuje název nabídky. Každý element <Menu> musí obsahovat element <Name>. |
<Directory> |
Určuje název souboru se vstupy složek, který určuje název, komentář a ikonu pro nabídku. Pokud tento element schází, použije se pro zobrazení názvu nabídky element <Name>. Standardně se soubory .directory hledají v umístění $XDG_DATA_DIRS/desktop-directories/, jak určuje Specifikace nabídek od XDG. |
<DefaultAppDirs> | Jedná se o instrukci, která označuje, že by se měly prohledat všechny dostupné vstupy pracovního prostředí z $XDG_DATA_DIRS/applications/. Pokud tato instrukce není obsažena, nejsou v těchto umístěních vyhledávány vstupy pracovního prostředí. |
<DefaultDirectoryDirs> | Jedná se o instrukci, která označuje, že by se měly prohledat všechny dostupné vstupy pracovního prostředí z $XDG_DATA_DIRS/desktop-directories/. Pokud tato instrukce není obsažena, nejsou v těchto umístěních vyhledávány vstupy pracovního prostředí. |
<Include> | Obsahuje seznam srovnávacích pravidel, na základě kterých se generuje obsah nabídky. Může obsahovat srovnávací pravidla <Filename>, <Category>, <And>, <Or>, <Not> nebo <All>. Pokud se vyskytuje více než jedno pravidlo, vážou se logickým NEBO, takže se ve výsledku objeví vstupy pracovního prostředí, které vyhovují kterémukoliv z pravidel. |
<Exclude> | Je opakem k <Include>, takže vstupy pracovního prostředí, který se podle tohoto elementu shodují, se vyjmou z množiny vytvořené předchozím vkládacím elementem. Z tohoto důvodu se tento element musí nacházet až za elementem <Include>. |
<Filename> | Srovnávací pravidlo, které vybere vstup pracovního prostředí za podmínky, že Desktop File-Id odpovídá obsahu elementu <Filename>. |
<Category> | Srovnávací pravidlo, které vybere vstup pracovního prostředí za podmínky, že klíč Categories odpovídá obsahu elementu <Category>. |
<And> | Srovnávací pravidlo, které vybere vstup pracovního prostředí za podmínky, že je vybraný všemi vnořenými srovnávacími pravidly v elementu <And>. |
<Or> | Srovnávací pravidlo, které vybere vstup pracovního prostředí za podmínky, že je vybraný libovolným vnořeným srovnávacím pravidlem v elementu <Or>. |
<Not> | Srovnávací pravidlo, které nevybere vstup pracovního prostředí za podmínky, že je vybraný libovolným vnořeným srovnávacím pravidlem v elementu <Not>. |
<All> | Srovnávací pravidlo, které vybere všechny vstupy pracovního prostředí. |