From f0b04b2a3a3b21cbb833a26de6f68fac100b1b94 Mon Sep 17 00:00:00 2001 From: Joel Challis Date: Mon, 14 Jul 2025 14:47:21 +0100 Subject: [PATCH] Only userspace should be searched for keyboard aliases when locating keymaps (#25477) --- lib/python/qmk/keymap.py | 15 ++++++--------- 1 file changed, 6 insertions(+), 9 deletions(-) diff --git a/lib/python/qmk/keymap.py b/lib/python/qmk/keymap.py index b7138aa4a1a..4cf07f59d6a 100644 --- a/lib/python/qmk/keymap.py +++ b/lib/python/qmk/keymap.py @@ -343,24 +343,21 @@ def locate_keymap(keyboard, keymap, force_layout=None): # Check the keyboard folder first, last match wins keymap_path = '' - search_dirs = [QMK_FIRMWARE] - keyboard_dirs = [keyboard_folder(keyboard)] + search_conf = {QMK_FIRMWARE: [keyboard_folder(keyboard)]} if HAS_QMK_USERSPACE: # When we've got userspace, check there _last_ as we want them to override anything in the main repo. - search_dirs.append(QMK_USERSPACE) # We also want to search for any aliases as QMK's folder structure may have changed, with an alias, but the user # hasn't updated their keymap location yet. - keyboard_dirs.extend(keyboard_aliases(keyboard)) - keyboard_dirs = list(set(keyboard_dirs)) + search_conf[QMK_USERSPACE] = list(set([keyboard_folder(keyboard), *keyboard_aliases(keyboard)])) - for search_dir in search_dirs: + for search_dir, keyboard_dirs in search_conf.items(): for keyboard_dir in keyboard_dirs: checked_dirs = '' - for dir in keyboard_dir.split('/'): + for folder_name in keyboard_dir.split('/'): if checked_dirs: - checked_dirs = '/'.join((checked_dirs, dir)) + checked_dirs = '/'.join((checked_dirs, folder_name)) else: - checked_dirs = dir + checked_dirs = folder_name keymap_dir = Path(search_dir) / Path('keyboards') / checked_dirs / 'keymaps'