O que é o dconf, qual é a sua função e como eu o uso?

78

Mark Shuttleworth publicou um blog recentemente sobre a decisão de incluir as bibliotecas Qt na versão 11.10, com um acompanhamento de Jono Bacon. Mark afirma que o maior desafio para integrar aplicativos escritos em Qt no sistema Ubuntu maior é a não compatibilidade atual do Qt com o dconf.

O que é o dconf e qual o seu papel no Ubuntu?


fonte
Possível duplicata de Como uso o editor gconf?
Pablo A

Respostas:

88

Introdução

Enquanto outras respostas neste site discutem gconfe dconfjuntas, vou me concentrar apenas na discussão de ferramentas de linha de comando como gsettingse a GUI dconf-editorusada para acessar o dconfbanco de dados.

No site oficial do GNOME , note-se que

O dconf é um sistema de configuração de baixo nível. Seu principal objetivo é fornecer um back-end para o GSettings em plataformas que ainda não possuem sistemas de armazenamento de configuração.

O dconf é um sistema simples de configuração baseado em chave. As chaves existem em um banco de dados não estruturado (mas pretende-se que as chaves que pertencem logicamente juntas sejam agrupadas).

Ter todas as chaves em um único formato binário compacto também evita os intensos problemas de fragmentação atualmente enfrentados pela abordagem de árvore de diretórios de arquivos xml.

O dconf é otimizado para leituras. Normalmente, a leitura de uma chave do dconf envolve zero chamadas do sistema e zero comutadores de contexto. As gravações são menos otimizadas - elas atravessam o barramento e são tratadas por um "escritor" - um serviço DBus - da maneira comum.

Usando gsettingspara visualizar e alterar configurações

Uma vez que se conhece gsettings, pode ser tão fácil quanto o gui dconf-editor. As opções podem ser listadas digitando man gsettingsou acessando as páginas de manual do Ubuntu online .

NOTA: Como o sistema de todos tem programas diferentes instalados, talvez seja necessário substituir os itens específicos que eu escolher pelos diferentes ao experimentar você mesmo, pois estou usando o XUbuntu XFce com muitos programas GNOME.

Para listar todos os esquemas disponíveis, digite

gsettings list-schemas

Para também incluir todas as chaves, digite

gsettings list-recursively

No entanto , geralmente é mais fácil especificar o que você deseja, por exemplo,

gsettings list-schemas | grep -i shotwell

Isso retorna uma lista longa; Eu reduzi para:

org.yorba.shotwell
org.yorba.shotwell.preferences.ui
org.yorba.shotwell.preferences.slideshow
org.yorba.shotwell.plugins.enable-state
org.yorba.shotwell.printing
org.yorba.shotwell.preferences.editing
org.yorba.shotwell.preferences.files

Agora, quando você encontrar o esquema no qual está interessado, liste as chaves com

gsettings list-keys org.yorba.shotwell.preferences.ui

Isso retorna uma lista (novamente a abreviei):

background-color
display-basic-properties
display-extended-properties
display-photo-ratings
display-photo-tags
display-photo-titles
event-photos-sort-ascending
event-photos-sort-by

Escolha um e veja qual é o valor atual

gsettings get org.yorba.shotwell.preferences.ui display-photo-tags

Isso retorna um valor true, portanto, para revertê-lo, use

gsettings set org.yorba.shotwell.preferences.ui display-photo-tags false

Estes são exemplos triviais , mas mostram basicamente como as chaves e os valores são identificados e alterados gsettings.

Usando o dconf-editor para alterar as configurações

O programa GUI, dconf-editoré instalado com o pacote dconf-tools clicando aqui ou executando

sudo apt-get install dconf-tools

Em seguida, execute-o entrando no terminal ou no menu de inicialização rápida dconf-editor,.

Como você pode ver na captura de tela, todos os vários esquemas podem ser expandidos no lado esquerdo e a tecla apropriada selecionada. É muito simples navegar até o valor desejado (neste caso, as gnome-mplayerpreferências). Você pode clicar na caixa de seleção para ativar um valor ou adicionar um valor numérico a uma das outras caixas. Você também pode pesquisar dentro dconf editor com Ctrl+ Fatalho de teclado.

insira a descrição da imagem aqui

Você também pode adicionar outro registro log-viewer, adicionando um caminho no formato ['/var/log/auth.log', var .... '] na captura de tela abaixo.

insira a descrição da imagem aqui

Conclusão

Existem muitas outras maneiras úteis que você pode ajustar as configurações com ambos gsettingse dconf-editore são simples de usar. Vale a pena examiná-los para ver se existem opções que não estão nas preferências dos programas, pois você poderá personalizar seu programa da maneira que desejar. Como a liberdade de expressão mostrou recentemente nesta questão

saber usar gsettingsou dconf-editoré extremamente valioso. Veja também:

Pablo A
fonte
5
Como os programas gsettingse dconf-editorfuncionam tanto no dconfbanco de dados, por que eles não mostram as mesmas informações? gsettingno 12.04 mostra valores para o esquema com.canonical.Unity.Launchere a chave, favoritesmas dconf-editornem oferece, com.canonical.Unitymuito menos o esquema completo ou a chave.
AH
@ Ah: boa pergunta. Eu perguntei aqui: askubuntu.com/q/243409/2355
Flimm
@AH Sinto muito por ter esquecido de responder ao seu comentário: não posso comentar sobre o Unity porque estou no Xubuntu, mas o Flimm fez uma pergunta separada que deveria obter boas respostas.
4
Mas o que diabos torna o dconf incompatível com o Qt, um kit de ferramentas da GUI?
Salman von Abbas
No RHEL / CentOS, use yum install dconf-editorpara instalar a ferramenta GUI.
Mark Edington
26

Para quem vem de janelas que desejam uma resposta simples, o dconf é o gnome equivalente ao registro do windows ... uma grande árvore binária em que qualquer programa pode armazenar e compartilhar sua configuração.

Eles primeiro migraram das configurações tradicionais do unix (um arquivo de texto para cada aplicativo, cada um com seu próprio formato) para uma árvore padrão de arquivos XML, gerenciada pelo gconf. Nos últimos tempos, como quase ninguém editava esses arquivos XML diretamente e os problemas de desempenho de leitura e análise de MUITOS arquivos, eles migravam para um formato binário migrando do gconf para o dconf.

Diferente do registro do Windows, o dconf deve ter todas as entradas de configuração listadas, mesmo se estiverem definidas com os valores padrão. Portanto, não há entradas ocultas, você pode alterar ou redefinir para o padrão facilmente.

higuita
fonte
10

O dconf não é específico do Ubuntu, é a tecnologia GNOME usada para armazenar as configurações do aplicativo. Para mais detalhes, leia http://live.gnome.org/dconf

João Pinto
fonte
Qual é a relação entre dconf e gconf?
Psusi
10
O dconf é o substituto do GNOME3 para o gconf, que não é mantido por algum tempo. Também é esperado que o dconf traga melhorias de desempenho em relação ao gconf (relevante para a inicialização de aplicativos).
João Pinto
1
A pergunta no comentário do psusi acima é parcialmente respondida nas respostas à pergunta " Por que a controvérsia sobre o dconf e o gconf? ". Tenho certeza de que a psusi está ciente disso, tendo comentado a questão, mas, caso alguém queira saber mais, aí está.
Firefeather