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": { |