Repositório GConf

Cada preferência no repositório do GConf é expressa como um par chave-valor. Uma chave de preferência GConf é um elemento no repositório que corresponde à preferência numa aplicação. Por exemplo, a chave de preferência /apps/gnome-session/options/show_splash_screen corresponde à opção Apresentar ecrã de logotipo ao iniciar sessão na ferramenta de preferências Sessões. O interface de utilizador do Ambiente de Trabalho GNOME não contém todas as chaves de preferências existentes no repositório do GConf. Por exemplo, a ferramenta de preferências Painel não contém uma opção que corresponda à chave /apps/panel/global/tooltips_enabled.

O repositório está estruturado tal como um sistema de ficheiros hierárquico simples. O repositório contém o seguinte:

  • Directórios que correspondem a aplicações que utilizam o repositório do GConf. Por exemplo, o sistema de ficheiros contém o directório /apps/metacity.
  • Subdirectórios que correspondem a categorias de preferências. Por exemplo, o sistema de ficheiros contém o directório /apps/metacity/general.
  • Ficheiros especiais que listam as chaves de preferências no directório, e contêm informação sobre as chaves. Por exemplo, um ficheiro que contém informação sobre as chaves relacionadas com as preferências de proxy HTTP encontra-se no directório /system/http_proxy.
  • Um directório /schemas que contém ficheiros que descrevem todas as chaves de preferências.

As chaves de preferências normalmente têm valores simples tais como expressões, números ou listas de expressões e números. O formato da chave da preferência no repositório depende do módulo de processamento que é utilizado para ler o repositório. O seguinte é um exemplo da chave de preferência /desktop/gnome/interface/font_name quando é utilizado o módulo de processamento Extensible Markup Language (XML) para ler o repositório:

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

Quando este guia se refere a uma chave de preferência, o caminho para a chave é adicionado ao nome da chave. Por exemplo, a chave de preferência de font_name no subdirectório /desktop/gnome/interface é referenciada como /desktop/gnome/interface/font_name.

1.2.1. Bases de Configuração do GConf

O repositório do GConf contém um conjunto de localizações de armazenamento denominadas bases de configuração. As bases de configuração estão listadas no ficheiro de caminhos GConf. A localização do ficheiro de caminhos do GConf é /etc/gconf/gconf-version-number/path. Cada utilizador tem um ficheiro de caminhos. O ficheiro de caminhos especifica a seguinte informação para cada base de configuração:

  • O módulo de processamento a utilizar para ler o repositório.
  • As permissões do repositório.
  • A localização do repositório.

O ficheiro de caminhos do GConf também contém instruções de inclusão. Por omissão, o conteúdo do ficheiro de caminhos do GConf é o seguinte:

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 o GConf procura por um valor de preferência, o GConf lê as bases de configuração pela ordem especificada no ficheiro de caminhos. A seguinte tabela descreve as bases de configuração no ficheiro de caminhos:

Base de Configuração Descrição
Obrigatório As permissões nesta base de configuração estão definidas apenas para leitura. Os utilizadores não podem alterar os valores nesta base, pelo que as preferências na base são obrigatórias.
Utilizador

Esta base de configuração está armazenada no directório .gconf dentro do directório pessoal do utilizador. Quando o utilizador define uma preferência, a informação da nova preferência é adicionada a esta localização.

Pode utilizar o Editor de Configuração para alterar a base de configuração do utilizador.

Omissão Esta base de configuração contém as definições por omissão das preferências.

A sequência das bases de configuração no ficheiro de caminhos assegura que as preferências obrigatórias se sobrepõem às definições de preferências do utilizador. A sequência também assegura que as preferências do utilizador se sobrepõem às preferências por omissão. Isto é, GConf aplica as preferências pela seguinte ordem de prioridade:

  1. Preferências obrigatórias
  2. Preferências especificadas pelo utilizador
  3. Preferências por omissão

As instruções de inclusão no ficheiro de caminhos do GConf permite aos administradores dos sistemas especificar outras bases de configuração.

Base de Configuração Incluída Descrição
/etc/gconf/2/local-mandatory.path Utilize esta base de configuração para armazenar valores de preferências obrigatórios para um determinado sistema.
$(HOME)/.gconf.path O utilizador especifica a localização da base de configuração na pasta pessoal, num ficheiro denominado .gconf.path.
/etc/gconf/2/local-defaults.path Utilize esta base de configuração para armazenar valores de preferências por omissão para um determinado sistema.

1.2.2. Esquemas GConf

Um esquema GConf é um termo agregador para uma chave de esquema GConf e um objecto de esquema GConf. A tabela seguinte descreve chaves e objectos de esquemas e a relação entre estes itens e chaves de preferências:

Item Descrição
Chave de preferência Um elemento no repositório GConf que corresponde a uma preferência numa aplicação.
Chave de esquema Uma chave que armazena um objecto de esquema para uma chave de preferência.
Objecto de esquema

Um elemento numa base de configuração que contém informação sobre uma chave de preferência, tal como os seguintes:

  • O nome da aplicação que utiliza a chave de preferência.
  • O tipo do valor requerido para a chave de preferência, por exemplo um número inteiro, boleana, etc.
  • Um valor por omissão para a chave da preferência.
  • Documentação abreviada sobre a chave da preferência.

A tabela seguinte dá exemplos de uma chave de preferência, uma chave de esquema e um objecto de esquema:

Item Exemplo
Chave de preferência /desktop/gnome/interface/font_name
Chave de esquema /schemas/desktop/gnome/interface/font_name
Objecto de esquema
<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>

Pode associar uma chave de esquema com uma chave de preferência. Por exemple, a chave /desktop/gnome/interface/font_name inclui uma chave de esquema:

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

Quando associa uma chave de esquema com uma chave de preferência, a preferência utiliza o valor sugerido que está especificado no objecto de esquema da chave de esquema. O valor sugerido está contido no elemento <default> do objecto de esquema. Por omissão, todas as chaves de preferências na base de configuração por omissão estão associadas a chaves de esquemas.

Tipicamente, os esquemas estão armazenados em bases de configuração por omissão.

1.2.3. Ficheiros de Definição do Esquema GConf

Os esquemas são gerados a partir de ficheiros de definição de esquemas. Um ficheiro de definição de esquema define as características de todas as chaves numa aplicação específica. Ficheiros de definição de esquemas têm a extensão .schemas.

Os ficheiros de definição de esquemas estão contidos no directório /etc/gconf/schemas. Pode utilizar os ficheiros de definição de esquemas para criar uma nova base de configuração.

Alguns ficheiros de definição de esquemas correspondem muito aproximadamente a uma parte do interface de utilizador do Ambiente de Trabalho GNOME. Por exemplo, system_http_proxy.schemas corresponde à ferramenta de preferências de Proxy de Rede. Outros ficheiros de definição de esquema contêm chaves de preferências que não estão acessíveis no interface de utilizador do Ambiente de Trabalho GNOME. Por exemplo, a chave /apps/panel/global/tooltips_enabled não está acessível no interface de utilizador.

Parte do interface de utilizador do Ambiente de Trabalho GNOME contém preferências que representam chaves de preferências em mais do que um ficheiro de definição de esquema. Por exemplo, a ferramenta de preferências Atalhos de Teclado contém preferências que representam chaves dos ficheiros panel-global-config.schemas e metacity.schemas.