 08ce0142ba
			
		
	
	
		08ce0142ba
		
			
		
	
	
	
	
		
			
			* 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>
		
			
				
	
	
		
			57 lines
		
	
	
	
		
			2 KiB
		
	
	
	
		
			Text
		
	
	
	
	
	
			
		
		
	
	
			57 lines
		
	
	
	
		
			2 KiB
		
	
	
	
		
			Text
		
	
	
	
	
	
| {
 | |
|     "$schema": "http://json-schema.org/draft-07/schema#",
 | |
|     "$id": "qmk.keymap.v1",
 | |
|     "title": "Keymap Information",
 | |
|     "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"},
 | |
|         "layers": {
 | |
|             "type": "array",
 | |
|             "items": {
 | |
|                 "type": "array",
 | |
|                 "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"
 | |
|         }
 | |
|     }
 | |
| }
 |