Add dbus interface for accessing key bindings
Mutter doesn't handle conflicting bindings very well. If two bindings are set to the same key combination, there is apparently random behavior as to which actually works. And the conflict is not communicated to the user.
Gnome Control Center is able to recognize conflicts, but only in bindings that are registered with it. It is unaware of the super+number bindings (gnome-shell#1250 (closed)), and of any bindings added by extensions.
By having Mutter expose this information over dbus, other components like Gnome Control Center can discover any active bindings, for conflict detection or for other purposes.
Gnome Shell could provide the dbus interface instead. But Gnome Shell doesn't currently keep track of what key bindings are registered, and just redirects register and unregister commands to Mutter. Since Mutter ultimately handles the bindings, it is the ultimate source of truth for what bindings are enabled.
This simply exposes (name, schema)
pairs for each binding. A client
can then use gsettings to determine what keys are bound, or to change
bindings.