diff options
Diffstat (limited to 'users/dennytom/chording_engine/keymap_def.schema.json')
-rw-r--r-- | users/dennytom/chording_engine/keymap_def.schema.json | 337 |
1 files changed, 0 insertions, 337 deletions
diff --git a/users/dennytom/chording_engine/keymap_def.schema.json b/users/dennytom/chording_engine/keymap_def.schema.json deleted file mode 100644 index 9f9a8c5cbc..0000000000 --- a/users/dennytom/chording_engine/keymap_def.schema.json +++ /dev/null @@ -1,337 +0,0 @@ -{ - "definitions": {}, - "$schema": "http://json-schema.org/draft-07/schema#", - "type": "object", - "title": "The Keymap definition", - "required": [ - "keys", - "parameters", - "layers", - "chord_sets", - "pseudolayers", - "leader_sequences", - "extra_code", - "extra_dependencies" - ], - "properties": { - "keys": { - "type": "array", - "title": "The Internal Keycodes", - "description": "Name Keycodes for the Chording Engine. These can be any string except already valid QMK keycodes.", - "items": { - "type": "string", - "title": "Individual Keycode", - "examples": [ - "L1", - "R1", - "TOP1", - "THUMB_3", - "Bottom_6" - ] - } - }, - "parameters": { - "type": "object", - "title": "Keyboard Parameters", - "description": "Keyboard, user and layout specific parameters like timers, max length for buffers and default pseudolayer.", - "required": [ - "layout_function_name", - "chord_timeout", - "dance_timeout", - "leader_timeout", - "tap_timeout", - "command_max_length", - "leader_max_length", - "dynamic_macro_max_length", - "string_max_length", - "long_press_multiplier", - "default_pseudolayer" - ], - "properties": { - "layout_function_name": { - "type": "string", - "examples": [ - "LAYOUT_ginny", - "" - ] - }, - "chord_timeout": { - "type": "integer", - "title": "The Chord Timeout", - "description": "The time in ms you have to press additional keys before the engine assumes you finished pressing keys that are part of a chord.", - "default": 100 - }, - "dance_timeout": { - "type": "integer", - "title": "The Dance Timeout", - "description": "The time in ms you have to repeatedly activate a chord before the engine assumes you finished a dance.", - "default": 200 - }, - "leader_timeout": { - "type": "integer", - "title": "The Leader Timeout", - "description": "The time in ms you have to activate additional chords before the engine assumes you finished adding chords to a leader sequence.", - "default": 750 - }, - "tap_timeout": { - "type": "integer", - "title": "The Tap Timeout", - "description": "The time in ms you have to finish pressing a chord before the engine assumes that you didn't just tap it but are holding it down.", - "default": 50 - }, - "command_max_length": { - "type": "integer", - "title": "Command Max Length", - "description": "The maximum length for chords buffered in command mode.", - "default": 5 - }, - "leader_max_length": { - "type": "integer", - "title": "Leader Max Length", - "description": "The maximum length of leader sequences you can define in your keymap", - "default": 5 - }, - "dynamic_macro_max_length": { - "type": "integer", - "title": "Dynamic Macro Max Length", - "description": "The maximum number of chords (including Dynamic Macro Next) you can record to a Dynamic Macro", - "default": 20 - }, - "string_max_length": { - "type": "integer", - "title": "String Max Length", - "description": "The maximum length of a string that the STR() chord can accept.", - "default": 16 - }, - "long_press_multiplier": { - "type": "integer", - "title": "Long Press Multiplier", - "description": "How many times does the chord timer have expire before a chord is registered as not only held but in a long press (for example for Autoshift). Has to be integer.", - "default": 3 - }, - "default_pseudolayer": { - "type": "string", - "title": "Default Pseudolayer", - "description": "Which pseudolayer should be active when the keyboard starts / restarts.", - "examples": [ - "BASE", - "QWERTY" - ] - } - } - }, - "layers": { - "type": "array", - "title": "QMK Layers", - "description": "The layers QMK needs to know about. Can contain chording engine's internal keycodes or QMK's keycodes. Do not define chords here, those belong in pseudolayers.", - "minItems": 1, - "uniqueItems": false, - "items": { - "type": "object", - "title": "Individual Layers", - "required": [ - "type" - ], - "properties": { - "type": { - "type": "string", - "title": "Type of Individual Layers", - "description": "Auto layer fills all keycodes to be chording engine's internal keycodes, manual let's you place internal and QMK's keycodes however you wish.", - "examples": [ - "auto", - "manual" - ] - }, - "keycodes": { - "type": "array", - "title": "Individual Chord", - "description": "A list of of keys that need to be pressed to activate this chord", - "items": { - "type": "string", - "title": "Individual Keycodes", - "description": "A keycode that is a part of the individual chord. Has to be an internal keycode." - } - } - } - } - }, - "chord_sets": { - "type": "array", - "title": "Chord Sets Definitions", - "description": "Describes predefined sets of chords to ease defining a number of chords in a pseudolayer.", - "items": { - "type": "object", - "required": [ - "name", - "chords" - ], - "properties": { - "name": { - "type": "string", - "title": "Name of the Set", - "examples": [ - "rows", - "asetniop" - ] - }, - "chords": { - "type": "array", - "title": "Chords", - "description": "List of all chords in this set", - "minItems": 1, - "uniqueItems": true, - "items": { - "type": "array", - "title": "Individual Chord", - "description": "A list of of keys that need to be pressed to activate this chord", - "items": { - "type": "string", - "title": "Individual Keycodes", - "description": "A keycode that is a part of the individual chord. Has to be an internal keycode." - } - } - } - } - } - }, - "pseudolayers": { - "type": "array", - "title": "Pseudolayers", - "description": "The pseudolayers holding the chords to be processed by the chording engine.", - "minItems": 1, - "uniqueItems": true, - "items": { - "type": "object", - "required": [ - "name" - ], - "properties": { - "name": { - "type": "string", - "title": "Name of the Pseudolayer", - "default": null, - "examples": [ - "ALWAYS_ON", - "QWERTY" - ] - }, - "chords": { - "type": "array", - "title": "Chords", - "description": "List of chords belonging on the pseudolayer.", - "items": { - "type": "object", - "required": [ - "type" - ], - "properties": { - "type": { - "type": "string", - "title": "Type of the chord array", - "description": "Defines how this objects describes one or more chords.", - "examples": [ - "visual_array", - "visual", - "simple", - "chord_set" - ] - }, - "keys": { - "type": "array", - "title": "Subset of keys", - "description": "Subset of internal keycodes that will be used when defining the chords. For visual_array type only.", - "examples": [ - "[\"L1\", \"L2\", \"L3\", \"L4\", \"R1\", \"R2\", \"R3\", \"R4\"]" - ], - "items": { - "type": "string" - } - }, - "dictionary": { - "type": "array", - "title": "Dictionary", - "description": "A table. Each row defines in a visual way which keys have to be pressed and what is the desired outcome. For visual_array type only.", - "items": { - "type": "array", - "items": { - "type": "string", - "examples": [ - "[\"X"\, \" "\, \" "\, \"X"\, \"X"\, \" "\, \" "\, \"X"\, \"MO(BASE, NUM)\"] - ] - } - } - }, - "keycode": { - "type": "string", - "title": "Keycode", - "description": "A keycode to be assigned to the chord when it is registered. For simple and visual types only." - }, - "set": { - "type": "string", - "title": "Chord set", - "description": "Name of the chord set to be used. Has to be one already defined in the chord_sets array. For chord_set type only." - }, - "keycodes": { - "type": "array", - "title": "Keycodes", - "description": "List of keycodes to be assigned to each chord when it is registered. For set type only.", - "items": { - "type": "string" - } - }, - "chord": { - "type": "array", - "title": "Chord", - "description": "Array of \"X\"'s and \" \"'s that shows which keys have to be pressed to activate the chord. For visual type only ", - "items": { - "type": "string" - } - } - } - } - } - } - } - }, - "leader_sequences": { - "type": "array", - "items": { - "type": "object", - "properties": { - "name": { - "type": "string", - "examples": ["fn_L1"] - }, - "function": { - "type": "string", - "description": "C code the sequence should run. Instead of here, can be defined in extra_dependencies or extra_code", - "examples": ["void fn_L1(void) { SEND(KC_LCTL); SEND(KC_LALT); SEND(KC_DEL); }"] - }, - "sequence": { - "type": "array", - "items": { - "type": "string" - }, - "examples": [["KC_Q", "KC_Z"]] - } - } - } - }, - "extra_code": { - "type": "string", - "label": "Extra Code", - "description": "C code to be inserted into the generated keymap", - "examples": ["void fn_L1(void) {\n SEND(KC_LCTL);\n SEND(KC_LALT);\n SEND(KC_DEL);\n}\n"], - "default": "" - }, - "extra_dependencies": { - "type": "array", - "label": "Extra Dependencies", - "description": "List of files to be #include'd in the generated keymap", - "examples": [ - "[\"user_functions.c\"]" - ], - "default": "" - } - } -}
\ No newline at end of file |