24

Is it possible to backup the custom keyboard shortcuts and restore them when doing a fresh install?

user10853
  • 1,566
orschiro
  • 13,317
  • 17
  • 87
  • 161

1 Answers1

25

Gnome-Control-Center (used by Unity and Gnome Shell) stores its key bindings in the per-user Dconf database directories /org/gnome/desktop/wm/keybindings/ and /org/gnome/settings-daemon/plugins/media-keys/ (source).

  • The easiest way to keep them across system re-installations is to keep the per-user configuration directories (~/.config or more specifically ~/.config/dconf/user for Dconf only). Most of the time it's not necessary or desirable to purge the per-user configuration files anyway.

  • If you can't or won't keep your old Dconf database you can use the dconf command to export (“dump”) parts of it into a file and import (“load”) it later. The relevant Dconf directories are

    • /org/gnome/desktop/wm/keybindings/ for pre-defined shortcuts and
    • /org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/ for custom, user-defined shortcuts.

    The following example saves the above Dconf directories to two files keybindings.dconf and custom-keybindings.dconf and then restores them from the same files:

    dconf dump '/org/gnome/desktop/wm/keybindings/' > keybindings.dconf
    dconf dump '/org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/' > custom-keybindings.dconf
    
    dconf load '/org/gnome/desktop/wm/keybindings/' < keybindings.dconf
    dconf load '/org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/' < custom-keybindings.dconf
    

If you find that you export your keybindings often, it might be convenient to script the required steps.

peterrus
  • 378
David Foerster
  • 36,264
  • 56
  • 94
  • 147
  • Thanks for the explanation. I moved the user file to user.bk and my custom shortcuts still work (needs a reboot because a new file was created & seems to restore my preferences?) Also for dconf that directory (/org) doesn't exist – user10853 Nov 05 '16 at 21:52
  • Where did you get the idea that there's no /org/ directory in the Dconf database? Both Unity and Gnome wouldn't work very well without it. – David Foerster Nov 05 '16 at 21:57
  • Because I tried cding into it & your command saves an empty file – user10853 Nov 05 '16 at 22:03
  • 2
    You can't “change the working directory” to be a Dconf database directory because they're not part of a file system. Instead they are key prefixes in a hierarchical key-value store. Yes, the Dconf database is stored as a file but its contents aren't files. – David Foerster Nov 06 '16 at 04:15
  • 3
    For custom bindings, the path is /org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/. I'm on Debian Buster running Gnome 3.30.2. – Sufian Aug 27 '19 at 03:15