summary refs log tree commit diff
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)
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 18477f9129..72bb0f4a1c 100644
--- a/data/mappings/info_config.json
+++ b/data/mappings/info_config.json
@@ -18,6 +18,8 @@
     "DESCRIPTION": {"info_key": "keyboard_folder", "to_json": false},
     "DIODE_DIRECTION": {"info_key": "diode_direction"},
     "FORCE_NKRO": {"info_key": "usb.force_nkro", "value_type": "bool"},
+    "DYNAMIC_KEYMAP_EEPROM_MAX_ADDR": {"info_key": "dynamic_keymap.eeprom_max_addr", "value_type": "int"},
+    "DYNAMIC_KEYMAP_LAYER_COUNT": {"info_key": "dynamic_keymap.layer_count", "value_type": "int"},
     "IGNORE_MOD_TAP_INTERRUPT": {"info_key": "tapping.ignore_mod_tap_interrupt", "value_type": "bool"},
     "IGNORE_MOD_TAP_INTERRUPT_PER_KEY": {"info_key": "tapping.ignore_mod_tap_interrupt_per_key", "value_type": "bool"},
     "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 0000000000..35c5b5c98e
--- /dev/null
+++ b/data/schemas/keymap.jsonschema
@@ -0,0 +1,24 @@
+{
+    "$schema": "http://json-schema.org/draft-07/schema#",
+    "$id": "qmk.keymap.v1",
+    "title": "Keymap Information",
+    "type": "object",
+    "properties": {
+        "author": {"$ref": "qmk.definitions.v1#/text_identifier"},
+        "keyboard": {"$ref": "qmk.definitions.v1#/text_identifier"},
+        "keymap": {"$ref": "qmk.definitions.v1#/text_identifier"},
+        "layout": {"$ref": "qmk.definitions.v1#/layout_macro"},
+        "layers": {
+            "type": "array",
+            "items": {
+                "type": "array",
+                "items": {"type": "string"}
+            }
+        },
+        "config": {"$ref": "qmk.keyboard.v1"},
+        "notes": {
+            "type": "string",
+            "description": "asdf"
+        }
+    }
+}
\ No newline at end of file