Wie ändere ich dconf-Schlüssel ohne GUI (für ein Post-Install-Skript)?

31

Ich habe dconf-tools installiert. In diesem Fall bearbeite ich die Anzeige eines Namens im Bereich der Sitzungsanzeige.

Ich kann dies in dconf-editor gui problemlos ändern, gehe zu apps / indicator-session und deaktiviere show-real-name-on-panel.

Ich habe jedoch auch versucht, es nur mit dconf in der Befehlszeile umzuschalten:

dconf write /com/canonical/indicator/session/show-real-name-on-panel false

Nach dem Neustart bleibt das Panel unverändert, und der Schlüssel im dconf-Editor bleibt ebenfalls unverändert.

Darüber hinaus führt der Versuch, die Datenbank dconf über das Terminal zu aktualisieren, zu einem Fehler:

$ dconf update
fatal: Error opening directory '/etc/dconf/db': No such file or directory

Aus meiner Erfahrung scheint es , als ob dconf und dconf-editor keine Beziehung haben, also frage ich mich nur, was ich falsch mache.

Wenn ich das herausfinden kann, möchte ich den Befehl einfach in ein Bash-Skript einfügen, damit er ausgeführt wird, wenn ich das nächste Mal eine Neuinstallation für ein Upgrade * vornehme. Ich führe in 6 Monaten viele Optimierungen durch und möchte von nun an so viel wie möglich automatisieren.

  • Etwas abseits des Themas: Der Distributions-Upgrade-Mechanismus hat für mich nie reibungslos funktioniert. Ich habe es auch von 11.04 bis 11.10 versucht.
Inkayacu
quelle

Antworten:

35

Sie können das gsettingsTool verwenden.

gsettings set com.canonical.indicator.session show-real-name-on-panel false
Anonym
quelle
Danke, das hat funktioniert! Funktioniert das überall dort, wo dconf es tun würde? Wird es zugunsten von dconf veraltet sein oder wird es auf absehbare Zeit weiter genutzt?
Inkayacu
Ja, gsettings kann überall dort verwendet werden, wo dconf es möchte.
Anonym
1
Nein, es wird nicht veraltet sein. dconf hat gconf ersetzt, was veraltet sein wird. gconf kann mit gconf-editoroder geändert werden gconftool-2. dconf kann mit dconf-editoroder geändert werden gsettings.
Anonym
gconf speichert seine Dateien in Ihrem Home-Verzeichnis unter dem Verzeichnis .gconf /.
Anonym
12

Folgendes funktionierte für mich unter Ubuntu 14.04:

dconf write /org/gnome/gnome-session/auto-save-session true

Der Wert hat sich geändert und blieb nach dem Neustart geändert. Ich hatte ein anderes Problem, dass die Fenster nicht gespeichert wurden, aber das ist ein ganz anderes Problem.

AlikElzin-kilaka
quelle
6

dconf dump+ massenexport loadund wiederherstellung

  1. Alle Einstellungen in eine Datei sichern:

    dconf dump / >~/.config/dconf/user.conf
    
  2. Öffnen Sie diese Datei in einem Texteditor und wählen Sie die gewünschten Einstellungen aus:

    editor ~/.config/dconf/user.conf
    

    Wenn Sie Vim verwenden, möchten Sie diese Syntaxhervorhebung .

  3. Wenn Sie den Namen der Einstellung nicht kennen, aber wissen, wie Sie sie von einer GUI aus ändern können, führen Sie Folgendes aus unity-control-center:

    dconf watch /
    

    und ändern Sie sie dann. Die genaue Einstellung wird dann auf dem Terminal angezeigt.

  4. Wenn Sie diese Einstellungen wiederherstellen möchten, führen Sie Folgendes aus:

    dconf load / <~/.config/dconf/user.conf
    
  5. Verfolge die Konfigurationsdatei, um sie niemals zu verlieren. https://github.com/andsens/homeshickhomesick ist meine derzeitige Lieblingsmethode.

Getestet unter Ubuntu 15.10. Tipp angepasst von: http://catern.com/2014/12/21/plain-text-configuration-gnome.html

Ciro Santilli ist ein Schauspieler
quelle
1

Es scheint (zumindest in 15.10) einige Dinge zu geben (speziell compiz), die die Konfiguration nur auf der dconfEbene speichern und nicht über festgelegt werden können gsettings. Es ist möglich, dass dies andere Konfigurationspfade betrifft, aber wahrscheinlich unwahrscheinlich - da sich compiz auf einer niedrigeren Ebene als unity befindet, wundert es mich nicht, dass es sich anders verhält.

Zum Beispiel wird dies funktionieren:

dconf write /org/compiz/profiles/unity/plugins/core/outputs "['3200x1800+288+2160', '3840x2160+0+0']"

während dies nicht wird:

gsettings set org.compiz.profiles.unity.plugins.core outputs "['3200x1800+288+2160', '3840x2160+0+0']"
# No such schema 'org.compiz.profiles.unity.plugins.core'

Wenn ich nur herausfinden könnte, wie man Compiz neu lädt, ohne alles zum Absturz zu bringen ...

pospi
quelle