dconf
Read or write GNOME configuration settings
TLDR
Print a specific key value
Print a specific path sub-directories and sub-keys
Write a specific key value
Reset a specific key value
Watch a specific key/directory for changes
Dump a specific directory in INI file format
SYNOPSIS
dconf COMMAND [OPTIONS] [PATH] [VALUE]
Common commands include:
dconf read PATH
dconf write PATH VALUE
dconf reset PATH [-f]
dconf list PATH
dconf monitor PATH
dconf dump PATH
dconf load PATH
PARAMETERS
read
Reads the value of a configuration key at the specified PATH.
write
Writes a VALUE to the configuration key at PATH. The VALUE must be in GVariant format (e.g., 'true', 10, 'string', ['list', 'of', 'strings']).
reset
Resets the configuration key or directory at PATH to its default value. Use -f to recursively reset an entire directory.
list
Lists the subkeys and subdirectories within the specified PATH.
monitor
Monitors the specified PATH for changes, printing updates as they occur.
dump
Dumps the entire sub-tree rooted at PATH to standard output in a textual format.
load
Loads configuration data from standard input into the sub-tree at PATH. This is the inverse of dump.
update
Manually writes any pending changes to the dconf database file. Changes are usually written automatically.
DESCRIPTION
dconf is a crucial low-level configuration system primarily used by the GNOME desktop environment and applications built upon it. It serves as a backend for storing user preferences and system-wide settings in a hierarchical, key-value database. Unlike its predecessor, GConf, dconf is designed for higher performance and atomicity, ensuring that configuration changes are applied as a single, indivisible operation. Settings are typically stored in a binary database file, commonly found at ~/.config/dconf/user for individual user configurations. The dconf command-line utility allows users and scripts to interact directly with this database, enabling operations like reading, writing, resetting, listing, and monitoring configuration keys. While dconf is the backend, gsettings is the high-level command-line tool that most users should employ for common configuration tasks, as gsettings understands schemas and validates data. dconf is powerful for scripting and debugging when lower-level access is required.
CAVEATS
Directly modifying dconf settings without understanding their purpose can lead to unexpected behavior or break applications.
Changes made via dconf might not take effect in running applications until they are restarted or explicitly reload their settings.
The dconf database file is in a binary format and should not be edited manually outside of the dconf command-line tool or dconf-editor.
The recursive reset -f command is powerful and should be used with caution as it can revert many settings within a directory to their defaults.
PATH FORMAT
Paths in dconf are hierarchical, similar to file system paths, but always start with a slash and represent a 'key' or 'directory' in the database. For example, /org/gnome/desktop/interface/scaling-factor. Directories usually end with a slash (e.g., /org/gnome/desktop/interface/), while keys do not.
VALUE FORMAT
Values written to dconf must adhere to the GVariant type system. This means strings must be quoted (e.g., 'dark'), booleans are 'true' or 'false', integers are unquoted (e.g., 1), and arrays are represented with square brackets (e.g., ['item1', 'item2']).
HISTORY
dconf was developed as a successor to the GConf configuration system, aiming to address performance and design limitations. It was introduced with GNOME 3, emphasizing atomic transactions and a more efficient storage backend. Its development marked a significant shift in how GNOME applications manage their settings, moving towards a more robust and responsive system for configuration management.
SEE ALSO
gsettings(1), dconf-editor(1), gconf(1)