summaryrefslogtreecommitdiff
path: root/lib/python/qmk
diff options
context:
space:
mode:
Diffstat (limited to 'lib/python/qmk')
-rw-r--r--lib/python/qmk/keymap.py15
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