1

I am talking about all the settings that you can tweak through the system settings app.

On which file(s) are they stored ? If they are all stored in different places, how can I find the location for a specific plug ?

After some testing I though that they were stored in ~/.config/dconf/user which is a binary file.

A diff between two runs of gsettings list-recursively before and after a change in the settings panel will reveal the keys involved by this changes.

980c980
< org.pantheon.desktop.gala.behavior hotcorner-topright 'none'
---
> org.pantheon.desktop.gala.behavior hotcorner-topright 'show-workspace-view'

A diff between two runs of xxd ~/.config/dconf/user (a hex dump of the binary file) will not highlight anything meaningful because the files changes too much. But still, the string "show-workspace-view" is not present in the first hex dump, and is in the second.

But when I replace this file with another one, the system settings panel does not reflect the options that are supposed to be the new file (and that I can see in a text dump) and will overwrite them with my old settings.

So the question remains, where are the system settings options stored ?

3

You are correct that most system settings are stored in gsettings which is not plain-text. Typically a tool called dconf Editor is used to manually view and manipulate settings. You can also interact with gsettings using the Terminal command gsettings as you've already discovered.

It's not really meaningful to think of where gsettings are stored in terms of the filesystem. It's more useful to think of where gsettings are stored in terms of Schemas separated by ., like DBus. Take your example above org.pantheon.desktop.gala.behavior hotcorner-topright. This describes a location in a tree. See this screenshot of dconf Editor:

enter image description here

As to where settings are stored by plug, settings aren't really organized in that manner. A plug could change the settings of many different system components. However, many of the plugs will manipulate children of org.gnome.settings-daemon.plugins since that contains settings related to a lot of lower-level system stuff. As an example, the Mouse & Touchpad plug will touch settings in both org.gnome.desktop.peripherals and org.gnome.settings-daemon.peripherals

You can read more about gsettings in its GNOME documentation or on Valadoc.

  • What I am trying to achieve is to backup those settings because It take times to remember all the tweaks I had made when upgrading to a new elementary. I could dump all settings with gsettings and then re-apply them somehow but it seems like a better solution to just backup the files where the data is stored. Still, it doesn't seems like the ~/.config/dconf/user file holds everything since the keys are overwritten when I change the user file and then open the system setting app – William Ledoux Mar 20 '16 at 11:59
  • You can backup your configuration with "dconf' command from terminal – bitseater Mar 20 '16 at 15:24
  • @WilliamLedoux It would probably be helpful if you could make another questions since "How do I back up gsettings" is a different thing from "where are gsettings located". But bitseater is right. You want the dconf dump and dconf load commands. The problem is that the user file does not hold all settings. It is effectively a diff of the defaults, not a complete settings file in itself. – Daniel Foré Mar 20 '16 at 15:31

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.