Qu'est-ce que dconf, quelle est sa fonction et comment puis-je l'utiliser?

78

Mark Shuttleworth a récemment publié un blog sur la décision d'inclure les bibliothèques Qt dans la version 11.10, avec le suivi de Jono Bacon. Mark déclare que le plus grand défi d'intégrer des applications écrites dans Qt dans le système Ubuntu plus vaste est la non-compatibilité actuelle de Qt avec dconf.

Qu'est-ce que dconf et quel rôle joue-t-il dans Ubuntu?


la source
Duplication possible de Comment utiliser l'éditeur gconf?
Pablo Un

Réponses:

88

introduction

Comme d’autres réponses sur ce site discutent gconfet dconfensemble, je me concentrerai sur les outils de ligne de commande tels que gsettingsl’interface graphique dconf-editorutilisée pour accéder à la dconfbase de données.

Sur le site officiel de GNOME, il est noté que

dconf est un système de configuration de bas niveau. Son objectif principal est de fournir un backend à GSettings sur des plates-formes qui ne disposent pas déjà de systèmes de stockage de configuration.

dconf est un système de configuration simple basé sur des clés. Les clés existent dans une base de données non structurée (mais il est prévu que les clés logiquement liées soient regroupées).

Le fait de disposer de toutes les clés dans un seul format binaire compact évite également les problèmes de fragmentation intenses rencontrés actuellement par l’approche arborescence de répertoires de fichiers XML.

dconf est optimisé pour les lectures. En règle générale, la lecture d'une clé à partir de dconf implique zéro appel système et zéro changement de contexte. Les écritures sont moins optimisées - elles traversent le bus et sont gérées par un "écrivain" - un service DBus - de la manière habituelle.

Utilisation gsettingspour afficher et modifier les paramètres

Une fois que l’on connaît, gsettingscela peut être aussi simple que l’interface graphique dconf-editor. Les options peuvent être listées en entrant man gsettingsou en accédant aux pages de manuel Ubuntu en ligne .

NOTE: Chaque programme étant installé sur tous les systèmes, il se peut que vous deviez remplacer les éléments spécifiques que je choisis par différents lorsque vous testez vous-même, car j'utilise XUbuntu XFce avec pas mal de programmes GNOME.

Pour répertorier tous les schémas disponibles, entrez

gsettings list-schemas

Pour inclure également toutes les clés, entrez

gsettings list-recursively

Cependant , il est généralement plus facile de spécifier ce que vous voulez avec, par exemple,

gsettings list-schemas | grep -i shotwell

Ceci retourne une longue liste. Je l'ai abrégé à:

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

Maintenant, quand vous avez trouvé le schéma qui vous intéresse, listez les clés avec

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

Ceci retourne une liste (encore une fois je l’ai raccourcie):

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

Choisissez-en un et voyez quelle est la valeur actuelle

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

Ceci retourne une valeur true, alors pour l’inverser, utilisez

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

Ce sont des exemples triviaux , mais ils montrent essentiellement comment les clés et les valeurs sont identifiées et modifiées gsettings.

Utilisation de dconf-editor pour modifier les paramètres

Le programme graphique dconf-editorest installé avec le paquet dconf-tools en cliquant ici ou en exécutant

sudo apt-get install dconf-tools

Ensuite , exécutez en entrant dans le terminal ou dans le menu de lancement rapide, dconf-editor.

Comme vous pouvez le voir sur la capture d'écran, tous les différents schémas peuvent être développés à gauche et la clé appropriée sélectionnée. Il est très simple de naviguer vers la valeur souhaitée (dans ce cas, les gnome-mplayerpréférences). Vous pouvez cliquer sur la case à cocher pour activer une valeur ou ajouter une valeur numérique dans l'une des autres zones. Vous pouvez également effectuer une recherche dans l'éditeur dconf avec le raccourci clavier Ctrl+ F.

entrez la description de l'image ici

Vous pouvez également ajouter un autre journal, log-vieweren ajoutant un chemin sous la forme ['/var/log/auth.log', var .... '] dans la capture d'écran ci-dessous.

entrez la description de l'image ici

Conclusion

Il existe de nombreux autres moyens utiles de modifier les paramètres avec gsettingset, dconf-editoret ils sont simples à utiliser. Il vaut la peine de regarder à travers eux pour voir s’il existe des options qui ne sont pas dans les préférences du programme, car vous pourrez peut-être personnaliser votre programme comme vous le souhaitez. Comme fossfreedom l'a montré récemment dans cette question

savoir utiliser gsettingsou dconf-editorest extrêmement précieux. Voir également:

Pablo A
la source
5
Puisque les programmes gsettingset les dconf-editordeux travaillent sur la dconfbase de données, pourquoi n’ont-ils pas la même information? gsettingLe 12.04 montre les valeurs pour le schéma com.canonical.Unity.Launcheret la clé favoritesmais dconf-editorn'offre même pas com.canonical.Unityle schéma complet ni la clé.
AH
@ Ah: bonne question. Je l'ai demandé ici: askubuntu.com/q/243409/2355
Flimm
@AH Je suis désolé d'avoir oublié de répondre à votre commentaire: je ne peux pas commenter sur Unity car je suis sur Xubuntu, mais Flimm a posé une question distincte qui devrait donner de bonnes réponses.
4
Mais qu'est-ce qui rend dconf incompatible avec Qt, une boîte à outils d'interface graphique?
Salman von Abbas
Sous RHEL / CentOS, utilisez yum install dconf-editorpour installer l’outil graphique.
Mark Edington
26

Pour ceux venant de Windows qui veulent une réponse simple, dconf est l'équivalent gnome du registre Windows ... un grand arbre binaire où tout programme peut stocker et partager sa configuration.

Ils ont d'abord migré des configurations unix traditionnelles (un fichier texte pour chaque application, chacune avec son propre format) vers une arborescence standard de fichiers XML, gérée par gconf. Ces derniers temps, presque personne n’ayant édité ces fichiers XML directement ni les problèmes de performances liés à la lecture et à l’analyse de nombreux fichiers, ceux-ci ont migré vers un format binaire en passant de gconf à dconf.

Contrairement au registre Windows, dconf devrait avoir toutes les entrées de configuration listées, même si elles ont les valeurs par défaut. Donc, il n'y a pas d'entrées cachées, vous pouvez alors changer ou réinitialiser ensuite facilement par défaut.

higuita
la source
10

dconf n'est pas spécifique à Ubuntu, c'est la technologie GNOME utilisée pour stocker les paramètres de l'application. Pour plus de détails, veuillez consulter http://live.gnome.org/dconf

João Pinto
la source
Quelle est la relation entre dconf et gconf?
Psusi
10
dconf est le remplacement GNOME3 de gconf qui n’a pas été maintenu depuis un certain temps. dconf devrait également apporter des améliorations de performances par rapport à gconf (pertinent pour le démarrage des applications).
João Pinto
1
La réponse au commentaire de psusi ci-dessus trouve une réponse partielle dans les réponses à la question " Pourquoi la controverse sur dconf et gconf? ". Je suis sûr que Psusi est au courant, après avoir commenté la question, mais si quelqu'un d'autre veut en savoir plus, la voilà .
Plume de feu