Introduzione a Gconf, sistema utilizzato da GNOME per memorizzare le impostazioni di configurazione per il desktop e le applicazioni: 3a parte

Personalizzazione del menu

Introduzione ai menu

* Guida per l'amministrazione di sistema dello GNOME Desktop
* Personalizzazione dei menu

Lo GNOME Desktop implementa i menu in accordo alla specifica dei menu XDG. Supportando tale specifica, in GNOME è possibile:

* Personalizzare con facilità la gerarchia dei menu. È possibile modificare un numero limitato di file per personalizzare la gerarchia dei menu. Non è necessario modificare le applicazioni o spostare dei file.
* Installare con semplicità le applicazioni. Non è necessario fornire alle applicazioni informazioni sulla gerarchia dei menu all'atto dell'installazione.
* Configurare i menu in modo che gli utenti non possano modificarli.
I menu dello GNOME Desktop fanno uso dei seguenti componenti:

* File definizione menu
* File desktop entry
* File directory entry

File definizione menu

I file menu definiscono la gerarchia dei menu usata nella barra dei menu di GNOME. Modificando questi file, è possibile personalizzare i menu per tutti gli utenti o per un singolo utente, in base alla posizione del file applications.menu che si modifica.

I file menu debbono risiedere in $XDG_CONFIG_DIRS/menus/applications.menu. Se $XDG_CONFIG_DIRS1 non è impostata, allora viene usato il percorso predefinito /etc/xdg/. Ciò implica anche che una versione specifica per l'utente può essere posizionata presso il file $XDG_CONFIG_HOME/menus/applications.menu, che è cercato per primo. Se $XDG_CONFIG_HOME non è impostata, allora viene usato il percorso predefinito ~/.config/. Le directory che appaiono per prime in $XDG_CONFIG_DIRS hanno la predecendenza qualora ci siano diversi file applications.menu. Il primo file trovato viene usato, i restanti vengono ignorati.

Per chiarire l'ordine in cui viene cercato nei percorsi, qui di seguito c'è un esempio della risoluzione della posizione di applications.menu:

1. Cerca in ogni directory in $XDG_CONFIG_HOME per trovare /menus/applications.menu. Se $XDG_CONFIG_HOME non è impostata, allora usa come predefinita la directory ~/.config/
2. Cerca in ogni directory in $XDG_CONFIG_DIRS per trovare /menus/applications.menu. Se $XDG_CONFIG_DIRS non è impostata, allora usa come predefinita la directory /etc/xdg/
3. Use the first applications.menu file found.

È possibile vedere un esempio di un file .menu in Esempio 2-1. In tale esempio, il menu di primo livello è nominato Applications; ciò è specificato usando l'elemento
. Il menu Applications contiene un singolo sottomenu, ma sono consentiti diversi sottomenu. Ciascun sottomenu può presentare anche un elemento . Lo scopo dell'elemento è di applicare un filtro sull'insieme delle desktop entry disponibili usando regole di corrispondenza.

Ad esempio, l'elemento è una semplice regola di corrispondenza che seleziona una desktop entry solo se la chiave Categories contiene quanto racchiuso dell'elemento . Nell'esempio, il menu Accessories includerà una desktop entry solo se quest'ultima contiene “Utility”, ma non “System” nella chiave Categories.
Esempio di un file .menu
Applications
Applications.directory
Accessories
Accessories.directory
Utility
System
In Tabella 2-1 sono descritti alcuni degli elementi presenti nei file .menu. Per una descrizione più dettagliata, consultare la specifica dei menu XDG.
Tabella 2-1 Elementi dei file definizione menu
Elemento Descrizione

L'elemento radice che può contenere elementi
annidati che definiscono dei sottomenu. Il modo in cui tali elementi sono annidati determina la struttura dei menu.
Specifica il nome del menu. Ogni elemento
deve contenere un elemento .

Specifica il nome del file directory entry che specifica il nome, il commento e l'icona usati per il menu. Se questo elemento non è specificato, allora l'elemento viene usato per mostrare il nome del menu.

In modo predefinito, i file .directory sono ricercati nella posizione $XDG_DATA_DIRS/desktop-directories/, come definito nella specifica dei menu XDG.
Questa è un'istruzione che indica che tutti i file desktop entry disponibili in $XDG_DATA_DIRS/applications/ debbono essere scansionati. Se questa istruzione non è inclusa, allora tale posizione non è scansionata in cerca dei file desktop entry.

Questa è un'istruzione che indica che tutte i file directory entry disponibili in $XDG_DATA_DIRS/desktop-directories/ debbono essere scansionati. Se questa istruzione non è inclusa, allora tale posizione non e' scansionata in cerca dei file directory entry.

Contiene un elenco di regole di corrispondenza in base alle quali viene generato il contenuto di un menu. Può includere le regole di corrispondenza , , , , o . Se sono presenti più regole, a tali regole viene applicato un OR logico, in modo che sono inclusi i file desktop entry che hanno corrispondenza con una qualsiasi regola.

L'opposto di ; tutti i file desktop entry che hanno corrispondenza in questo elemento sono esclusi dal precedente insieme di elementi inclusi. Per tale motivo, questo elemento deve apparire dopo l'elemento .

Una regola di corrispondenza che seleziona un file desktop entry quando il Desktop File-Id corrisponde al contenuto dell'elemento .
Una regola di corrispondenza che seleziona un file desktop entry quando la chiave Categories corrisponde al contenuto dell'elemento .
Una regola di corrispondenza che seleziona un file desktop entry quando questo è selezionato da tutte le regole di corrispondenza annidate nell'elemento .
Una regola di corrispondenza che seleziona un file desktop entry quando questo è selezionato da almeno una delle regole di corrispondenza annidate nell'elemento .
Una regola di corrispondenza che non seleziona un file desktop entry quando questo è selezionato da almeno una delle regole di corrispondenza annidate nell'elemento .
Una regola di corrispondenza che seleziona tutti i file desktop entry.
File desktop entry

Un file desktop entry è un file di dati che fornisce informazioni su una voce di un menu. Il file desktop entry specifica dei dettagli per la voce quali un nome, un comando da eseguire, un'icona e così via. Il file desktop entry contiene inoltre alcune parole chiave che determinano la posizione della voce nella gerarchia dei menu.

Desktop entry files must reside in the $XDG_DATA_DIRS/applications directory and must have a .desktop file extension. If $XDG_DATA_DIRS1 is not set, then the default path is /usr/share is used. This also implies that user specific desktop entries may be located at $XDG_DATA_HOME/applications which is searched first. If $XDG_DATA_HOME is not set, then the default path ~/.local/share is used. Desktop entries are collected from all directories in the $XDG_DATA_DIRS environment variable. Directories which appear first in $XDG_DATA_DIRS are given precedence when there are several .desktop files with the same name.

Il seguente è un esempio di file desktop entry:

[Desktop Entry]
Encoding=UTF-8
Name=Calculator
Name[fr]=Calculatrice
Name[it]=Calcolatrice
...
Comment=Perform calculations
Comment[fr]=Effectue des calculs compliqués
Comment[it]=Esegue vari calcoli
...
Exec=gcalctool
Icon=accessories-calculator
Terminal=false
Type=Application
StartupNotify=true
Categories=GNOME;GTK;Utility;Calculator

In Tabella 2-2 sono descritte le chiavi più importanti nei file desktop entry. Per maggiori informazioni sui file desktop entry, consultare la specifica dei desktop entry XDG.
Tabella 2-2 Chiavi desktop entry
Chiave desktop entry Descrizione
Categories

Specifica le parole chiave che descrivono la voce, separate con un punto e virgola (;). Per un elenco di parole chiave di categoria standard, consultare la specifica di menu del desktop presso http://www.freedesktop.org/Standards/menu-spec
I file definizione menu mappano i file desktop entry nei menu usando regole di corrispondenza basate sulla chiave Categories.
Comment Specifica una breve descrizione della voce. Il commento è mostrato come suggerimento quando si punta la voce nel menu.
Encoding Specifica la codifica del file desktop entry.
Exec Specifica un comando da eseguire quando si sceglie la voce dal menu.
Icon Specifica il nome di file di un'icona che rappresenta la voce. Non va specificato il percorso del nome del file o l'estensione del file.
MimeType Specifica i tipi MIME che l'applicazione può gestire.
Name Specifica il nome della voce. Tale nome è mostrato nella voce di menu.
NoDisplay Questa opzione significa “Questa applicazione esiste, ma non va mostrata nei menu”.
Terminal

Specifica se il comando indicato nella chiave Exec deve essere eseguito in una finestra di terminale. Se il valore è true il comando è eseguito in una finestra di terminale.

Se il comando non crea una propria finestra d'esecuzione, il valore di questa chiave deve essere true.
Type

Specifica il tipo della voce. Il valore deve essere uno dei seguenti:

* Application: una voce che avvia un'applicazione.
* Link: una voce che collega a un file, una cartella o una risorsa remota (some un sito FTP, una pagina web, una condivisione Windows...).
* FSDevice: una voce che è un device di file system.
* Directory: una voce che è una Directory.

Per maggiori informazioni sulle chiavi nei file desktop entry, consultare la relativa specifica presso l'URL seguente:
http://www.freedesktop.org/Standards/desktop-entry-spec

Anche i lanciatori nei pannelli e gli oggetti di scrivania usano i file desktop entry; tali file forniscono ai lanciatori e agli oggetti di scrivania le stesse informazioni delle voci di menu. Ad esempio, i file desktop entry forniscono il comando da eseguire quando un utente sceglie il lanciatore o l'oggetto.

File directory entry

Un file directory entry è un file di dati che fornisce informazioni su un menu. Il file directory entry specifica i dettagli per un menu come un nome, un suggerimento ed un'icona. I file directory entry hanno estensione .directory.

I file directory entry debbono risiedere nella directory $XDG_DATA_DIRS/desktop-directories/. Se $XDG_DATA_DIRS non è impostata, allora viene usato il percorso predefinito /usr/share/. Ciò implica anche che i file directory entry specifici per l'utente possono essere posizionati in $XDG_DATA_HOME/desktop-directories/, che viene cercata per prima. Se $XDG_DATA_HOME non è impostata, allora è usato il percorso predefinito ~/.local/share/. I file directory entry sono raccolti da tutte le directory nella variabile d'ambiente $XDG_DATA_DIRS. Le directory che appaiono per prime in $XDG_DATA_DIRS hanno la predecenza qualora vi siano diversi file .directory con lo stesso nome.
Il seguente è un esempio di file directory entry:

[Desktop Entry]
Name=Graphics
Name[fr]=Graphisme
Name[it]=Grafica
...
Comment=Graphics applications
Comment[fr]=Applications graphiques
Comment[it]=Applicazione grafiche
...
Icon=gnome-graphics
Type=Directory
Encoding=UTF-8

In Tabella 2-3 sono descritte le chiavi principali dei file directory entry.
Tabella 2-3 Chiavi directory entry
Chiave directory entry Descrizione
Name Specifica il nome del menu. Tale nome è mostrato nel menu.
Comment Specifica una breve descrizione del menu. Il commento è mostrato come suggerimento quando si punta il menu.
Icon Specifica il nome di file di un'icona che rappresenta il menu. Non va specificato il percorso del nome del file o l'estensione del file.
Type Specifica il tipo di menu. Il valore di questa chiave è sempre Directory.

Modifica dei menu di sistema

* Guida per l'amministrazione di sistema dello GNOME Desktop
* Personalizzazione dei menu

È possibile modificare manualmente i file di configurazione del menu ed i file dei dati del menu per personalizzarli.

* 2.5.1. Aggiunta dei menu
* 2.5.2. Aggiunta di una voce ad un menu
* 2.5.3. Modifica delle proprietà di un menu
* 2.5.4. Modifica di una voce di menu
* 2.5.5. Eliminazione di una voce da un menu

2.5.1. Aggiunta dei menu

Per aggiungere un menu per tutti gli utenti, procedere come segue:

1. Creare un file directory entry per la voce che si vuole aggiungere. Porre il file directory entry nella directory $XDG_DATA_DIRS/desktop-directories/. Per maggiori informazioni sui file directory entry, consultare Sezione 2.4 - File directory entry.
2. Individuare il file $XDG_CONFIG_DIRS/menus/applications.menu.
3. Nel file .menu aggiungere un elemento
per il nuovo menu. Per maggiori informazioni sui file .menu, consultare Sezione 2.2 - File definizione menu.
4. Creare all'interno di un elemento . Il contenuto di quest'ultimo elemento dovrebbe essere il nome da attribuire al menu.
5. Creare all'interno di un elemento . Il contenuto di quest'ultimo elemento dovrebbe essere il nome del file desktop entry.
6. Consultare Sezione 2.5.2 - Aggiunta di una voce ad un menu per informazioni su come aggiungere una voce al menu.
Al successivo login, il menu sarà mostrato nella barra dei menu per tutti gli utenti.
Menu mancante?

Se non si è specificata alcuna regola di corrispondenza nell'elemento o se nessun file desktop entry ha corrispondenza con la regola, è possibile che il menu non appaia nella barra dei menu.
2.5.2. Aggiunta di una voce ad un menu

Per aggiungere una voce ad un menu per tutti gli utenti, procedere come segue:

1. Creare un file desktop entry per la voce che si vuole aggiungere. Per maggiori informazioni sui file desktop entry, consultare Sezione 2.3 - File desktop entry.
2. Posizionare il file desktop entry nella cartella $XDG_DATA_DIRS/applications/
3. Individuare il file $XDG_CONFIG_DIRS/menus/applications.menu.
4. Verificare che un elemento
contenga un elemento che presenti una regola di corrispondenza per selezionare il file desktop entry creato al passo 1.

Al successivo login, gli utenti troveranno la voce di menu nella posizione assegnata.
2.5.3. Modifica delle proprietà di un menu

Per modificare le proprietà di un menu per tutti gli utenti, procedere come segue:

1. Individuare il file $XDG_CONFIG_DIRS/menus/applications.menu.
2. Trovare in questo file la voce
che corrisponde al menu che si vuole modificare. Annotare il nome file del file directory entry indicato nell'elemento .
3. Individuare il file directory entry per tale menu. Modificare il contenuto per cambiare le proprietà del menu. Per maggiori informazioni sui file .directory consultare Sezione 2.4 - File directory entry.

2.5.4. Modifica di una voce di menu

Per modificare una voce di menu, procedere come segue:

1. Individuare nella directory $XDG_DATA_DIRS/applications/ il file desktop entry corrispondente alla voce di menu.
2. Modificare il file desktop entry per cambiare le proprietà della voce di menu. Per maggiori informazioni sui file desktop entry, consultare Sezione 2.3 - File desktop entry.

2.5.5. Eliminazione di una voce da un menu

Per eliminare una voce da un menu per tutti gli utenti:

1. Individuare il file $XDG_CONFIG_DIRS/menus/applications.menu.
2. Trovare in questo file l'elemento
che contiene il file desktop entry che si vuole eliminare.
3. Inserire un elemento dopo il tag di chiusura dell'elemento . Assicurarsi che questo sia nell'elemento individuato al passo 2.
4. Inserire la regola di corrispondenza come sottoelemento di per escludere uno specifico file desktop entry.

Al successivo login, la voce di menu non sarà più mostrata nei menu degli utenti. In Esempio 2-2 è mostrato come ciò può essere fatto nel file applications.menu. Il file desktop entry per dasher.desktop è stato esplicitamente escluse dall'essere mostrato nel menu per l'accessibilità.

2-2 Eliminazione di una voce da un menu

Accessibility
Accessibility.directory
Accessibility
Settings

dasher.desktop

Modifica dei menu utente e unione dei menu

* Guida per l'amministrazione di sistema dello GNOME Desktop
* Personalizzazione 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 in congiunzione con l'attributo type="parent" all'interno del file applications.menu dell'utente.

L'elemento 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 è 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 . Come risultato, è ancora possibile vedee una posizione specificata nel contenuto di anche se type="parent".

L'unione è eseguita nel modo seguente:

* I figli dell'elemento radice nel file menu unito1 sono sostituiti con l'elemento nel file menu di base.
* Tutti gli elementi figli con lo stesso nome sono consolidati in un singolo elemento . Ciò viene eseguito apponendo tutti gli elementi figlio di ciascun elemento 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

Applications
/etc/xdg/menus/applications.menu

Accessibility

dasher.desktop

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 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.


Ultimi post pubblicati


Vacanze    TUI.it

Universo Linux


Luca Soraci

Luca Soraci

Ubuntu giunge alle nostre orecchie solo perché è stato mutuato come nome per un sistema operativo di successo; lo abbiamo sentito nei discorsi di Mandela, del vescovo Tutu, ed è uno dei concetti fondanti di quel movimento di rinascimento che vuole far fiorire il continente africano al di sopra delle difficoltà attuali.

Nessun commento:

Posta un commento

Powered by Blogger.