diff --git a/osu.Game/Input/RealmKeyBindingStore.cs b/osu.Game/Input/RealmKeyBindingStore.cs
index 752e254a43..f81d701e62 100644
--- a/osu.Game/Input/RealmKeyBindingStore.cs
+++ b/osu.Game/Input/RealmKeyBindingStore.cs
@@ -30,6 +30,23 @@ namespace osu.Game.Input
}
}
+ ///
+ /// Retrieve all user-defined key combinations (in a format that can be displayed) for a specific action.
+ ///
+ /// The action to lookup.
+ /// A set of display strings for all the user's key configuration for the action.
+ public IEnumerable GetReadableKeyCombinationsFor(GlobalAction globalAction)
+ {
+ foreach (var action in Query().Where(b => (GlobalAction)b.KeyBinding.Action == globalAction))
+ {
+ string str = action.KeyBinding.KeyCombination.ReadableString();
+
+ // even if found, the readable string may be empty for an unbound action.
+ if (str.Length > 0)
+ yield return str;
+ }
+ }
+
public void Register(KeyBindingContainer manager) => insertDefaults(manager.DefaultKeyBindings);
private void insertDefaults(IEnumerable defaults, int? rulesetId = null, int? variant = null)