Was ist dconf, welche Funktion hat es und wie verwende ich es?


78

Mark Shuttleworth hat kürzlich über die Entscheidung gebloggt , die Qt-Bibliotheken in die Version 11.10 aufzunehmen, gefolgt von Jono Bacon. Laut Mark besteht die größte Herausforderung bei der Integration von in Qt geschriebenen Apps in das größere Ubuntu-System darin, dass Qt derzeit nicht mit dconf kompatibel ist.

Was ist dconf und welche Rolle spielt es in Ubuntu?


Antworten:


88

Einführung

Wie andere Antworten auf dieser Seite besprechen gconfund dconfzusammen, werde ich auf die Diskussion Kommandozeilen - Tools wie konzentrieren gerade gsettingsund die GUI dconf-editor, die den Zugriff verwendet werden , um dconfDatenbank.

Auf der offiziellen GNOME-Website wird darauf hingewiesen

dconf ist ein einfaches Konfigurationssystem. Der Hauptzweck ist die Bereitstellung eines Backends für GSettings auf Plattformen, auf denen noch keine Konfigurationsspeichersysteme vorhanden sind.

dconf ist ein einfaches schlüsselbasiertes Konfigurationssystem. Schlüssel existieren in einer unstrukturierten Datenbank (aber es ist beabsichtigt, dass Schlüssel, die logisch zusammengehören, zusammen gruppiert werden).

Wenn alle Schlüssel in einem einzigen kompakten Binärformat vorliegen, werden auch die intensiven Fragmentierungsprobleme vermieden, die derzeit beim Ansatz des Verzeichnisbaums von XML-Dateien auftreten.

dconf ist für Lesevorgänge optimiert. Das Lesen eines Schlüssels aus dconf beinhaltet normalerweise keine Systemaufrufe und keine Kontextwechsel. Schreibvorgänge sind weniger optimiert - sie durchlaufen den Bus und werden von einem "Writer" - einem DBus-Dienst - auf normale Weise verarbeitet.

Verwenden Sie gsettings, um Einstellungen anzuzeigen und zu ändern

Wenn man gsettingses einmal kennt , kann es so einfach sein wie die Benutzeroberfläche dconf-editor. Die Optionen können aufgelistet werden, man gsettingsindem Sie die Ubuntu-Hilfeseiten online aufrufen .

HINWEIS: Da auf jedem System unterschiedliche Programme installiert sind, müssen Sie möglicherweise die von mir ausgewählten Elemente durch andere ersetzen, wenn Sie selbst experimentieren, da ich XUbuntu XFce mit einer Vielzahl von GNOME-Programmen verwende.

Geben Sie ein, um alle verfügbaren Schemas aufzulisten

gsettings list-schemas

Geben Sie ein, um auch alle Schlüssel einzuschließen

gsettings list-recursively

Allerdings ist es in der Regel einfacher zu geben , was Sie wollen mit, für Beispiele,

gsettings list-schemas | grep -i shotwell

Dies gibt eine lange Liste zurück; Ich habe es verkürzt auf:

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

Wenn Sie das Schema gefunden haben, an dem Sie interessiert sind, listen Sie die Schlüssel mit auf

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

Dies gibt eine Liste zurück (wieder habe ich es gekürzt):

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

Wählen Sie einen aus und sehen Sie, mit welchem ​​Wert der aktuelle Wert übereinstimmt

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

Dies gibt den Wert true zurück, verwenden Sie also, um ihn umzukehren

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

Dies sind triviale Beispiele, zeigen aber im Grunde, wie Schlüssel und Werte identifiziert und geändert werden gsettings.

Verwenden von dconf-editor zum Ändern von Einstellungen

Das GUI-Programm dconf-editorwird mit dem Paket dconf-tools installiert , indem Sie hier klicken oder ausführen

sudo apt-get install dconf-tools

Führen Sie es dann aus, indem Sie im Terminal oder im Schnellstartmenü eingeben dconf-editor.

Wie Sie auf dem Screenshot sehen können, können alle verschiedenen Schemata auf der linken Seite erweitert und der entsprechende Schlüssel ausgewählt werden. Es ist sehr einfach, zum gewünschten Wert zu navigieren (in diesem Fall zu den gnome-mplayerEinstellungen). Sie können auf das Kontrollkästchen klicken, um einen Wert zu aktivieren, oder einen numerischen Wert in eines der anderen Felder einfügen. Sie können auch mit der Tastenkombination Ctrl+ im dconf editor suchen F.

Bildbeschreibung hier eingeben

Sie können auch ein weiteres Protokoll hinzufügen, log-viewerindem Sie im folgenden Screenshot einen Pfad in der Form ['/var/log/auth.log', var .... '] hinzufügen.

Bildbeschreibung hier eingeben

Fazit

Es gibt viele andere nützliche Möglichkeiten, Einstellungen mit beiden gsettingsund zu ändern, dconf-editorund sie sind einfach zu verwenden. Es lohnt sich, sie durchzusehen, um festzustellen, ob es Optionen gibt, die nicht in den Programmeinstellungen enthalten sind, da Sie Ihr Programm möglicherweise so anpassen können, wie Sie es möchten. Wie die Fossfreedom kürzlich in dieser Frage gezeigt hat

zu wissen, wie man es benutzt gsettingsoder dconf-editorist äußerst wertvoll. Siehe auch:


5
Warum zeigen die Programme gsettingsund die dconf-editorArbeit auf der dconfDatenbank nicht dieselben Informationen an? gsettingAm 12.04 werden Werte für das Schema com.canonical.Unity.Launcherund den Schlüssel angezeigt favorites, es wird dconf-editorjedoch nicht einmal com.canonical.Unitydas vollständige Schema oder der Schlüssel angeboten.
AH

@AH: gute Frage. Ich habe es hier gefragt: askubuntu.com/q/243409/2355
Flimm

@AH Es tut mir leid, dass ich vergessen habe, Ihren Kommentar zu beantworten: Ich kann Unity nicht kommentieren, da ich auf Xubuntu bin, aber Flimm hat eine separate Frage gestellt, die einige gute Antworten erhalten sollte.

4
Aber was um alles in der Welt macht dconf inkompatibel mit Qt, einem GUI-Toolkit?
Salman von Abbas

Unter RHEL / CentOS verwenden Sie yum install dconf-editor, um das GUI-Tool zu installieren.
Mark Edington

26

Für diejenigen, die von Windows kommen und eine einfache Antwort wünschen, ist dconf das Gnome-Äquivalent zur Windows-Registrierung ... ein großer Binärbaum, in dem jedes Programm seine Konfiguration speichern und freigeben kann.

Sie migrierten zuerst von den traditionellen Unix-Konfigurationen (eine Textdatei für jede App, jede mit ihrem eigenen Format) zu einem von gconf verwalteten Standardbaum von XML-Dateien. In jüngster Zeit wurden diese XML-Dateien und die Leistungsprobleme beim Lesen und Parsen von MANY-Dateien durch die Migration von gconf zu dconf in ein Binärformat migriert.

Im Gegensatz zur Windows-Registrierung sollten in dconf alle Konfigurationseinträge aufgelistet sein, auch wenn sie auf die Standardwerte gesetzt sind. Damit es keine versteckten Einträge gibt, können Sie diese dann einfach ändern oder auf Standard zurücksetzen.


10

dconf ist nicht Ubuntu-spezifisch, sondern die GNOME-Technologie, mit der Anwendungseinstellungen gespeichert werden. Weitere Informationen finden Sie unter http://live.gnome.org/dconf


Wie ist die Beziehung zwischen dconf und gconf?
Psusi

10
dconf ist der GNOME3-Ersatz für gconf, der seit einiger Zeit nicht mehr gepflegt wird. Von dconf wird auch eine Leistungsverbesserung gegenüber gconf erwartet (relevant für den Start von Anwendungen).
João Pinto

1
Die Frage in psusis Kommentar oben wird teilweise in den Antworten auf die Frage " Warum die Kontroverse um dconf und gconf? " Beantwortet . Ich bin sicher, dass Psusi sich dessen bewusst ist, nachdem er die Frage kommentiert hat, aber für den Fall, dass jemand mehr wissen möchte, ist es da.
Firefeather
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.