Repertorio di GConf

Ogni preferenza nel repertorio di GConf è espressa come una coppia chiave-valore. Una chiave di preferenza GConf è un elemento nel repertorio che corrisponde ad una preferenza di un'applicazione. Ad esempio la chiave di preferenza /apps/gnome-session/options/show_splash_screen corrisponde all'opzione Mostrare schermata di avvio al login nello strumento di preferenze Sessioni. L'interfaccia utente dello GNOME Desktop non presenta però tutte le chiavi di preferenza del repertorio di GConf. Ad esempio lo strumento di preferenze Pannello non contiene alcuna opzione corrispondente alla chiave /apps/panel/global/tooltips_enabled.

Il repertorio è strutturato come un semplice file system gerarchico e contiene quanto segue:

  • Le directory che corrispondono alle applicazioni che usano il repertorio GConf. Ad esempio nel file system è presente la directory /apps/metacity.
  • Le sottodirectory che corrispondo a categorie di preferenze. Ad esempio nel file system è presente la directory /apps/metacity/general.
  • I file speciali che elencano le chiavi di preferenze presenti nella directory e contengono informazioni sulle chiavi. Ad esempio un file che contiene informazioni sulle chiavi relative alle preferenze del proxy HTTP è nella directory /system/http_proxy.
  • Una directory /schemas che contiene i file che descrivono tutte le chiavi di preferenze.

Le chiavi di preferenza sono tipicamente costituite da valori semplici come stringhe, interi o liste di stringhe ed interi. Il formato di una chiave di preferenza nel repertorio dipende dal modulo di backend usato per leggere il repertorio. Il seguente è un esempio della chiave di preferenza /desktop/gnome/interface/font_name quando viene usato un modulo di backend in XML (Extensible Markup Language) per leggere il repertorio:

<entry name="font_name" mtime="1038323555" muser="user123" type="string">
<stringvalue>Sans 10</stringvalue></entry>

Quando in questa guida si fa riferimento ad una chiave di preferenza, il percorso della chiave è aggiunto al suo nome. Ad esempio la chiave di preferenza font_name posta nella sottodirectory /desktop/gnome/interface è indicata come /desktop/gnome/interface/font_name.

1.2.1. Sorgenti di configurazione GConf

Il repertorio GConf contiene una serie di posizioni di memorizzazione che sono definite sorgenti di configurazione. Le sorgenti di configurazione sono elencate nel file di percorso GConf. La posizione di tale file è /etc/gconf/numero-versione-gconf/path. Ciascun utente ha un file di percorso. Il file di percorso specifica le seguenti informazioni per ciascuna sorgente di configurazione:

  • Il modulo di backend da usare per leggere il repertorio.
  • I permessi sul repertorio.
  • La posizione del repertorio.

Il file di percorso di GConf contiene anche delle istruzioni include. Il contenuto predefinito del file di percorso di GConf è il seguente:

xml:readonly:/etc/gconf/gconf.xml.mandatory
include /etc/gconf/2/local-mandatory.path
include "$(HOME)/.gconf.path"
include /etc/gconf/2/local-defaults.path
xml:readwrite:$(HOME)/.gconf
xml:readonly:/etc/gconf/gconf.xml.defaults

Quando GConf cerca il valore di una preferenza, le sorgenti di configurazione sono lette nell'ordine specificato dal file di percorso. La seguente tabella descrive le sorgenti di configurazione nel file di percorso:

Sorgente di configurazione Descrizione
Vincolante I permessi su questa sorgente di configurazione sono impostati a sola lettura. Gli utenti non possono sovrascrivere i valori in questa sorgente, quindi le preferenze in questa sorgente sono vincolanti.
Utente

Questa sorgente di configurazione è memorizzata nella directory .gconf posta nella directory home dell'utente. Quando un utente imposta un preferenza, la nuova informazione di preferenza è aggiunta in questa posizione.

È possibile usare Editor di configurazione per modificare la sorgente di configurazione dell'utente.

Predefinita Questa sorgente di configurazione contiene le impostazioni predefinite delle preferenze.

La sequenza delle sorgenti di configurazione nel file di percorso assicura che le impostazioni di preferenza vincolanti scavalchino le impostazioni di preferenza dell'utente. La sequenza inoltre assicura che quelle dell'utente scavalchino quelle predefinite. In pratica GConf applica le preferenze seguendo questo ordine di priorità:

  1. Preferenze vincolanti
  2. Preferenze specificate dall'utente
  3. Preferenze predefinite

Le istruzioni include nel file di percorso di GConf consentono all'amministratore di specificare altre sorgenti di configurazione.

Sorgenti di configurazione incluse Descrizione
/etc/gconf/2/local-mandatory.path Usare questa sorgente di configurazione per memorizzare i valori delle preferenze vincolanti per un particolare sistema.
$(HOME)/.gconf.path L'utente specifica la posizione della sorgente di configurazione nella directory home in un file di nome .gconf.path.
/etc/gconf/2/local-defaults.path Usare questa sorgente di configurazione per memorizzare i valori di preferenze predefinite per un particolare sistema.

1.2.2. Schemi GConf

Uno schema GConf è un termine collettivo per una chiave schema GConf e un oggetto schema GConf. La tabella seguente descrive le chiavi schema e gli oggetti schema e le loro relazioni con le chiavi di preferenza:

Elemento Descrizione
Chiave di preferenza Un elemento nel repertorio GConf che corrisponde ad una preferenza di un'applicazione.
Chiave schema Una chiave che memorizza un oggetto schema per una chiave di preferenza.
Oggetto schema

Un elemento in una sorgente di configurazione che delle informazioni suuna chiave di preferenza, come le seguenti:

  • Il nome dell'applicazione che usa la chiave di preferenza.
  • Il tipo del valore richiesto dalla chiave di preferenza, ad esempio intero, booleano e così via.
  • Un valore predefinito per la chiave di preferenza.
  • Breve documentazione della chiave di preferenza.

La seguente tabella fornisce alcuni esempi di una chiave di preferenza, di una chiave schema e di un oggetto schema:

Elemento Esempio
Chiave di preferenza /desktop/gnome/interface/font_name
Chiave schema /schemas/desktop/gnome/interface/font_name
Oggetto schema
<schema>
  <applyto>/desktop/gnome/interface/font_name</applyto>
  <key>/schemas/desktop/gnome/interface/font_name</key>
  <owner>gnome</owner>
  <type>string</type>
  <default>Sans 10</default>
  <locale name="C">
    <short>Default font</short>
      <long>Name of the default font used by gtk+.</long>
  </locale>
</schema>

È possibile associare una chiave schema con una chiave di preferenza. Ad esempio la seguente chiave /desktop/gnome/interface/font_name include una chiave schema:

<entry name="font_name" mtime="1034873859"
schema="/schemas/desktop/gnome/interface/font_name"/>

Quando si associa una chiave schema con una chiave di preferenza, la preferenza usa il valore suggerito che è specificato nell'oggetto schema della chiava schema. Il valore suggerito è contenuto nell'elemento <default> nell'oggetto schema. In modo predefinito tutte le chiavi di preferenza nella sorgente di configurazione predefinita sono associate con chiavi schema.

Di solito gli schemi sono memorizzati nella sorgente di configurazione predefinita.

1.2.3. File definizione schema GConf

Gli schemi sono generati da alcuni file definizione schema. Un file definizione schema definisce le caratteristiche di tutte le chiavi di una particolare applicazione; tali file hanno estensione .schemas.

I file definizione schema sono inclusi nella directory /etc/gconf/schemas. È possibile usare tali file per creare una nuova sorgente di configurazione.

Alcuni file definizione schema corrispondono fedelmente ad una parte dell'interfaccia utente dello GNOME Desktop. Ad esempio il file system_http_proxy.schemas corrisponde allo strumento di preferenze Proxy di rete. Alcuni file definizione schema contengono chiavi di preferenza che non sono presenti nell'interfaccia utente, come ad esempio la chiave /apps/gnome-session/options/splash_screen_text.

Alcune parti dell'interfaccia utente dello GNOME Desktop contengono preferenze che rappresentano chiavi di preferenza ricavate da più di un file definizione schema. Ad esempio lo strumento di preferenze Scorciatoie da tastiera contiene le preferenze che rappresentano le chiavi dai file panel-global-config.schemas e metacity.schemas.