diff options
-rw-r--r-- | Makefile | 31 | ||||
-rw-r--r-- | lib/python/qmk/cli/__init__.py | 1 | ||||
-rwxr-xr-x | lib/python/qmk/cli/generate/rules_mk.py | 2 | ||||
-rw-r--r-- | lib/python/qmk/cli/list/layouts.py | 18 |
4 files changed, 21 insertions, 31 deletions
@@ -303,37 +303,8 @@ define PARSE_KEYBOARD | |||
303 | KEYMAPS += $$(notdir $$(patsubst %/.,%,$$(wildcard $(ROOT_DIR)/keyboards/$$(KEYBOARD_FOLDER_PATH_3)/keymaps/*/.))) | 303 | KEYMAPS += $$(notdir $$(patsubst %/.,%,$$(wildcard $(ROOT_DIR)/keyboards/$$(KEYBOARD_FOLDER_PATH_3)/keymaps/*/.))) |
304 | KEYMAPS += $$(notdir $$(patsubst %/.,%,$$(wildcard $(ROOT_DIR)/keyboards/$$(KEYBOARD_FOLDER_PATH_4)/keymaps/*/.))) | 304 | KEYMAPS += $$(notdir $$(patsubst %/.,%,$$(wildcard $(ROOT_DIR)/keyboards/$$(KEYBOARD_FOLDER_PATH_4)/keymaps/*/.))) |
305 | KEYMAPS += $$(notdir $$(patsubst %/.,%,$$(wildcard $(ROOT_DIR)/keyboards/$$(KEYBOARD_FOLDER_PATH_5)/keymaps/*/.))) | 305 | KEYMAPS += $$(notdir $$(patsubst %/.,%,$$(wildcard $(ROOT_DIR)/keyboards/$$(KEYBOARD_FOLDER_PATH_5)/keymaps/*/.))) |
306 | # this might be needed, but in a different form | ||
307 | #KEYMAPS := $$(sort $$(filter-out $$(KEYBOARD_FOLDER_1) $$(KEYBOARD_FOLDER_2) \ | ||
308 | $$(KEYBOARD_FOLDER_3) $$(KEYBOARD_FOLDER_4) $$(KEYBOARD_FOLDER_5), $$(KEYMAPS))) | ||
309 | |||
310 | KEYBOARD_LAYOUTS := | ||
311 | ifneq ("$$(wildcard $(ROOT_DIR)/keyboards/$$(KEYBOARD_FOLDER_PATH_5)/rules.mk)","") | ||
312 | LAYOUTS := | ||
313 | $$(eval include $(ROOT_DIR)/keyboards/$$(KEYBOARD_FOLDER_PATH_5)/rules.mk) | ||
314 | KEYBOARD_LAYOUTS := $$(sort $$(LAYOUTS) $$(KEYBOARD_LAYOUTS)) | ||
315 | endif | ||
316 | ifneq ("$$(wildcard $(ROOT_DIR)/keyboards/$$(KEYBOARD_FOLDER_PATH_4)/rules.mk)","") | ||
317 | LAYOUTS := | ||
318 | $$(eval include $(ROOT_DIR)/keyboards/$$(KEYBOARD_FOLDER_PATH_4)/rules.mk) | ||
319 | KEYBOARD_LAYOUTS := $$(sort $$(LAYOUTS) $$(KEYBOARD_LAYOUTS)) | ||
320 | endif | ||
321 | ifneq ("$$(wildcard $(ROOT_DIR)/keyboards/$$(KEYBOARD_FOLDER_PATH_3)/rules.mk)","") | ||
322 | LAYOUTS := | ||
323 | $$(eval include $(ROOT_DIR)/keyboards/$$(KEYBOARD_FOLDER_PATH_3)/rules.mk) | ||
324 | KEYBOARD_LAYOUTS := $$(sort $$(LAYOUTS) $$(KEYBOARD_LAYOUTS)) | ||
325 | endif | ||
326 | ifneq ("$$(wildcard $(ROOT_DIR)/keyboards/$$(KEYBOARD_FOLDER_PATH_2)/rules.mk)","") | ||
327 | LAYOUTS := | ||
328 | $$(eval include $(ROOT_DIR)/keyboards/$$(KEYBOARD_FOLDER_PATH_2)/rules.mk) | ||
329 | KEYBOARD_LAYOUTS := $$(sort $$(LAYOUTS) $$(KEYBOARD_LAYOUTS)) | ||
330 | endif | ||
331 | ifneq ("$$(wildcard $(ROOT_DIR)/keyboards/$$(KEYBOARD_FOLDER_PATH_1)/rules.mk)","") | ||
332 | LAYOUTS := | ||
333 | $$(eval include $(ROOT_DIR)/keyboards/$$(KEYBOARD_FOLDER_PATH_1)/rules.mk) | ||
334 | KEYBOARD_LAYOUTS := $$(sort $$(LAYOUTS) $$(KEYBOARD_LAYOUTS)) | ||
335 | endif | ||
336 | 306 | ||
307 | KEYBOARD_LAYOUTS := $(shell $(QMK_BIN) list-layouts --keyboard $1) | ||
337 | LAYOUT_KEYMAPS := | 308 | LAYOUT_KEYMAPS := |
338 | $$(foreach LAYOUT,$$(KEYBOARD_LAYOUTS),$$(eval LAYOUT_KEYMAPS += $$(notdir $$(patsubst %/.,%,$$(wildcard $(ROOT_DIR)/layouts/*/$$(LAYOUT)/*/.))))) | 309 | $$(foreach LAYOUT,$$(KEYBOARD_LAYOUTS),$$(eval LAYOUT_KEYMAPS += $$(notdir $$(patsubst %/.,%,$$(wildcard $(ROOT_DIR)/layouts/*/$$(LAYOUT)/*/.))))) |
339 | 310 | ||
diff --git a/lib/python/qmk/cli/__init__.py b/lib/python/qmk/cli/__init__.py index f45e33240..539d03e2f 100644 --- a/lib/python/qmk/cli/__init__.py +++ b/lib/python/qmk/cli/__init__.py | |||
@@ -60,6 +60,7 @@ subcommands = [ | |||
60 | 'qmk.cli.lint', | 60 | 'qmk.cli.lint', |
61 | 'qmk.cli.list.keyboards', | 61 | 'qmk.cli.list.keyboards', |
62 | 'qmk.cli.list.keymaps', | 62 | 'qmk.cli.list.keymaps', |
63 | 'qmk.cli.list.layouts', | ||
63 | 'qmk.cli.kle2json', | 64 | 'qmk.cli.kle2json', |
64 | 'qmk.cli.multibuild', | 65 | 'qmk.cli.multibuild', |
65 | 'qmk.cli.new.keyboard', | 66 | 'qmk.cli.new.keyboard', |
diff --git a/lib/python/qmk/cli/generate/rules_mk.py b/lib/python/qmk/cli/generate/rules_mk.py index cdf17dfbc..dcaff29fa 100755 --- a/lib/python/qmk/cli/generate/rules_mk.py +++ b/lib/python/qmk/cli/generate/rules_mk.py | |||
@@ -26,7 +26,7 @@ def process_mapping_rule(kb_info_json, rules_key, info_dict): | |||
26 | except KeyError: | 26 | except KeyError: |
27 | return None | 27 | return None |
28 | 28 | ||
29 | if key_type == 'array': | 29 | if key_type in ['array', 'list']: |
30 | return f'{rules_key} ?= {" ".join(rules_value)}' | 30 | return f'{rules_key} ?= {" ".join(rules_value)}' |
31 | elif key_type == 'bool': | 31 | elif key_type == 'bool': |
32 | return f'{rules_key} ?= {"on" if rules_value else "off"}' | 32 | return f'{rules_key} ?= {"on" if rules_value else "off"}' |
diff --git a/lib/python/qmk/cli/list/layouts.py b/lib/python/qmk/cli/list/layouts.py new file mode 100644 index 000000000..8e07afeec --- /dev/null +++ b/lib/python/qmk/cli/list/layouts.py | |||
@@ -0,0 +1,18 @@ | |||
1 | """List the keymaps for a specific keyboard | ||
2 | """ | ||
3 | from milc import cli | ||
4 | |||
5 | from qmk.decorators import automagic_keyboard | ||
6 | from qmk.keyboard import keyboard_completer, keyboard_folder | ||
7 | from qmk.info import info_json | ||
8 | |||
9 | |||
10 | @cli.argument("-kb", "--keyboard", type=keyboard_folder, completer=keyboard_completer, help="Specify keyboard name. Example: monarch") | ||
11 | @cli.subcommand("List the layouts for a specific keyboard") | ||
12 | @automagic_keyboard | ||
13 | def list_layouts(cli): | ||
14 | """List the layouts for a specific keyboard | ||
15 | """ | ||
16 | info_data = info_json(cli.config.list_layouts.keyboard) | ||
17 | for name in sorted(info_data.get('community_layouts', [])): | ||
18 | print(name) | ||