|
@@ -0,0 +1,232 @@
|
|
|
|
+{
|
|
|
|
+ "$schema": "http://json-schema.org/schema#",
|
|
|
|
+ "$id": "qmk.keyboard.v1",
|
|
|
|
+ "title": "Keyboard Information",
|
|
|
|
+ "type": "object",
|
|
|
|
+ "properties": {
|
|
|
|
+ "keyboard_name": {
|
|
|
|
+ "type": "string",
|
|
|
|
+ "minLength": 2,
|
|
|
|
+ "maxLength": 250
|
|
|
|
+ },
|
|
|
|
+ "maintainer": {
|
|
|
|
+ "type": "string",
|
|
|
|
+ "minLength": 2,
|
|
|
|
+ "maxLength": 250
|
|
|
|
+ },
|
|
|
|
+ "manufacturer": {
|
|
|
|
+ "type": "string",
|
|
|
|
+ "minLength": 2,
|
|
|
|
+ "maxLength": 250
|
|
|
|
+ },
|
|
|
|
+ "url": {
|
|
|
|
+ "type": "string",
|
|
|
|
+ "format": "uri"
|
|
|
|
+ },
|
|
|
|
+ "processor": {
|
|
|
|
+ "type": "string",
|
|
|
|
+ "enum": ["MK20DX128", "MK20DX256", "MKL26Z64", "STM32F042", "STM32F072", "STM32F103", "STM32F303", "STM32F401", "STM32F411", "at90usb1286", "at90usb646", "atmega16u2", "atmega328p", "atmega32a", "atmega32u2", "atmega32u4", "attiny85", "cortex-m4"]
|
|
|
|
+ },
|
|
|
|
+ "bootloader": {
|
|
|
|
+ "type": "string",
|
|
|
|
+ "enum": ["atmel-dfu", "bootloadHID", "caterina", "halfkay", "kiibohd", "lufa-dfu", "lufa-ms", "micronucleus", "qmk-dfu", "stm32-dfu", "stm32duino", "unknown", "USBasp"]
|
|
|
|
+ },
|
|
|
|
+ "diode_direction": {
|
|
|
|
+ "type": "string",
|
|
|
|
+ "enum": ["COL2ROW", "ROW2COL"]
|
|
|
|
+ },
|
|
|
|
+ "debounce": {
|
|
|
|
+ "type": "number",
|
|
|
|
+ "min": 0,
|
|
|
|
+ "multipleOf": 1
|
|
|
|
+ },
|
|
|
|
+ "height": {
|
|
|
|
+ "type": "number",
|
|
|
|
+ "min": 0.25
|
|
|
|
+ },
|
|
|
|
+ "width": {
|
|
|
|
+ "type": "number",
|
|
|
|
+ "min": 0.25
|
|
|
|
+ },
|
|
|
|
+ "community_layouts": {
|
|
|
|
+ "type": "array",
|
|
|
|
+ "items": {
|
|
|
|
+ "type": "string",
|
|
|
|
+ "minLength": 2,
|
|
|
|
+ "pattern": "^[0-9a-z_]*$"
|
|
|
|
+ }
|
|
|
|
+ },
|
|
|
|
+ "features": {
|
|
|
|
+ "type": "object",
|
|
|
|
+ "additionalProperties": {"type": "boolean"}
|
|
|
|
+ },
|
|
|
|
+ "indicators": {
|
|
|
|
+ "type": "object",
|
|
|
|
+ "properties": {
|
|
|
|
+ "caps_lock": {
|
|
|
|
+ "type": "string",
|
|
|
|
+ "pattern": "^[A-K]\\d{1,2}$"
|
|
|
|
+ },
|
|
|
|
+ "num_lock": {
|
|
|
|
+ "type": "string",
|
|
|
|
+ "pattern": "^[A-K]\\d{1,2}$"
|
|
|
|
+ },
|
|
|
|
+ "scroll_lock": {
|
|
|
|
+ "type": "string",
|
|
|
|
+ "pattern": "^[A-K]\\d{1,2}$"
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ },
|
|
|
|
+ "layout_aliases": {
|
|
|
|
+ "type": "object",
|
|
|
|
+ "additionalProperties": {
|
|
|
|
+ "type": "string",
|
|
|
|
+ "pattern": "^LAYOUT_[0-9a-z_]*$"
|
|
|
|
+ }
|
|
|
|
+ },
|
|
|
|
+ "layouts": {
|
|
|
|
+ "type": "object",
|
|
|
|
+ "additionalProperties": {
|
|
|
|
+ "type": "object",
|
|
|
|
+ "additionalProperties": false,
|
|
|
|
+ "properties": {
|
|
|
|
+ "c_macro": {
|
|
|
|
+ "type": "boolean"
|
|
|
|
+ },
|
|
|
|
+ "key_count": {
|
|
|
|
+ "type": "number",
|
|
|
|
+ "min": 0,
|
|
|
|
+ "multipleOf": 1
|
|
|
|
+ },
|
|
|
|
+ "layout": {
|
|
|
|
+ "type": "array",
|
|
|
|
+ "items": {
|
|
|
|
+ "type": "object",
|
|
|
|
+ "additionalProperties": false,
|
|
|
|
+ "properties": {
|
|
|
|
+ "label": {"type": "string"},
|
|
|
|
+ "matrix": {
|
|
|
|
+ "type": "array",
|
|
|
|
+ "minItems": 2,
|
|
|
|
+ "maxItems": 2,
|
|
|
|
+ "items": {
|
|
|
|
+ "type": "number",
|
|
|
|
+ "min": 0,
|
|
|
|
+ "multipleOf": 1
|
|
|
|
+ }
|
|
|
|
+ },
|
|
|
|
+ "h": {
|
|
|
|
+ "type": "number",
|
|
|
|
+ "min": 0.25
|
|
|
|
+ },
|
|
|
|
+ "w": {
|
|
|
|
+ "type": "number",
|
|
|
|
+ "min": 0.25
|
|
|
|
+ },
|
|
|
|
+ "x": {
|
|
|
|
+ "type": "number",
|
|
|
|
+ "min": 0
|
|
|
|
+ },
|
|
|
|
+ "y": {
|
|
|
|
+ "type": "number",
|
|
|
|
+ "min": 0
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ },
|
|
|
|
+ "matrix_pins": {
|
|
|
|
+ "type": "object",
|
|
|
|
+ "additionalProperties": false,
|
|
|
|
+ "properties": {
|
|
|
|
+ "direct": {
|
|
|
|
+ "type": "array",
|
|
|
|
+ "items": {
|
|
|
|
+ "type": "array",
|
|
|
|
+ "items": {
|
|
|
|
+ "oneOf": [
|
|
|
|
+ {
|
|
|
|
+ "type": "string",
|
|
|
|
+ "pattern": "^[A-K]\\d{1,2}$"
|
|
|
|
+ },
|
|
|
|
+ {
|
|
|
|
+ "type": "null"
|
|
|
|
+ }
|
|
|
|
+ ]
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ },
|
|
|
|
+ "cols": {
|
|
|
|
+ "type": "array",
|
|
|
|
+ "items": {
|
|
|
|
+ "type": "string",
|
|
|
|
+ "pattern": "^[A-K]\\d{1,2}$"
|
|
|
|
+ }
|
|
|
|
+ },
|
|
|
|
+ "rows": {
|
|
|
|
+ "type": "array",
|
|
|
|
+ "items": {
|
|
|
|
+ "type": "string",
|
|
|
|
+ "pattern": "^[A-K]\\d{1,2}$"
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ },
|
|
|
|
+ "rgblight": {
|
|
|
|
+ "type": "object",
|
|
|
|
+ "additionalProperties": false,
|
|
|
|
+ "properties": {
|
|
|
|
+ "animations": {
|
|
|
|
+ "type": "object",
|
|
|
|
+ "additionalProperties": {
|
|
|
|
+ "type": "boolean"
|
|
|
|
+ }
|
|
|
|
+ },
|
|
|
|
+ "brightness_steps": {
|
|
|
|
+ "type": "number",
|
|
|
|
+ "min": 0,
|
|
|
|
+ "multipleOf": 1
|
|
|
|
+ },
|
|
|
|
+ "hue_steps": {
|
|
|
|
+ "type": "number",
|
|
|
|
+ "min": 0,
|
|
|
|
+ "multipleOf": 1
|
|
|
|
+ },
|
|
|
|
+ "led_count": {
|
|
|
|
+ "type": "number",
|
|
|
|
+ "min": 0,
|
|
|
|
+ "multipleOf": 1
|
|
|
|
+ },
|
|
|
|
+ "pin": {
|
|
|
|
+ "type": "string",
|
|
|
|
+ "pattern": "^[A-K]\\d{1,2}$"
|
|
|
|
+ },
|
|
|
|
+ "saturation_steps": {
|
|
|
|
+ "type": "number",
|
|
|
|
+ "min": 0,
|
|
|
|
+ "multipleOf": 1
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ },
|
|
|
|
+ "usb": {
|
|
|
|
+ "type": "object",
|
|
|
|
+ "additionalProperties": false,
|
|
|
|
+ "properties": {
|
|
|
|
+ "device_ver": {
|
|
|
|
+ "type": "string",
|
|
|
|
+ "pattern": "^[0-9A-F]x[0-9A-F][0-9A-F][0-9A-F][0-9A-F]"
|
|
|
|
+ },
|
|
|
|
+ "pid": {
|
|
|
|
+ "type": "string",
|
|
|
|
+ "pattern": "^[0-9A-F]x[0-9A-F][0-9A-F][0-9A-F][0-9A-F]"
|
|
|
|
+ },
|
|
|
|
+ "vid": {
|
|
|
|
+ "type": "string",
|
|
|
|
+ "pattern": "^[0-9A-F]x[0-9A-F][0-9A-F][0-9A-F][0-9A-F]"
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+}
|