Skip to content

Add dbus interface for accessing key bindings

Ian Douglas Scott requested to merge ids1024/mutter:keybindings-dbus into main

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.

Merge request reports