diff options
| author | Joel Challis <git@zvecr.com> | 2025-07-14 14:47:21 +0100 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2025-07-14 14:47:21 +0100 |
| commit | f0b04b2a3a3b21cbb833a26de6f68fac100b1b94 (patch) | |
| tree | 878cf5002978a441e2b557245747cf5b3b3d9244 /lib/python | |
| parent | 20555f9a3366abf9d4246e00ad032590ff16236a (diff) | |
Only userspace should be searched for keyboard aliases when locating keymaps (#25477)
Diffstat (limited to 'lib/python')
| -rw-r--r-- | lib/python/qmk/keymap.py | 15 |
1 files changed, 6 insertions, 9 deletions
diff --git a/lib/python/qmk/keymap.py b/lib/python/qmk/keymap.py index b7138aa4a1..4cf07f59d6 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): | |||
| 343 | # Check the keyboard folder first, last match wins | 343 | # Check the keyboard folder first, last match wins |
| 344 | keymap_path = '' | 344 | keymap_path = '' |
| 345 | 345 | ||
| 346 | search_dirs = [QMK_FIRMWARE] | 346 | search_conf = {QMK_FIRMWARE: [keyboard_folder(keyboard)]} |
| 347 | keyboard_dirs = [keyboard_folder(keyboard)] | ||
| 348 | if HAS_QMK_USERSPACE: | 347 | if HAS_QMK_USERSPACE: |
| 349 | # When we've got userspace, check there _last_ as we want them to override anything in the main repo. | 348 | # When we've got userspace, check there _last_ as we want them to override anything in the main repo. |
| 350 | search_dirs.append(QMK_USERSPACE) | ||
| 351 | # We also want to search for any aliases as QMK's folder structure may have changed, with an alias, but the user | 349 | # We also want to search for any aliases as QMK's folder structure may have changed, with an alias, but the user |
| 352 | # hasn't updated their keymap location yet. | 350 | # hasn't updated their keymap location yet. |
| 353 | keyboard_dirs.extend(keyboard_aliases(keyboard)) | 351 | search_conf[QMK_USERSPACE] = list(set([keyboard_folder(keyboard), *keyboard_aliases(keyboard)])) |
| 354 | keyboard_dirs = list(set(keyboard_dirs)) | ||
| 355 | 352 | ||
| 356 | for search_dir in search_dirs: | 353 | for search_dir, keyboard_dirs in search_conf.items(): |
| 357 | for keyboard_dir in keyboard_dirs: | 354 | for keyboard_dir in keyboard_dirs: |
| 358 | checked_dirs = '' | 355 | checked_dirs = '' |
| 359 | for dir in keyboard_dir.split('/'): | 356 | for folder_name in keyboard_dir.split('/'): |
| 360 | if checked_dirs: | 357 | if checked_dirs: |
| 361 | checked_dirs = '/'.join((checked_dirs, dir)) | 358 | checked_dirs = '/'.join((checked_dirs, folder_name)) |
| 362 | else: | 359 | else: |
| 363 | checked_dirs = dir | 360 | checked_dirs = folder_name |
| 364 | 361 | ||
| 365 | keymap_dir = Path(search_dir) / Path('keyboards') / checked_dirs / 'keymaps' | 362 | keymap_dir = Path(search_dir) / Path('keyboards') / checked_dirs / 'keymaps' |
| 366 | 363 | ||
