Standardeinstellungen in GSettings ändern¶
Gnome3 benutzt GSettings, um Konfiguration-Einstellungen für Programme zu speichern. Als Systemverwalter möchte man manchmal die von der Distribution vorgegebenen Standardeinstellungen ändern.
Das geht so:
Schema-Dateien¶
Um GSettings für Konfigurations-Einstellunegn benutzen zu können, muss
ein Programm ein “Schema” definieren, das beschreibt, wie diese
Einstellungen aussehen und welche Vorgaben-Werte sie haben. Dazu legt
es eine Datei mit der Endung .gschema.xml
im Verzeichnis
/usr/share/glib-2.0/schemas/
an.
Wie die Endung verrät, handelt es sich dabei um eine XML-Datei. Eine kurze Beschreibung des Aufbaus findet man in der Dokumentation zu GSettings
Aus diesen Dateien erzeugt das Programm glib-compile-schemas eine Binärdatei, die dann von GSettings verwendet wird.
Override-Dateien¶
Es wäre aber sehr unpraktisch und fehlerträchtig, wenn man die Schema-Dateien bearbeiten müsste, um die Vorgabe-Werte zu ändern. Daher gibt es einen einfacheren Weg:
Außer den Schema-Dateien liest glib-compile-schemas zusätzlich
Dateien mit der Endung .gschema.override
ein. Diese Dateien müssen
im gleichen Verzeichnis wie die Schemata liegen und enthalten
Vorgabe-Werte im bekannten INI-Format.
Als Namen für die Abschnitte werden dabei Schema-Namen benutzt, jeder Abschnitt enthält Schlüssel-Wert-Paare, die die neuen Vorgabe-Werte für das entsprechende Schema beschreiben.
Die Schreibweise für die Werte ähnelt der Python-Syntax:
Werte¶
Die wichtigsten Werte-Typen sind:
Typ |
Schreibweise |
---|---|
Wahrheitswerte |
|
Zeichenketten |
eingeschlossen in |
Ganze Zahl |
|
Dezimalzahl |
|
Tupel |
kommagetrennte Werte, eingschlossen von runden
Klammern. Die Werte können unterschiedliche Typen
haben: |
Feld (Array) |
kommagetrennte Werte, eingschlossen von eckigen
Klammern. Die Werte müssen alle den gleichen
Typ haben: |
Es gibt noch einige andere Typen und Schreibweisen, die in der Praxis aber seltener verwendet werden.
Beispiel¶
Eine Override-Datei, die im Schema
org.gnome.desktop.interface
Vorgaben für die Schlüssel
gtk-theme
und icon-theme
, und im Schema
org.gnome.desktop.wm.preferences
die Vorgabe für
theme
ändert, könnte zum Beispiel so aussehen:
[org.gnome.desktop.interface]
gtk-theme="Ambiance"
icon-theme="ubuntu-mono-dark"
[org.gnome.desktop.wm.preferences]
theme="Ambiance"
Prioritäten¶
Der Name der Override-Datei ist - bis auf die Endung - beliebig. Aber
da es vorkommen kann, dass eine Vorgabe in mehreren Override-Dateien
geändert wird, ist es üblich, dass der Datei-Name mit nn_
beginnt,
wobei nn
eine zweistellige, ganze Zahl ist. Dateien mit größeren
Zahlen haben dabei eine höhere Priorität und überschrieben Vorgaben,
die in Dateien mit einer kleineren Zahl angegeben werden.
Wenn Sie also sicher sein wollen, dass Ihre Vorgaben nicht
überschrieben werden, wählen Sie einen Dateinamen, der mit 99_
beginnt, z.B. 99_lokale-einstellungen.gschema.override
Schemata kompilieren¶
Um schnell auf die Werte zugreifen zu können, speichert GSettings (genauer gesagt das von GSettings verwendete DConf) die Einstellungen in einer Binärdatei.
Um diese Binärdatei zu aktualisieren, muss man glib-compile-schemas aufrufen. Als Parameter erwartet glib-compile-schemas den Pfad des Ordners, in dem die Schema-Dateien liegen. Der Aufruf lautet daher:
glib-compile-schemas /usr/share/glib-2.0/schemas/
Wenn alles funktioniert, beendet sich das Programm kommentarlos und die neuen Einstellungen sind verfügbar.