aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorQMK Bot <hello@qmk.fm>2021-10-04 16:26:57 +0000
committerQMK Bot <hello@qmk.fm>2021-10-04 16:26:57 +0000
commit4af4ef3428d8ca39bcd3a29d2bebdf84ebe417ec (patch)
treed7876b042b49f475ad384ee46690095a83998ff8
parent8f3ea25ddac4fcca35e74330938a701e29da3e92 (diff)
parent20f81af98af26d3e15277e402a364a513f986aa6 (diff)
downloadqmk_firmware-4af4ef3428d8ca39bcd3a29d2bebdf84ebe417ec.tar.gz
qmk_firmware-4af4ef3428d8ca39bcd3a29d2bebdf84ebe417ec.zip
Merge remote-tracking branch 'origin/master' into develop
-rw-r--r--Makefile31
-rw-r--r--lib/python/qmk/cli/__init__.py1
-rwxr-xr-xlib/python/qmk/cli/generate/rules_mk.py2
-rw-r--r--lib/python/qmk/cli/list/layouts.py18
4 files changed, 21 insertions, 31 deletions
diff --git a/Makefile b/Makefile
index 269be720c..041b4d15a 100644
--- a/Makefile
+++ b/Makefile
@@ -299,37 +299,8 @@ define PARSE_KEYBOARD
299 KEYMAPS += $$(notdir $$(patsubst %/.,%,$$(wildcard $(ROOT_DIR)/keyboards/$$(KEYBOARD_FOLDER_PATH_3)/keymaps/*/.))) 299 KEYMAPS += $$(notdir $$(patsubst %/.,%,$$(wildcard $(ROOT_DIR)/keyboards/$$(KEYBOARD_FOLDER_PATH_3)/keymaps/*/.)))
300 KEYMAPS += $$(notdir $$(patsubst %/.,%,$$(wildcard $(ROOT_DIR)/keyboards/$$(KEYBOARD_FOLDER_PATH_4)/keymaps/*/.))) 300 KEYMAPS += $$(notdir $$(patsubst %/.,%,$$(wildcard $(ROOT_DIR)/keyboards/$$(KEYBOARD_FOLDER_PATH_4)/keymaps/*/.)))
301 KEYMAPS += $$(notdir $$(patsubst %/.,%,$$(wildcard $(ROOT_DIR)/keyboards/$$(KEYBOARD_FOLDER_PATH_5)/keymaps/*/.))) 301 KEYMAPS += $$(notdir $$(patsubst %/.,%,$$(wildcard $(ROOT_DIR)/keyboards/$$(KEYBOARD_FOLDER_PATH_5)/keymaps/*/.)))
302 # this might be needed, but in a different form
303 #KEYMAPS := $$(sort $$(filter-out $$(KEYBOARD_FOLDER_1) $$(KEYBOARD_FOLDER_2) \
304 $$(KEYBOARD_FOLDER_3) $$(KEYBOARD_FOLDER_4) $$(KEYBOARD_FOLDER_5), $$(KEYMAPS)))
305
306 KEYBOARD_LAYOUTS :=
307 ifneq ("$$(wildcard $(ROOT_DIR)/keyboards/$$(KEYBOARD_FOLDER_PATH_5)/rules.mk)","")
308 LAYOUTS :=
309 $$(eval include $(ROOT_DIR)/keyboards/$$(KEYBOARD_FOLDER_PATH_5)/rules.mk)
310 KEYBOARD_LAYOUTS := $$(sort $$(LAYOUTS) $$(KEYBOARD_LAYOUTS))
311 endif
312 ifneq ("$$(wildcard $(ROOT_DIR)/keyboards/$$(KEYBOARD_FOLDER_PATH_4)/rules.mk)","")
313 LAYOUTS :=
314 $$(eval include $(ROOT_DIR)/keyboards/$$(KEYBOARD_FOLDER_PATH_4)/rules.mk)
315 KEYBOARD_LAYOUTS := $$(sort $$(LAYOUTS) $$(KEYBOARD_LAYOUTS))
316 endif
317 ifneq ("$$(wildcard $(ROOT_DIR)/keyboards/$$(KEYBOARD_FOLDER_PATH_3)/rules.mk)","")
318 LAYOUTS :=
319 $$(eval include $(ROOT_DIR)/keyboards/$$(KEYBOARD_FOLDER_PATH_3)/rules.mk)
320 KEYBOARD_LAYOUTS := $$(sort $$(LAYOUTS) $$(KEYBOARD_LAYOUTS))
321 endif
322 ifneq ("$$(wildcard $(ROOT_DIR)/keyboards/$$(KEYBOARD_FOLDER_PATH_2)/rules.mk)","")
323 LAYOUTS :=
324 $$(eval include $(ROOT_DIR)/keyboards/$$(KEYBOARD_FOLDER_PATH_2)/rules.mk)
325 KEYBOARD_LAYOUTS := $$(sort $$(LAYOUTS) $$(KEYBOARD_LAYOUTS))
326 endif
327 ifneq ("$$(wildcard $(ROOT_DIR)/keyboards/$$(KEYBOARD_FOLDER_PATH_1)/rules.mk)","")
328 LAYOUTS :=
329 $$(eval include $(ROOT_DIR)/keyboards/$$(KEYBOARD_FOLDER_PATH_1)/rules.mk)
330 KEYBOARD_LAYOUTS := $$(sort $$(LAYOUTS) $$(KEYBOARD_LAYOUTS))
331 endif
332 302
303 KEYBOARD_LAYOUTS := $(shell $(QMK_BIN) list-layouts --keyboard $1)
333 LAYOUT_KEYMAPS := 304 LAYOUT_KEYMAPS :=
334 $$(foreach LAYOUT,$$(KEYBOARD_LAYOUTS),$$(eval LAYOUT_KEYMAPS += $$(notdir $$(patsubst %/.,%,$$(wildcard $(ROOT_DIR)/layouts/*/$$(LAYOUT)/*/.))))) 305 $$(foreach LAYOUT,$$(KEYBOARD_LAYOUTS),$$(eval LAYOUT_KEYMAPS += $$(notdir $$(patsubst %/.,%,$$(wildcard $(ROOT_DIR)/layouts/*/$$(LAYOUT)/*/.)))))
335 306
diff --git a/lib/python/qmk/cli/__init__.py b/lib/python/qmk/cli/__init__.py
index 944938824..094ea80b8 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"""
3from milc import cli
4
5from qmk.decorators import automagic_keyboard
6from qmk.keyboard import keyboard_completer, keyboard_folder
7from 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
13def 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)