File: //proc/self/root/usr/share/help/C/system-admin-guide/dconf-keyfiles.page
<page xmlns="http://projectmallard.org/1.0/"
xmlns:its="http://www.w3.org/2005/11/its"
type="topic" style="task"
id="dconf-keyfiles">
<info>
<link type="guide" xref="setup" />
<link type="seealso" xref="dconf" />
<link type="seealso" xref="dconf-profiles" />
<revision pkgversion="3.30" date="2019-02-08" status="review"/>
<credit type="author copyright">
<name>Ryan Lortie</name>
<email>desrt@desrt.ca</email>
<years>2012</years>
</credit>
<credit type="author">
<name>Aruna Sankaranarayanan</name>
<email>aruna.evam@gmail.com</email>
</credit>
<credit type="editor">
<name>Petr Kovar</name>
<email>pknbe@volny.cz</email>
<years>2019</years>
</credit>
<include href="legal.xml" xmlns="http://www.w3.org/2001/XInclude"/>
<desc>Use <sys its:translate="no">dconf</sys> <em>keyfiles</em> to
configure specific settings with a text editor.</desc>
</info>
<title>Control system settings with keyfiles</title>
<p>System database files, located in
<file its:translate="no">/etc/dconf/db</file>, cannot be edited because
they are written in GVDB format. In order to change system settings using a
text editor, you can modify <em>keyfiles</em> found in
<em>keyfile directories</em>. 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,
<file>/etc/dconf/db/local.d</file>). All keyfile directories are found in
<file its:translate="no">/etc/dconf/db</file>, and each one contains keyfiles
in a special format that can be compiled into the
<sys its:translate="no">dconf</sys> database.</p>
<listing>
<title>A keyfile in this directory will look something like this:</title>
<code>
# 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'
</code>
</listing>
<note style="important">
<p><cmd>dconf update</cmd> must be run whenever you modify a keyfile.
When you do this, <sys its:translate="no">dconf</sys> 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,
<sys its:translate="no">dconf</sys> regenerates the
<code>system-db</code> file and sends a notification to the system
<sys>D-Bus</sys>, which in turn notifies all running applications to
reread their settings.</p>
</note>
<p>The group name in the keyfile references a
<link href="https://developer.gnome.org/GSettings/">GSettings schema ID</link>.
For example, <code>org/gnome/desktop/background</code> references the
schema <code>org.gnome.desktop.background</code>, which contains the key
<code>picture-uri</code>.</p>
<p>The values under a group are expected in
<link href="https://developer.gnome.org/glib/stable/gvariant-text.html">serialized
GVariant form</link>.</p>
</page>