summaryrefslogtreecommitdiff
path: root/users/dennytom/chording_engine/keymap_def.schema.json
diff options
context:
space:
mode:
Diffstat (limited to 'users/dennytom/chording_engine/keymap_def.schema.json')
-rw-r--r--users/dennytom/chording_engine/keymap_def.schema.json337
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