I'm trying to understand how Gconf, Dconf and Gsettings works and what the relationship is between them.

All I know is:

  • Gconf - XML based database (backend system). The older one.
  • Dconf - BLOB based database (backend system). The newer one.
  • Gsettings - CLI tool to edit settings. Looks like it works only with Dconf (although I saw somewhere that it might work with Gconf).

I know that for Gconf there is a GUI - Gconf-editor, and for Dconf - Dconf-editor.


  1. Which backend system is more often used - Dconf or Gconf?
  2. Gsettings works with both of them? And why doesn't it show all Dconf schemas?
  3. Where does Dconf save its data?
  • I would be particularly interested in which settings are handled by which tool (dconf or gsettings) and why there are differences?
    – jpp1
    Sep 21 '15 at 15:06

Dconf is a data store designed for storing configuration. It is the replacement for Gconf, which was used for the same purpose. Eventually, no programs should depend on Gconf any more.

Gsettings is a development library used to read and write to a configuration store backend. On Linux, it uses Dconf, but on Windows, it uses the registry, and on OS X, it uses a native data store. (The gsettings command on the CLI uses this library.)

Application developers and end-users are recommended to use Gsettings, not Dconf directly.

See also:

  • gsettings is a CLI tool though, like OP mentions. I think they want to know whether they should use that, or dconf (or gconf), basically.
    – Victor
    Oct 7 at 7:41
  • @Victor I'm not sure I understand your comment. Like I said, application developers and end-users are recommended to use Gsettings, not dconf or gconf.
    – Flimm
    Oct 7 at 8:26
  • OP is specifically asking about "Gsettings - CLI tool to edit settings." That's the context. Not about the library.
    – Victor
    Oct 7 at 8:48
  • 1
    @Victor I've edited the answer post to clarify that gsettings the CLI command uses Gsettings the library. Both application developers and end-users are recommended to use Gsettings (either as a library, or as a command on the CLI).
    – Flimm
    Oct 7 at 8:51

GConf is obsolete. It is the older GNOME 2.x configuration API and system, and has been replaced by DConf/GSettings in newer versions. However, some applications still use it.

GSettings is a GLib implementation of DConf, which stores its data in a binary database.

The gsettings command line tool is simply a tool to access or modify settings via the GSettings API, in the same way that the older gconftool command line tool is for GConf.

  • 1
    Is GSettings works with GConf also?
    – idgar
    Jan 31 '13 at 18:05
  • 3
    No, GSettings is an implementation of the DConf spec. The command line tool doesn't work with gconf. There are however, some compatibility layers currently in use on Ubuntu, where changing a setting in gsettings or gconf, will result in the change being propagated to the other. This isn't common though, and not something to rely on.
    – dobey
    Jan 31 '13 at 18:39
  • another thing,i saw somewhere that GSettings works with configuration files. is there something about it? and why does GSettings doesn't show the same schemas as DConf-editor?
    – idgar
    Feb 3 '13 at 14:30
  • 1
    The interesting part to know would be which settings are managed by which tool? The keys which are present when using dconf or dconf-editor are different from those accessible with gsettings, for example there is a key /com/canonical/unity/always-show-menus accessible via dconf but there is no equivalent key accessible via gsettings in Ubuntu 15.04.
    – jpp1
    Sep 21 '15 at 15:04
  • 1
    @dobey: thank you for helping with this. What I am really after is though: how does the mapping between the key I have to use in dconf and the key I have to use with gsettings work? If I know one, is there an algorithmic way to find the other? In my concrete case I was given /com/canonical/unity/always-show-menus -- now how would I find the appropriate key for gsettings? If both use the same underlying data, should there not be a logical mapping? Or am I still missing something?
    – jpp1
    Sep 23 '15 at 11:52

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.