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

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.

Vecchie specifiche

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.

2-3 Unione del 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>.

1

Il file menu unito fa riferimento al successivo file applications.menu nella directory $XDG_CONFIG_DIRS/menus/