47

Dconf is pretty young, yet my database is already a mess with lots of "schema-less" keys. Is there a way to do some cleaning up, or would I need to start from scratch (by removing ~/.config/dconf/user I guess)?

htorque
  • 66,086

4 Answers4

45

This is possible using the dconf reset command, though it's not clear if that's a side-effect of a bug.

  • For a single key:

    dconf reset "/path/to/the/key"
    

    Must not end with a /.

  • For a whole path:

    dconf reset -f "/path/to/the/path/"
    

    Must end with a /.

If you do this while having dconf-editor opened, it will likely crash.

htorque
  • 66,086
5

If you want to clean the dconf database, you first have to dump the whole dconf configuration via:

morfik:~$ cd ~/.config/dconf/
morfik:~/.config/dconf$ dconf dump / > user-backup
morfik:~/.config/dconf$ ls -al ./user-backup
-rw-r--r-- 1 morfik morfik 30.0K 2015-02-07 08:18:04 ./user-backup
morfik:~/.config/dconf$ rm user

After those steps you have to reopen your graphical session (log out/in). This will create the ~/.config/dconf/user file anew with almost 0 content -- default settings.

As for the user-backup file you had created earlier, it's just a plain text file:

...
[apps/light-locker]
late-locking=false
lock-after-screensaver=uint32 1
lock-on-suspend=true
...

So you can edit it and remove the desired entries/blocks from that file. In other words -- clean it.

When you're done, load it:

morfik:~/.config/dconf$ dconf load / < ./user-backup
morfik:~/.config/dconf$ ls -al ./user-backup
-rw-r--r-- 1 morfik morfik 14.0K 2015-02-07 08:26:23 ./user-backup
morfik:~/.config/dconf$ dconf update /

I think you should restart your graphical session after that again.

And that's it, but you have to remember that all entries that have default values wont be saved -- they will be created anew when some app will ask for it, which is a good thing because you want to backup only the values you had changed.

0

Very late to this, but I found a way to remove particularly stubborn old entries that isn't mentioned here. In /usr/share/glib-2.0/schemas, there will be several .gschema.xml files. Look there, you'll probably find files associated with those entries.

Remove them like this.

rm -v /usr/share/glib-2.0/schemas/org.gnome.shell.extensions.stubborn.gschema.xml

Then recompile the gschemas.compiled file with this command:

glib-compile-schemas /usr/share/glib-2.0/schemas/

From there, I used Alt+F2 > r to reload. Not sure if that's necessary. If using Wayland, you'll probably have to restart if it is. And the entries were gone.

gdi
  • 1
0

Install gconf-cleaner from the software center.
sudo apt-get install gconf-cleaner

In their own words "GConf Cleaner is a tool to clean your Gconf database up that is possibly cluttered with unnecessary or invalid keys."

Parto
  • 15,647