web-dev-qa-db-fra.com

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

Mark Shuttleworth récemment blogué à propos de la décision d'inclure les bibliothèques Qt dans la version 11.10, avec un 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?

75
user2405

Introduction

Comme d'autres réponses sur ce site traitent gconfet dconfensemble, je vais me concentrer sur les outils de ligne de commande tels que gsettingset le gui dconf-editor qui sont utilisés pour accéder à la base de données dconfname__.

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 actuellement rencontrés 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 de gsettingspour afficher et modifier les paramètres

Une fois que vous connaissez gsettingsname__, cela peut être aussi simple que l’interface graphique dconf-editor. Les options peuvent être listées en entrant man gsettings ou en accédant à la page pages de manuel Ubuntu en ligne .

REMARQUE: Le système de chacun étant doté de différents programmes, il est possible que vous deviez remplacer les éléments spécifiques que je choisis par différents lorsque je teste 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 montrent essentiellement comment les clés et les valeurs sont identifiées et modifiées avec gsettingsname__.

Utilisation de dconf-editor pour modifier les paramètres

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

Sudo apt-get install dconf-tools

Puis exécutez-le 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 d'accéder à la valeur souhaitée (dans ce cas, les préférences gnome-mplayer). 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 rechercher dans l'éditeur dconf avec Ctrl+F raccourci clavier.

enter image description here

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

enter image description here

Conclusion

Il existe de nombreux autres moyens utiles de modifier les paramètres avec gsettingset dconf-editor, qui sont faciles à 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-editor est extrêmement utile. Voir également:

86
user76204

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.

25
higuita

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 lire http://live.gnome.org/dconf

10
João Pinto