Menyfiler definierar hierarkin för menyer som används i GNOME-menyraden. Genom att ändra dessa filer kan du anpassa menyer för alla användare, eller för endast en användare beroende på platsen för applications.menu-filen som du ändrar.
Menyfiler måste finnas i $XDG_CONFIG_DIRS/menus/applications.menu. Om $XDG_CONFIG_DIRS1 inte är inställd, kommer standardsökvägen /etc/xdg att användas. Det betyder även att en användarspecifik version kan hittas i $XDG_CONFIG_HOME/menus/applications.menu vilken söks igenom först. Om $XDG_CONFIG_HOME inte är inställd, kommer standardsökvägen ~/.config att användas. Kataloger som listas först i $XDG_CONFIG_DIRS kommer att användas först när det finns flera applications.menu-filer. Första filen som hittas kommer att användas och efterföljande filer kommer att ignoreras.
Om du är osäker på ordningen i vilken sökvägar genomsöks, kommer här en enkel lista för att hitta platsen för applications.menu:
Du kan se ett exempel på en .menu-fil i Exempel 2-1. I det här exemplet, heter toppnivåmenyn Applications, vilket anges med elementet <Name>. Menyn Applications innehåller en enda undermeny, men flera undermenyer är tillåtna. Varje undermeny kan även ha ett <Include>-element. Syftet med <Include>-element är att verkställa ett filter på uppsättningen av tillgängliga skrivbordsobjekt med matchande regler.
Till exempel är elementet <Category> en grundläggande matchande regel som väljer ett skrivbordsobjekt endast om nyckeln Categories innehåller information om elementet <Category>. I exemplet kommer menyn Tillbehör att inkludera ett skrivbordsobjekt endast om det innehåller “Verktyg” men inte “System” i Categories-nycklarna. För mer information om Categories-nycklarna, se Avsnitt 2.3 ― Skrivbordsobjektfiler.
<!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> <!-- Läs in standardfilplatser för .directory och .desktop --> <DefaultAppDirs/> <DefaultDirectoryDirs/> <!-- Undermenyn Tillbehör --> <Menu> <Name>Accessories</Name> <Directory>Accessories.directory</Directory> <Include> <And> <Category>Utilities</Category> <Not> <Category>System</Category> </Not> </And> </Include> </Menu> <!-- Slut på Tillbehör --> <!-- möjligen flera undermenyer --> </Menu> <!-- Slut på Program -->
Tabell 2-1 beskriver några av elementen i .menu-filer. För en mer detaljerad beskrivning, se XDG menu specification.
Element | Beskrivning |
---|---|
<Menu> | Rotelementet som kan innehålla nästlade <Menu>-element som definierar undermenyer. Hur dessa element är nästlade bestämmer menystrukturen. |
<Name> | Anger namnet på menyn. Varje <Menu>-element måste innehålla ett <Name>-element. |
<Directory> |
Anger namnet på katalogobjektfilen som anger namnet, kommentar och ikon för menyn. Om det här elementet inte anges, kommer <Name>-elementet att användas för att visa menynamnet. Som standard, söks .directory-filer igenom efter i platsen $XDG_DATA_DIRS/desktop-directories/ enligt XDG-menyspecifikationen. |
<DefaultAppDirs> | Det här är en instruktion som indikerar att alla tillgängliga skrivbordsobjekt från $XDG_DATA_DIRS/applications/ ska sökas igenom. Om den här instruktionen inte inkluderas, kommer dessa platser inte att sökas igenom efter skrivbordsobjekt. |
<DefaultDirectoryDirs> | Det här är en instruktion som indikerar att alla tillgängliga katalogobjekt från $XDG_DATA_DIRS/desktop-directories/ ska sökas igeom. Om den här instruktionen inte inkluderas, kommer dessa platser inte att sökas igenom efter katalogobjekt. |
<Include> | Innehåller en lista över matchande regler efter vilka innehållet för en meny genereras. Kan inkludera de matchande reglerna <Filename>, <Category>, <And>, <Or>, <Not>, eller <All>. Om fler än en regel finns angivna, kommer reglerna att logiskt använda OR så att skrivbordsobjekt som matchar någon regel inkluderas. |
<Exclude> | Motsatsen till <Include> eftersom någon skrivbordsobjekt som matchas i det här elementet undantas från föregående uppsättning av inkluderade element. Av den här anledningen måste det här elementet anges efter <Include>-elementet. |
<Filename> | En matchande regel som väljer ett skrivbordsobjekt när Desktop File-Id matchar innehåller för <Filename>-elementet. |
<Category> | En matchande regel som väljer ett skrivbordsobjekt när Categories-nyckeln matchar innehållet för <Category>-elementet. |
<And> | En matchande regel som väljer ett skrivbordsobjekt när det väljs av alla nästlade matchande regler i <And>-elementet. |
<Or> | En matchande regel som väljer ett skrivbordsobjekt när det väljs av någon av de nästlade matchande reglerna i <Or>-elementet. |
<Not> | En matchande regel som inte väljer ett skrivbordsobjekt när det väljs av någon av de nästlade matchande reglerna i <Not>-elementet. |
<All> | En matchande regel som väljer alla skrivbordsobjekt. |