From 65315a8315ce5cb6b5f3c1c16f6c40a45f54c0ef Mon Sep 17 00:00:00 2001 From: Joel Challis Date: Thu, 20 Aug 2026 00:35:07 +0100 Subject: [PATCH] Resolve recursive keyboard aliases when locating userspace keymaps (#26402) --- lib/python/qmk/keyboard.py | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) diff --git a/lib/python/qmk/keyboard.py b/lib/python/qmk/keyboard.py index 46fda8e74fd..151f1df6785 100644 --- a/lib/python/qmk/keyboard.py +++ b/lib/python/qmk/keyboard.py @@ -140,15 +140,21 @@ def keyboard_aliases(keyboard): Includes the keyboard itself. """ - aliases = json_load(Path('data/mappings/keyboard_aliases.hjson')) + aliases = keyboard_alias_definitions() - if keyboard in aliases: - keyboard = aliases[keyboard].get('target', keyboard) + def _resolve_recursive_aliases(kb): + ret = set() + for found in filter(lambda k: aliases[k].get('target', '') == kb, aliases.keys()): + ret.update(_resolve_recursive_aliases(found)) + ret.add(found) + return ret - keyboards = set(filter(lambda k: aliases[k].get('target', '') == keyboard, aliases.keys())) + keyboard = keyboard_folder(keyboard) + + keyboards = _resolve_recursive_aliases(keyboard) keyboards.add(keyboard) - keyboards = list(sorted(keyboards)) - return keyboards + + return list(sorted(keyboards)) def keyboard_folder_or_all(keyboard):