diff options
author | Joel Challis <git@zvecr.com> | 2021-08-18 21:52:41 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-08-18 21:52:41 +0100 |
commit | 2e734fb6b9e3480854b794218d381559aab431b7 (patch) | |
tree | 2bec5639b3dd200c640cd8c76b8c2b614f67e34b /data | |
parent | 10fab4ec077354f41d19f01798a49e5864a189cd (diff) | |
download | qmk_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.json | 2 | ||||
-rw-r--r-- | data/schemas/keymap.jsonschema | 24 |
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 | ||