summaryrefslogtreecommitdiff
path: root/data/schemas
diff options
context:
space:
mode:
authorZach White <skullydazed@gmail.com>2021-11-22 11:11:35 -0800
committerGitHub <noreply@github.com>2021-11-22 11:11:35 -0800
commit08ce0142bad40f22d05d33fdef8a7c8907154e96 (patch)
tree5b5da4650a76ec902a550e2719b79ffc2a73d74d /data/schemas
parent8181b155dbfd07561200b30b52a4046f2da92248 (diff)
downloadqmk_firmware-08ce0142bad40f22d05d33fdef8a7c8907154e96.tar.gz
qmk_firmware-08ce0142bad40f22d05d33fdef8a7c8907154e96.zip
Macros in JSON keymaps (#14374)
* macros in json keymaps * add advanced macro support to json * add a note about escaping macro strings * add simple examples * format json * add support for language specific keymap extras * switch to dictionaries instead of inline text for macros * use SS_TAP on the innermost tap keycode * add the new macro format to the schema * document the macro limit * add the json keyword for syntax highlighting * fix format that vscode screwed up * Update feature_macros.md * add tests for macros * change ding to beep * add json support for SENDSTRING_BELL * update doc based on feedback from sigprof * document host_layout * remove unused var * improve carriage return handling * support tab characters as well * Update docs/feature_macros.md Co-authored-by: Nick Brassel <nick@tzarc.org> * escape backslash characters * format * flake8 * Update quantum/quantum_keycodes.h Co-authored-by: Nick Brassel <nick@tzarc.org>
Diffstat (limited to 'data/schemas')
-rw-r--r--data/schemas/keyboard.jsonschema1
-rw-r--r--data/schemas/keymap.jsonschema35
2 files changed, 35 insertions, 1 deletions
diff --git a/data/schemas/keyboard.jsonschema b/data/schemas/keyboard.jsonschema
index 65d44c94d2..37a0643ab2 100644
--- a/data/schemas/keyboard.jsonschema
+++ b/data/schemas/keyboard.jsonschema
@@ -19,6 +19,7 @@
"type": "object",
"additionalProperties": false,
"properties": {
+ "macro_beep": {"type": "boolean"},
"pins": {"$ref": "qmk.definitions.v1#/mcu_pin_array"},
"voices": {"type": "boolean"}
}
diff --git a/data/schemas/keymap.jsonschema b/data/schemas/keymap.jsonschema
index a4bdab966b..faa250a942 100644
--- a/data/schemas/keymap.jsonschema
+++ b/data/schemas/keymap.jsonschema
@@ -5,6 +5,7 @@
"type": "object",
"properties": {
"author": {"type": "string"},
+ "host_language": {"$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"},
@@ -15,10 +16,42 @@
"items": {"type": "string"}
}
},
+ "macros": {
+ "type": "array",
+ "items": {
+ "type": "array",
+ "items": {
+ "oneOf": [
+ {
+ "type": "string"
+ },
+ {
+ "type": "object",
+ "additionalProperties": false,
+ "properties": {
+ "action": {
+ "type": "string",
+ "enum": ['beep', 'delay', 'down', 'tap', 'up']
+ },
+ "keycodes": {
+ "type": "array",
+ "items": {
+ "$ref": "qmk.definitions.v1#/text_identifier"
+ }
+ },
+ "duration": {
+ "$ref": "qmk.definitions.v1#/unsigned_int"
+ }
+ }
+ }
+ ]
+ }
+ }
+ },
"config": {"$ref": "qmk.keyboard.v1"},
"notes": {
"type": "string",
"description": "asdf"
}
}
-} \ No newline at end of file
+}