Allow multiple keybindings to be configured
We have a lot of hardcoded settings that make sense, but for most of these it would also make sense to allow adding additional keybindings. Also, we keep getting requests for people to remap keys. We don't want to expose any such option in the UI, however, moving all keybindings into corresponding settings keys, replacing most of the hardcoded values, seems sensible and would allow such a use-case in principle.
The approach taken here is to have two GSettings entries for most keys:
- One list of user defined values, g-c-c modifies the first (this requires no changes in g-c-c)
- One list of system defined values (postfixed
-static
) with all "hardcoded" keys that the user should generally not modify so that they will update when the default changes
AC:
-
Figure out a way to deal with one-shot vs. repeating events (see !34 (merged), #68 (closed); probably keep hardcoded) -
Create new schema configuration -
Add migration code to g-s-d -
Update g-c-c to modify first binding in list (no change is needed, it modifies the first entry if it is a list) -
Check that g-c-c will reset the first entry rather than delete it -
Migrate all/most of the hardcoded g-s-d media keys into settings -
Add some/all of the new keys to g-c-c to enable users to bind further keybindings to them