Control system settings with keyfiles

System database files, located in /etc/dconf/db, cannot be edited because they are written in GVDB format. In order to change system settings using a text editor, you can modify keyfiles found in keyfile directories. Each keyfile directory corresponds to a particular system database file, and has the same name as the database file with a “.d” extension appended (for example, /etc/dconf/db/local.d). All keyfile directories are found in /etc/dconf/db, and each one contains keyfiles in a special format that can be compiled into the dconf database.

A keyfile in this directory will look something like this:

# Some useful default settings for our site

[system/proxy/http]
host='172.16.0.1'
enabled=true

[org/gnome/desktop/background]
picture-uri='file:///usr/local/rupert-corp/company-wallpaper.jpeg'
      

dconf update must be run whenever you modify a keyfile. When you do this, dconf compares the timestamp on a system database file with the timestamp on the corresponding keyfile directory. If the timestamp on the keyfile directory is more recent than the one on the database file, dconf regenerates the system-db file and sends a notification to the system D-Bus, which in turn notifies all running applications to reread their settings.

The group name in the keyfile references a GSettings schema ID. For example, org/gnome/desktop/background references the schema org.gnome.desktop.background, which contains the key picture-uri.

The values under a group are expected in serialized GVariant form.