LinuxCommandLibrary

dconf

Read or write GNOME configuration settings

TLDR

Print a specific key value

$ dconf read /[path/to/key]
copy

Print a specific path sub-directories and sub-keys
$ dconf list /[path/to/directory]/
copy

Write a specific key value
$ dconf write /[path/to/key] "[value]"
copy

Reset a specific key value
$ dconf reset /[path/to/key]
copy

Watch a specific key/directory for changes
$ dconf watch /[path/to/key|/path/to/directory]/
copy

Dump a specific directory in INI file format
$ dconf dump /[path/to/directory]/
copy

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)

Copied to clipboard