diff options
Diffstat (limited to 'data/schemas/keyboard.jsonschema')
| -rw-r--r-- | data/schemas/keyboard.jsonschema | 220 |
1 files changed, 216 insertions, 4 deletions
diff --git a/data/schemas/keyboard.jsonschema b/data/schemas/keyboard.jsonschema index 3a3fa4b73..78c9a8d36 100644 --- a/data/schemas/keyboard.jsonschema +++ b/data/schemas/keyboard.jsonschema | |||
| @@ -15,6 +15,40 @@ | |||
| 15 | "type": "string", | 15 | "type": "string", |
| 16 | "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"] | 16 | "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"] |
| 17 | }, | 17 | }, |
| 18 | "audio": { | ||
| 19 | "type": "object", | ||
| 20 | "additionalProperties": false, | ||
| 21 | "properties": { | ||
| 22 | "pins": {"$ref": "qmk.definitions.v1#/mcu_pin_array"}, | ||
| 23 | "voices": {"type": "boolean"} | ||
| 24 | } | ||
| 25 | }, | ||
| 26 | "backlight": { | ||
| 27 | "type": "object", | ||
| 28 | "additionalProperties": false, | ||
| 29 | "properties": { | ||
| 30 | "breathing": {"type": "boolean"}, | ||
| 31 | "breathing_period": {"$ref": "qmk.definitions.v1#/unsigned_int_8"}, | ||
| 32 | "levels": { | ||
| 33 | "type": "number", | ||
| 34 | "min": 1, | ||
| 35 | "max": 31, | ||
| 36 | "multipleOf": 1 | ||
| 37 | }, | ||
| 38 | "pin": {"$ref": "qmk.definitions.v1#/mcu_pin"} | ||
| 39 | } | ||
| 40 | }, | ||
| 41 | "bluetooth": { | ||
| 42 | "type": "object", | ||
| 43 | "additionalProperties": false, | ||
| 44 | "properties": { | ||
| 45 | "driver": { | ||
| 46 | "type": "string", | ||
| 47 | "enum": ["AdafruitBLE", "RN42"] | ||
| 48 | }, | ||
| 49 | "lto": {"type": "boolean"}, | ||
| 50 | } | ||
| 51 | }, | ||
| 18 | "board": { | 52 | "board": { |
| 19 | "type": "string", | 53 | "type": "string", |
| 20 | "minLength": 2, | 54 | "minLength": 2, |
| @@ -22,13 +56,39 @@ | |||
| 22 | }, | 56 | }, |
| 23 | "bootloader": { | 57 | "bootloader": { |
| 24 | "type": "string", | 58 | "type": "string", |
| 25 | "enum": ["atmel-dfu", "bootloadHID", "caterina", "halfkay", "kiibohd", "lufa-dfu", "lufa-ms", "micronucleus", "qmk-dfu", "qmk-hid", "stm32-dfu", "stm32duino", "unknown", "USBasp", "tinyuf2"] | 59 | "enum": ["atmel-dfu", "bootloadHID", "caterina", "halfkay", "kiibohd", "lufa-dfu", "lufa-ms", "micronucleus", "qmk-dfu", "qmk-hid", "stm32-dfu", "stm32duino", "unknown", "USBasp", "tinyuf2"], |
| 60 | }, | ||
| 61 | "bootloader_instructions": { | ||
| 62 | "type": "string", | ||
| 63 | "description": "Instructions for putting the keyboard into a mode that allows for firmware flashing." | ||
| 64 | }, | ||
| 65 | "build": { | ||
| 66 | "type": "object", | ||
| 67 | "additionalProperties": false, | ||
| 68 | "properties": { | ||
| 69 | "debounce_type": { | ||
| 70 | "type": "string", | ||
| 71 | "enum": ["custom", "eager_pk", "eager_pr", "sym_defer_pk", "sym_eager_pk"] | ||
| 72 | }, | ||
| 73 | "firmware_format": { | ||
| 74 | "type": "string", | ||
| 75 | "enum": ["bin", "hex", "uf2"] | ||
| 76 | }, | ||
| 77 | "lto": {"type": "boolean"}, | ||
| 78 | } | ||
| 26 | }, | 79 | }, |
| 27 | "diode_direction": { | 80 | "diode_direction": { |
| 28 | "type": "string", | 81 | "type": "string", |
| 29 | "enum": ["COL2ROW", "ROW2COL"] | 82 | "enum": ["COL2ROW", "ROW2COL"] |
| 30 | }, | 83 | }, |
| 31 | "debounce": {"$ref": "qmk.definitions.v1#/unsigned_int"}, | 84 | "debounce": {"$ref": "qmk.definitions.v1#/unsigned_int"}, |
| 85 | "combo": { | ||
| 86 | "type": "object", | ||
| 87 | "properties": { | ||
| 88 | "count": {"$ref": "qmk.definitions.v1#/unsigned_int"}, | ||
| 89 | "term": {"$ref": "qmk.definitions.v1#/unsigned_int"} | ||
| 90 | } | ||
| 91 | }, | ||
| 32 | "community_layouts": { | 92 | "community_layouts": { |
| 33 | "type": "array", | 93 | "type": "array", |
| 34 | "items": {"$ref": "qmk.definitions.v1#/filename"} | 94 | "items": {"$ref": "qmk.definitions.v1#/filename"} |
| @@ -90,16 +150,47 @@ | |||
| 90 | } | 150 | } |
| 91 | } | 151 | } |
| 92 | }, | 152 | }, |
| 153 | "leader_key": { | ||
| 154 | "type": "object", | ||
| 155 | "properties": { | ||
| 156 | "timing": {"type": "boolean"}, | ||
| 157 | "strict_processing": {"type": "boolean"}, | ||
| 158 | "timeout": {"$ref": "qmk.definitions.v1#/unsigned_int"} | ||
| 159 | } | ||
| 160 | }, | ||
| 93 | "matrix_pins": { | 161 | "matrix_pins": { |
| 94 | "type": "object", | 162 | "type": "object", |
| 95 | "additionalProperties": false, | 163 | "additionalProperties": false, |
| 96 | "properties": { | 164 | "properties": { |
| 165 | "custom": {"type": "boolean"}, | ||
| 166 | "custom_lite": {"type": "boolean"}, | ||
| 167 | "ghost": {"type": "boolean"}, | ||
| 168 | "io_delay": {"$ref": "qmk.definitions.v1#/unsigned_int"}, | ||
| 97 | "direct": { | 169 | "direct": { |
| 98 | "type": "array", | 170 | "type": "array", |
| 99 | "items": {$ref": "qmk.definitions.v1#/mcu_pin_array"} | 171 | "items": {"$ref": "qmk.definitions.v1#/mcu_pin_array"} |
| 100 | }, | 172 | }, |
| 101 | "cols": {"$ref": "qmk.definitions.v1#/mcu_pin_array"}, | 173 | "cols": {"$ref": "qmk.definitions.v1#/mcu_pin_array"}, |
| 102 | "rows": {"$ref": "qmk.definitions.v1#/mcu_pin_array"} | 174 | "rows": {"$ref": "qmk.definitions.v1#/mcu_pin_array"}, |
| 175 | "unused": {"$ref": "qmk.definitions.v1#/mcu_pin_array"} | ||
| 176 | } | ||
| 177 | }, | ||
| 178 | "mouse_key": { | ||
| 179 | "type": "object", | ||
| 180 | "properties": { | ||
| 181 | "enabled": {"type": "boolean"}, | ||
| 182 | "delay": {"$ref": "qmk.definitions.v1#/unsigned_int_8"} | ||
| 183 | "interval": {"$ref": "qmk.definitions.v1#/unsigned_int_8"} | ||
| 184 | "max_speed": {"$ref": "qmk.definitions.v1#/unsigned_int_8"} | ||
| 185 | "time_to_max": {"$ref": "qmk.definitions.v1#/unsigned_int_8"} | ||
| 186 | "wheel_delay": {"$ref": "qmk.definitions.v1#/unsigned_int_8"} | ||
| 187 | } | ||
| 188 | }, | ||
| 189 | "oneshot": { | ||
| 190 | "type": "object", | ||
| 191 | "properties": { | ||
| 192 | "tap_toggle": {"$ref": "qmk.definitions.v1#/unsigned_int"}, | ||
| 193 | "timeout": {"$ref": "qmk.definitions.v1#/unsigned_int"} | ||
| 103 | } | 194 | } |
| 104 | }, | 195 | }, |
| 105 | "rgblight": { | 196 | "rgblight": { |
| @@ -114,9 +205,25 @@ | |||
| 114 | }, | 205 | }, |
| 115 | "brightness_steps": {"$ref": "qmk.definitions.v1#/unsigned_int"}, | 206 | "brightness_steps": {"$ref": "qmk.definitions.v1#/unsigned_int"}, |
| 116 | "hue_steps": {"$ref": "qmk.definitions.v1#/unsigned_int"}, | 207 | "hue_steps": {"$ref": "qmk.definitions.v1#/unsigned_int"}, |
| 208 | "layers": { | ||
| 209 | "type": "object", | ||
| 210 | "additionalProperties": false, | ||
| 211 | "properties": { | ||
| 212 | "blink": {"type": "boolean"}, | ||
| 213 | "enabled": {"type": "boolean"}, | ||
| 214 | "max": { | ||
| 215 | "type": "number", | ||
| 216 | "min": 1, | ||
| 217 | "max": 32, | ||
| 218 | "multipleOf": 1 | ||
| 219 | }, | ||
| 220 | "override_rgb": {"type": "boolean"} | ||
| 221 | } | ||
| 222 | }, | ||
| 117 | "led_count": {"$ref": "qmk.definitions.v1#/unsigned_int"}, | 223 | "led_count": {"$ref": "qmk.definitions.v1#/unsigned_int"}, |
| 118 | "max_brightness": {"$ref": "qmk.definitions.v1#/unsigned_int_8"}, | 224 | "max_brightness": {"$ref": "qmk.definitions.v1#/unsigned_int_8"}, |
| 119 | "pin": {"$ref": "qmk.definitions.v1#/mcu_pin"}, | 225 | "pin": {"$ref": "qmk.definitions.v1#/mcu_pin"}, |
| 226 | "rgbw": {"type": "boolean"}, | ||
| 120 | "saturation_steps": {"$ref": "qmk.definitions.v1#/unsigned_int"}, | 227 | "saturation_steps": {"$ref": "qmk.definitions.v1#/unsigned_int"}, |
| 121 | "sleep": {"type": "boolean"}, | 228 | "sleep": {"type": "boolean"}, |
| 122 | "split": {"type": "boolean"}, | 229 | "split": {"type": "boolean"}, |
| @@ -128,13 +235,118 @@ | |||
| 128 | } | 235 | } |
| 129 | } | 236 | } |
| 130 | }, | 237 | }, |
| 238 | "split": { | ||
| 239 | "type": "object", | ||
| 240 | "additionalProperties": false, | ||
| 241 | "properties": { | ||
| 242 | "enabled": {"type": "boolean"}, | ||
| 243 | "matrix_grid": { | ||
| 244 | "type": "array", | ||
| 245 | "items": {"$ref": "qmk.definitions.v1#/mcu_pin"} | ||
| 246 | }, | ||
| 247 | "matrix_pins": { | ||
| 248 | "type": "object", | ||
| 249 | "additionalProperties": false, | ||
| 250 | "properties": { | ||
| 251 | "right": { | ||
| 252 | "type": "object", | ||
| 253 | "additionalProperties": false, | ||
| 254 | "properties": { | ||
| 255 | "direct": { | ||
| 256 | "type": "array", | ||
| 257 | "items": {"$ref": "qmk.definitions.v1#/mcu_pin_array"} | ||
| 258 | }, | ||
| 259 | "cols": {"$ref": "qmk.definitions.v1#/mcu_pin_array"}, | ||
| 260 | "rows": {"$ref": "qmk.definitions.v1#/mcu_pin_array"}, | ||
| 261 | "unused": {"$ref": "qmk.definitions.v1#/mcu_pin_array"} | ||
| 262 | } | ||
| 263 | } | ||
| 264 | } | ||
| 265 | }, | ||
| 266 | "main": { | ||
| 267 | "type": "string", | ||
| 268 | "enum": ["eeprom", "left", "matrix_grid", "pin", "right"] | ||
| 269 | }, | ||
| 270 | "soft_serial_pin": {"$ref": "qmk.definitions.v1#/mcu_pin"}, | ||
| 271 | "soft_serial_speed": { | ||
| 272 | "type": "number", | ||
| 273 | "min": 0, | ||
| 274 | "max": 5, | ||
| 275 | "multipleOf": 1 | ||
| 276 | }, | ||
| 277 | "transport": { | ||
| 278 | "type": "object", | ||
| 279 | "additionalProperties": false, | ||
| 280 | "properties": { | ||
| 281 | "protocol": { | ||
| 282 | "type": "string", | ||
| 283 | "enum": ["custom", "i2c", "serial", "serial_usart"] | ||
| 284 | }, | ||
| 285 | "sync_matrix_state": {"type": "boolean"}, | ||
| 286 | "sync_modifiers": {"type": "boolean"} | ||
| 287 | } | ||
| 288 | }, | ||
| 289 | "usb_detect": { | ||
| 290 | "type": "object", | ||
| 291 | "additionalProperties": false, | ||
| 292 | "properties": { | ||
| 293 | "enabled": {"type": "boolean"}, | ||
| 294 | "polling_interval": {"$ref": "qmk.definitions.v1#/unsigned_int"}, | ||
| 295 | "timeout": {"$ref": "qmk.definitions.v1#/unsigned_int"} | ||
| 296 | } | ||
| 297 | } | ||
| 298 | } | ||
| 299 | }, | ||
| 300 | "tags": { | ||
| 301 | "type": "array", | ||
| 302 | "items": {"type": "string"} | ||
| 303 | }, | ||
| 304 | "tapping": { | ||
| 305 | "type": "object", | ||
| 306 | "properties": { | ||
| 307 | "force_hold": {"type": "boolean"}, | ||
| 308 | "force_hold_per_key": {"type": "boolean"}, | ||
| 309 | "ignore_mod_tap_interrupt": {"type": "boolean"}, | ||
| 310 | "ignore_mod_tap_interrupt_per_key": {"type": "boolean"}, | ||
| 311 | "permissive_hold": {"type": "boolean"}, | ||
| 312 | "permissive_hold_per_key": {"type": "boolean"}, | ||
| 313 | "retro": {"type": "boolean"}, | ||
| 314 | "retro_per_key": {"type": "boolean"}, | ||
| 315 | "term": {"$ref": "qmk.definitions.v1#/unsigned_int"}, | ||
| 316 | "term_per_key": {"type": "boolean"}, | ||
| 317 | "toggle": {"$ref": "qmk.definitions.v1#/unsigned_int"}, | ||
| 318 | } | ||
| 319 | }, | ||
| 131 | "usb": { | 320 | "usb": { |
| 132 | "type": "object", | 321 | "type": "object", |
| 133 | "additionalProperties": false, | 322 | "additionalProperties": false, |
| 134 | "properties": { | 323 | "properties": { |
| 135 | "device_ver": {"$ref": "qmk.definitions.v1#/hex_number_4d"}, | 324 | "device_ver": {"$ref": "qmk.definitions.v1#/hex_number_4d"}, |
| 325 | "force_nkro": {"type": "boolean"}, | ||
| 136 | "pid": {"$ref": "qmk.definitions.v1#/hex_number_4d"}, | 326 | "pid": {"$ref": "qmk.definitions.v1#/hex_number_4d"}, |
| 137 | "vid": {"$ref": "qmk.definitions.v1#/hex_number_4d"} | 327 | "vid": {"$ref": "qmk.definitions.v1#/hex_number_4d"}, |
| 328 | "max_power": {"$ref": "qmk.definitions.v1#/unsigned_int_8"}, | ||
| 329 | "no_startup_check": {"type": "boolean"}, | ||
| 330 | "polling_interval": {"$ref": "qmk.definitions.v1#/unsigned_int_8"}, | ||
| 331 | "shared_endpoint": { | ||
| 332 | "type": "object", | ||
| 333 | "additionalProperties": false, | ||
| 334 | "properties": { | ||
| 335 | "keyboard": {"type": "boolean"}, | ||
| 336 | "mouse": {"type": "boolean"} | ||
| 337 | } | ||
| 338 | }, | ||
| 339 | "suspend_wakeup_delay": {"$ref": "qmk.definitions.v1#/unsigned_int_8"}, | ||
| 340 | "wait_for": {"type": "boolean"}, | ||
| 341 | } | ||
| 342 | }, | ||
| 343 | "qmk": { | ||
| 344 | "type": "object", | ||
| 345 | "additionalProperties": false, | ||
| 346 | "properties": { | ||
| 347 | "keys_per_scan": {"$ref": "qmk.definitions.v1#/unsigned_int_8"}, | ||
| 348 | "tap_keycode_delay": {"$ref": "qmk.definitions.v1#/unsigned_int_8"}, | ||
| 349 | "tap_capslock_delay": {"$ref": "qmk.definitions.v1#/unsigned_int_8"}, | ||
| 138 | } | 350 | } |
| 139 | }, | 351 | }, |
| 140 | "qmk_lufa_bootloader": { | 352 | "qmk_lufa_bootloader": { |
