aboutsummaryrefslogtreecommitdiff
path: root/data
diff options
context:
space:
mode:
authorJoel Challis <git@zvecr.com>2021-08-18 21:52:41 +0100
committerGitHub <noreply@github.com>2021-08-18 21:52:41 +0100
commit2e734fb6b9e3480854b794218d381559aab431b7 (patch)
tree2bec5639b3dd200c640cd8c76b8c2b614f67e34b /data
parent10fab4ec077354f41d19f01798a49e5864a189cd (diff)
downloadqmk_firmware-2e734fb6b9e3480854b794218d381559aab431b7.tar.gz
qmk_firmware-2e734fb6b9e3480854b794218d381559aab431b7.zip
Add config.h and rules.mk support for data driven keymaps (#12859)
* Add config.h and rules.mk support for data driven keymaps * tidy up after rebase * Rename key as it can contain more than just keyboard overrides * tidy up after rebase * Add validation
Diffstat (limited to 'data')
-rw-r--r--data/mappings/info_config.json2
-rw-r--r--data/schemas/keymap.jsonschema24
2 files changed, 26 insertions, 0 deletions
diff --git a/data/mappings/info_config.json b/data/mappings/info_config.json
index 18477f912..72bb0f4a1 100644
--- a/data/mappings/info_config.json
+++ b/data/mappings/info_config.json
@@ -18,6 +18,8 @@
18 "DESCRIPTION": {"info_key": "keyboard_folder", "to_json": false}, 18 "DESCRIPTION": {"info_key": "keyboard_folder", "to_json": false},
19 "DIODE_DIRECTION": {"info_key": "diode_direction"}, 19 "DIODE_DIRECTION": {"info_key": "diode_direction"},
20 "FORCE_NKRO": {"info_key": "usb.force_nkro", "value_type": "bool"}, 20 "FORCE_NKRO": {"info_key": "usb.force_nkro", "value_type": "bool"},
21 "DYNAMIC_KEYMAP_EEPROM_MAX_ADDR": {"info_key": "dynamic_keymap.eeprom_max_addr", "value_type": "int"},
22 "DYNAMIC_KEYMAP_LAYER_COUNT": {"info_key": "dynamic_keymap.layer_count", "value_type": "int"},
21 "IGNORE_MOD_TAP_INTERRUPT": {"info_key": "tapping.ignore_mod_tap_interrupt", "value_type": "bool"}, 23 "IGNORE_MOD_TAP_INTERRUPT": {"info_key": "tapping.ignore_mod_tap_interrupt", "value_type": "bool"},
22 "IGNORE_MOD_TAP_INTERRUPT_PER_KEY": {"info_key": "tapping.ignore_mod_tap_interrupt_per_key", "value_type": "bool"}, 24 "IGNORE_MOD_TAP_INTERRUPT_PER_KEY": {"info_key": "tapping.ignore_mod_tap_interrupt_per_key", "value_type": "bool"},
23 "LAYOUTS": {"info_key": "layout_aliases", "value_type": "mapping"}, 25 "LAYOUTS": {"info_key": "layout_aliases", "value_type": "mapping"},
diff --git a/data/schemas/keymap.jsonschema b/data/schemas/keymap.jsonschema
new file mode 100644
index 000000000..35c5b5c98
--- /dev/null
+++ b/data/schemas/keymap.jsonschema
@@ -0,0 +1,24 @@
1{
2 "$schema": "http://json-schema.org/draft-07/schema#",
3 "$id": "qmk.keymap.v1",
4 "title": "Keymap Information",
5 "type": "object",
6 "properties": {
7 "author": {"$ref": "qmk.definitions.v1#/text_identifier"},
8 "keyboard": {"$ref": "qmk.definitions.v1#/text_identifier"},
9 "keymap": {"$ref": "qmk.definitions.v1#/text_identifier"},
10 "layout": {"$ref": "qmk.definitions.v1#/layout_macro"},
11 "layers": {
12 "type": "array",
13 "items": {
14 "type": "array",
15 "items": {"type": "string"}
16 }
17 },
18 "config": {"$ref": "qmk.keyboard.v1"},
19 "notes": {
20 "type": "string",
21 "description": "asdf"
22 }
23 }
24} \ No newline at end of file