Modifica dei menu utente e unione dei menu
È possibile usare la seguente applicazione dello GNOME Desktop per modificare i menu degli utenti:
- Editor menu di GNOME
Gli utenti hanno a disposizione un semplice editor per modificare i propri menu. Per maggiori informazioni, consultare Lavorare coi menu nella Guida utente di GNOME. In alternativa è possibile creare e modificare manualmente un file menu utente.
Per creare manualmente un menu personalizzato per un utente, deve esistere il file $XDG_CONFIG_HOME/menus/applications.menu. Nel caso in cui $XDG_CONFIG_HOME non è impostata, viene usata la directory predefinita ~/.config/. Poiché questa è la prima posizione analizzata in cerca del file applications.menu, ha la precedenza su tutti gli altri file di menu.
I menu utente possono contenere tutti gli elementi descritti in Sezione 2.2 - File definizione menu. Per un elenco completo di elementi consentiti, consultare la specifica dei menu XDG.
Poiché i file menu dell'utente hanno la precedenza sul file menu di sistema, essi sostituiscono il menu di sistema a meno che non siano esplicitamente uniti al menu di sistema. Informazioni sull'unione dei menu sono disponibili nelle seguente sottosezione.
- 2.6.1. Unione del menu di sistema
- 2.6.2. Unione di menu arbitrari
2.6.1. Unione del menu di sistema
Spesso, un utente ha solo necessità di aggiungere o eliminare delle voci di menu in aggiunta al menu di sistema standard. Per supportare dei singoli cambiamenti come questi, è raccomandato l'uso dell'elemento <MergeFile> in congiunzione con l'attributo type="parent" all'interno del file applications.menu dell'utente.
L'elemento <MergeFile> permette l'unione di un menu con il contenuto del file menu dell'utente. Quando si specifica l'attributo type="parent", allora il contenuto dell'elemento <MergeFile> è ignorato e il successivo file applications.menu nella directory $XDG_CONFIG_DIRS/menus/ viene usato per l'unione.
L'attributo type non era incluso nelle vecchie specifiche e in queste veniva semplicementa richiesta la posizione del file menu da unire comecontenuto dell'elemento <MergeFile>. Come risultato, è ancora possibile vedee una posizione specificata nel contenuto di <MergeFile> anche se type="parent".
L'unione è eseguita nel modo seguente:
- I figli dell'elemento radice <Menu> nel file menu unito1 sono sostituiti con l'elemento <MergeFile> nel file menu di base.
- Tutti gli elementi <Menu> figli con lo stesso nome sono consolidati in un singolo elemento <Menu>. Ciò viene eseguito apponendo tutti gli elementi figlio di ciascun elemento <Menu> con lo stesso name nell'ultima occorrenza dell'elememento di menu.
In Esempio 2-3 è mostrato un esempio di un file menu utente che unisce esplicitamente il file menu di sistema.
<!DOCTYPE Menu PUBLIC \"-//freedesktop//DTD Menu 1.0//EN\" \"http://www.freedesktop.org/standards/menu-spec/menu-1.0.dtd\"> <Menu> <Name>Applications</Name> <MergeFile type=\"parent\">/etc/xdg/menus/applications.menu</MergeFile> <Menu> <Name>Accessibility</Name> <Exclude> <Filename>dasher.desktop</Filename> </Exclude> </Menu> </Menu>
2.6.2. Unione di menu arbitrari
Arbitrari file menu possono essere uniti all'incirca nello stesso modo dei menu di sistema. La differenza è che l'attributo type deve essere impostato a path o deve essere escluso dall'elemento <MergeFile> per poter permettere questo tipo di unione.
L'unione è eseguita nella stessa maniera, fatto salvo il fatto che la posizione del file menu unito è specificata nel contenuto dell'elemento <MergeFile>.
Il file menu unito fa riferimento al successivo file applications.menu nella directory $XDG_CONFIG_DIRS/menus/