Ubuntu – Gconf, Dconf, Gsettings and the relationship between them

dconfgconfgsettings

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.

So:

  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?

Best Answer

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.