summaryrefslogtreecommitdiffstats
path: root/data/schemas/keyboard.jsonschema
diff options
context:
space:
mode:
authorZach White <skullydazed@gmail.com>2021-08-16 15:33:30 -0700
committerGitHub <noreply@github.com>2021-08-16 23:33:30 +0100
commit8d9bfdc25437bb401985ba93b47edae2126e7fac (patch)
tree2439e7adde0bafd6af9a403c92c1a89384c3f6ea /data/schemas/keyboard.jsonschema
parentfac717c11cfa27780f2f9098383673784174141a (diff)
Add a lot more data to info.json (#13366)
* add some split data to info.json * add tags * add half of config_options.md to info.json * add support for designating master split * sort out split transport and primary * fix bad data in UNUSED_PINS * fixup custom transport * wip * allow for setting split right half keyboard matrix * add SPLIT_USB_DETECT * minor cleanup * fix an erroneous message * rework split.usb_detect * adding missing rgblight vars to info.json * add mouse_key to info.json * add all remaining options from docs/config_options.md * fix audio voices * qmk info: Change text output to use dotted notation * tweak layout output * resolve alias names * break out some functions to make flake8 happy * add a field for bootloader instructions * qmk generate-info-json: add a write-to-file argument Adds an argument that instructs qmk generate-info-json to write the output to a file instead of just to the terminal. * -arg_only, +action Because it was never my intention that one would have to specify a value for the argument that enables writing the file. * Bring qmk generate-info-json inline with other generate commands * pytest fixup * fix esca/getawayvan * fix data driven errors for bpiphany converters * features.force_nkro -> usb.force_nkro * split.primary->split.main * fix esca/getawayvan_f042 * fix the bpiphany converters for real * fix bpiphany/tiger_lily * Apply suggestions from code review Co-authored-by: Nick Brassel <nick@tzarc.org> * fix generate-api errors * fix matrix pin extraction for split boards * fix ploopyco/trackball_nano/rev1_001 Co-authored-by: James Young <18669334+noroadsleft@users.noreply.github.com> Co-authored-by: Nick Brassel <nick@tzarc.org>
Diffstat (limited to 'data/schemas/keyboard.jsonschema')
-rw-r--r--data/schemas/keyboard.jsonschema220
1 files changed, 216 insertions, 4 deletions
diff --git a/data/schemas/keyboard.jsonschema b/data/schemas/keyboard.jsonschema
index 3a3fa4b738..78c9a8d36b 100644
--- a/data/schemas/keyboard.jsonschema
+++ b/data/schemas/keyboard.jsonschema
@@ -15,6 +15,40 @@
"type": "string",
"enum": ["cortex-m0", "cortex-m0plus", "cortex-m3", "cortex-m4", "MKL26Z64", "MK20DX128", "MK20DX256", "MK66F18", "STM32F042", "STM32F072", "STM32F103", "STM32F303", "STM32F401", "STM32F407", "STM32F411", "STM32F446", "STM32G431", "STM32G474", "STM32L412", "STM32L422", "STM32L433", "STM32L443", "atmega16u2", "atmega32u2", "atmega16u4", "atmega32u4", "at90usb162", "at90usb646", "at90usb647", "at90usb1286", "at90usb1287", "atmega32a", "atmega328p", "atmega328", "attiny85", "unknown"]
},
+ "audio": {
+ "type": "object",
+ "additionalProperties": false,
+ "properties": {
+ "pins": {"$ref": "qmk.definitions.v1#/mcu_pin_array"},
+ "voices": {"type": "boolean"}
+ }
+ },
+ "backlight": {
+ "type": "object",
+ "additionalProperties": false,
+ "properties": {
+ "breathing": {"type": "boolean"},
+ "breathing_period": {"$ref": "qmk.definitions.v1#/unsigned_int_8"},
+ "levels": {
+ "type": "number",
+ "min": 1,
+ "max": 31,
+ "multipleOf": 1
+ },
+ "pin": {"$ref": "qmk.definitions.v1#/mcu_pin"}
+ }
+ },
+ "bluetooth": {
+ "type": "object",
+ "additionalProperties": false,
+ "properties": {
+ "driver": {
+ "type": "string",
+ "enum": ["AdafruitBLE", "RN42"]
+ },
+ "lto": {"type": "boolean"},
+ }
+ },
"board": {
"type": "string",
"minLength": 2,
@@ -22,13 +56,39 @@
},
"bootloader": {
"type": "string",
- "enum": ["atmel-dfu", "bootloadHID", "caterina", "halfkay", "kiibohd", "lufa-dfu", "lufa-ms", "micronucleus", "qmk-dfu", "qmk-hid", "stm32-dfu", "stm32duino", "unknown", "USBasp", "tinyuf2"]
+ "enum": ["atmel-dfu", "bootloadHID", "caterina", "halfkay", "kiibohd", "lufa-dfu", "lufa-ms", "micronucleus", "qmk-dfu", "qmk-hid", "stm32-dfu", "stm32duino", "unknown", "USBasp", "tinyuf2"],
+ },
+ "bootloader_instructions": {
+ "type": "string",
+ "description": "Instructions for putting the keyboard into a mode that allows for firmware flashing."
+ },
+ "build": {
+ "type": "object",
+ "additionalProperties": false,
+ "properties": {
+ "debounce_type": {
+ "type": "string",
+ "enum": ["custom", "eager_pk", "eager_pr", "sym_defer_pk", "sym_eager_pk"]
+ },
+ "firmware_format": {
+ "type": "string",
+ "enum": ["bin", "hex", "uf2"]
+ },
+ "lto": {"type": "boolean"},
+ }
},
"diode_direction": {
"type": "string",
"enum": ["COL2ROW", "ROW2COL"]
},
"debounce": {"$ref": "qmk.definitions.v1#/unsigned_int"},
+ "combo": {
+ "type": "object",
+ "properties": {
+ "count": {"$ref": "qmk.definitions.v1#/unsigned_int"},
+ "term": {"$ref": "qmk.definitions.v1#/unsigned_int"}
+ }
+ },
"community_layouts": {
"type": "array",
"items": {"$ref": "qmk.definitions.v1#/filename"}
@@ -90,16 +150,47 @@
}
}
},
+ "leader_key": {
+ "type": "object",
+ "properties": {
+ "timing": {"type": "boolean"},
+ "strict_processing": {"type": "boolean"},
+ "timeout": {"$ref": "qmk.definitions.v1#/unsigned_int"}
+ }
+ },
"matrix_pins": {
"type": "object",
"additionalProperties": false,
"properties": {
+ "custom": {"type": "boolean"},
+ "custom_lite": {"type": "boolean"},
+ "ghost": {"type": "boolean"},
+ "io_delay": {"$ref": "qmk.definitions.v1#/unsigned_int"},
"direct": {
"type": "array",
- "items": {$ref": "qmk.definitions.v1#/mcu_pin_array"}
+ "items": {"$ref": "qmk.definitions.v1#/mcu_pin_array"}
},
"cols": {"$ref": "qmk.definitions.v1#/mcu_pin_array"},
- "rows": {"$ref": "qmk.definitions.v1#/mcu_pin_array"}
+ "rows": {"$ref": "qmk.definitions.v1#/mcu_pin_array"},
+ "unused": {"$ref": "qmk.definitions.v1#/mcu_pin_array"}
+ }
+ },
+ "mouse_key": {
+ "type": "object",
+ "properties": {
+ "enabled": {"type": "boolean"},
+ "delay": {"$ref": "qmk.definitions.v1#/unsigned_int_8"}
+ "interval": {"$ref": "qmk.definitions.v1#/unsigned_int_8"}
+ "max_speed": {"$ref": "qmk.definitions.v1#/unsigned_int_8"}
+ "time_to_max": {"$ref": "qmk.definitions.v1#/unsigned_int_8"}
+ "wheel_delay": {"$ref": "qmk.definitions.v1#/unsigned_int_8"}
+ }
+ },
+ "oneshot": {
+ "type": "object",
+ "properties": {
+ "tap_toggle": {"$ref": "qmk.definitions.v1#/unsigned_int"},
+ "timeout": {"$ref": "qmk.definitions.v1#/unsigned_int"}
}
},
"rgblight": {
@@ -114,9 +205,25 @@
},
"brightness_steps": {"$ref": "qmk.definitions.v1#/unsigned_int"},
"hue_steps": {"$ref": "qmk.definitions.v1#/unsigned_int"},
+ "layers": {
+ "type": "object",
+ "additionalProperties": false,
+ "properties": {
+ "blink": {"type": "boolean"},
+ "enabled": {"type": "boolean"},
+ "max": {
+ "type": "number",
+ "min": 1,
+ "max": 32,
+ "multipleOf": 1
+ },
+ "override_rgb": {"type": "boolean"}
+ }
+ },
"led_count": {"$ref": "qmk.definitions.v1#/unsigned_int"},
"max_brightness": {"$ref": "qmk.definitions.v1#/unsigned_int_8"},
"pin": {"$ref": "qmk.definitions.v1#/mcu_pin"},
+ "rgbw": {"type": "boolean"},
"saturation_steps": {"$ref": "qmk.definitions.v1#/unsigned_int"},
"sleep": {"type": "boolean"},
"split": {"type": "boolean"},
@@ -128,13 +235,118 @@
}
}
},
+ "split": {
+ "type": "object",
+ "additionalProperties": false,
+ "properties": {
+ "enabled": {"type": "boolean"},
+ "matrix_grid": {
+ "type": "array",
+ "items": {"$ref": "qmk.definitions.v1#/mcu_pin"}
+ },
+ "matrix_pins": {
+ "type": "object",
+ "additionalProperties": false,
+ "properties": {
+ "right": {
+ "type": "object",
+ "additionalProperties": false,
+ "properties": {
+ "direct": {
+ "type": "array",
+ "items": {"$ref": "qmk.definitions.v1#/mcu_pin_array"}
+ },
+ "cols": {"$ref": "qmk.definitions.v1#/mcu_pin_array"},
+ "rows": {"$ref": "qmk.definitions.v1#/mcu_pin_array"},
+ "unused": {"$ref": "qmk.definitions.v1#/mcu_pin_array"}
+ }
+ }
+ }
+ },
+ "main": {
+ "type": "string",
+ "enum": ["eeprom", "left", "matrix_grid", "pin", "right"]
+ },
+ "soft_serial_pin": {"$ref": "qmk.definitions.v1#/mcu_pin"},
+ "soft_serial_speed": {
+ "type": "number",
+ "min": 0,
+ "max": 5,
+ "multipleOf": 1
+ },
+ "transport": {
+ "type": "object",
+ "additionalProperties": false,
+ "properties": {
+ "protocol": {
+ "type": "string",
+ "enum": ["custom", "i2c", "serial", "serial_usart"]
+ },
+ "sync_matrix_state": {"type": "boolean"},
+ "sync_modifiers": {"type": "boolean"}
+ }
+ },
+ "usb_detect": {
+ "type": "object",
+ "additionalProperties": false,
+ "properties": {
+ "enabled": {"type": "boolean"},
+ "polling_interval": {"$ref": "qmk.definitions.v1#/unsigned_int"},
+ "timeout": {"$ref": "qmk.definitions.v1#/unsigned_int"}
+ }
+ }
+ }
+ },
+ "tags": {
+ "type": "array",
+ "items": {"type": "string"}
+ },
+ "tapping": {
+ "type": "object",
+ "properties": {
+ "force_hold": {"type": "boolean"},
+ "force_hold_per_key": {"type": "boolean"},
+ "ignore_mod_tap_interrupt": {"type": "boolean"},
+ "ignore_mod_tap_interrupt_per_key": {"type": "boolean"},
+ "permissive_hold": {"type": "boolean"},
+ "permissive_hold_per_key": {"type": "boolean"},
+ "retro": {"type": "boolean"},
+ "retro_per_key": {"type": "boolean"},
+ "term": {"$ref": "qmk.definitions.v1#/unsigned_int"},
+ "term_per_key": {"type": "boolean"},
+ "toggle": {"$ref": "qmk.definitions.v1#/unsigned_int"},
+ }
+ },
"usb": {
"type": "object",
"additionalProperties": false,
"properties": {
"device_ver": {"$ref": "qmk.definitions.v1#/hex_number_4d"},
+ "force_nkro": {"type": "boolean"},
"pid": {"$ref": "qmk.definitions.v1#/hex_number_4d"},
- "vid": {"$ref": "qmk.definitions.v1#/hex_number_4d"}
+ "vid": {"$ref": "qmk.definitions.v1#/hex_number_4d"},
+ "max_power": {"$ref": "qmk.definitions.v1#/unsigned_int_8"},
+ "no_startup_check": {"type": "boolean"},
+ "polling_interval": {"$ref": "qmk.definitions.v1#/unsigned_int_8"},
+ "shared_endpoint": {
+ "type": "object",
+ "additionalProperties": false,
+ "properties": {
+ "keyboard": {"type": "boolean"},
+ "mouse": {"type": "boolean"}
+ }
+ },
+ "suspend_wakeup_delay": {"$ref": "qmk.definitions.v1#/unsigned_int_8"},
+ "wait_for": {"type": "boolean"},
+ }
+ },
+ "qmk": {
+ "type": "object",
+ "additionalProperties": false,
+ "properties": {
+ "keys_per_scan": {"$ref": "qmk.definitions.v1#/unsigned_int_8"},
+ "tap_keycode_delay": {"$ref": "qmk.definitions.v1#/unsigned_int_8"},
+ "tap_capslock_delay": {"$ref": "qmk.definitions.v1#/unsigned_int_8"},
}
},
"qmk_lufa_bootloader": {