diff options
author | Zach White <skullydazed@gmail.com> | 2021-11-22 11:11:35 -0800 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-11-22 11:11:35 -0800 |
commit | 08ce0142bad40f22d05d33fdef8a7c8907154e96 (patch) | |
tree | 5b5da4650a76ec902a550e2719b79ffc2a73d74d /data/schemas/keymap.jsonschema | |
parent | 8181b155dbfd07561200b30b52a4046f2da92248 (diff) |
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/keymap.jsonschema')
-rw-r--r-- | data/schemas/keymap.jsonschema | 35 |
1 files changed, 34 insertions, 1 deletions
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 +} |