summaryrefslogtreecommitdiff
path: root/data/schemas/keyboard.jsonschema
diff options
context:
space:
mode:
Diffstat (limited to 'data/schemas/keyboard.jsonschema')
-rw-r--r--data/schemas/keyboard.jsonschema169
1 files changed, 156 insertions, 13 deletions
diff --git a/data/schemas/keyboard.jsonschema b/data/schemas/keyboard.jsonschema
index 4053387f3b..9fc455530c 100644
--- a/data/schemas/keyboard.jsonschema
+++ b/data/schemas/keyboard.jsonschema
@@ -20,7 +20,15 @@
}
}
}
- }
+ },
+ "dip_switch_config": {
+ "type": "object",
+ "properties": {
+ "pins": {
+ "$ref": "qmk.definitions.v1#/mcu_pin_array"
+ }
+ }
+ },
},
"type": "object",
"not": { "required": [ "vendorId", "productId" ] }, // reject via keys...
@@ -128,6 +136,15 @@
"type": "string",
"enum": ["pwm", "software", "timer", "custom"]
},
+ "default": {
+ "type": "object",
+ "additionalProperties": false,
+ "properties": {
+ "on": {"type": "boolean"},
+ "breathing": {"type": "boolean"},
+ "brightness": {"$ref": "qmk.definitions.v1#/unsigned_int_8"}
+ }
+ },
"breathing": {"type": "boolean"},
"breathing_period": {"$ref": "qmk.definitions.v1#/unsigned_int_8"},
"levels": {
@@ -245,9 +262,40 @@
"type": "array",
"items": {"$ref": "qmk.definitions.v1#/filename"}
},
+ "dip_switch": {
+ "$ref": "#/definitions/dip_switch_config",
+ "properties": {
+ "enabled": {"type": "boolean"},
+ "matrix_grid": {
+ "type": "array",
+ "minItems": 1,
+ "items": {
+ "type": "array",
+ "minItems": 2,
+ "maxItems": 2,
+ "items": {
+ "type": "integer",
+ "minimum": 0
+ }
+ }
+ }
+ }
+ },
"eeprom": {
"properties": {
- "driver": {"type": "string"}
+ "driver": {"type": "string"},
+ "wear_leveling": {
+ "type": "object",
+ "additionalProperties": false,
+ "properties": {
+ "driver": {
+ "type": "string",
+ "enum": ["custom", "embedded_flash", "legacy", "rp2040_flash", "spi_flash"]
+ },
+ "backing_size": {"$ref": "qmk.definitions.v1#/unsigned_int"},
+ "logical_size": {"$ref": "qmk.definitions.v1#/unsigned_int"}
+ }
+ }
}
},
"encoder": {
@@ -379,6 +427,16 @@
"type": "boolean"
}
},
+ "default": {
+ "type": "object",
+ "additionalProperties": false,
+ "properties": {
+ "on": {"type": "boolean"},
+ "animation": {"type": "string"},
+ "val": {"$ref": "qmk.definitions.v1#/unsigned_int_8"},
+ "speed": {"$ref": "qmk.definitions.v1#/unsigned_int_8"}
+ }
+ },
"driver": {"type": "string"},
"center_point": {
"type": "array",
@@ -390,6 +448,10 @@
"timeout": {"$ref": "qmk.definitions.v1#/unsigned_int"},
"val_steps": {"$ref": "qmk.definitions.v1#/unsigned_int"},
"speed_steps": {"$ref": "qmk.definitions.v1#/unsigned_int"},
+ "led_flush_limit": {"$ref": "qmk.definitions.v1#/unsigned_int"},
+ "led_process_limit": {"$ref": "qmk.definitions.v1#/unsigned_int"},
+ "react_on_keyup": {"type": "boolean"},
+ "sleep": {"type": "boolean"},
"split_count": {
"type": "array",
"minItems": 2,
@@ -429,6 +491,18 @@
"type": "boolean"
}
},
+ "default": {
+ "type": "object",
+ "additionalProperties": false,
+ "properties": {
+ "on": {"type": "boolean"},
+ "animation": {"type": "string"},
+ "hue": {"$ref": "qmk.definitions.v1#/unsigned_int_8"},
+ "sat": {"$ref": "qmk.definitions.v1#/unsigned_int_8"},
+ "val": {"$ref": "qmk.definitions.v1#/unsigned_int_8"},
+ "speed": {"$ref": "qmk.definitions.v1#/unsigned_int_8"}
+ }
+ },
"driver": {"type": "string"},
"center_point": {
"type": "array",
@@ -442,6 +516,10 @@
"sat_steps": {"$ref": "qmk.definitions.v1#/unsigned_int"},
"val_steps": {"$ref": "qmk.definitions.v1#/unsigned_int"},
"speed_steps": {"$ref": "qmk.definitions.v1#/unsigned_int"},
+ "led_flush_limit": {"$ref": "qmk.definitions.v1#/unsigned_int"},
+ "led_process_limit": {"$ref": "qmk.definitions.v1#/unsigned_int"},
+ "react_on_keyup": {"type": "boolean"},
+ "sleep": {"type": "boolean"},
"split_count": {
"type": "array",
"minItems": 2,
@@ -483,6 +561,18 @@
}
},
"brightness_steps": {"$ref": "qmk.definitions.v1#/unsigned_int"},
+ "default": {
+ "type": "object",
+ "additionalProperties": false,
+ "properties": {
+ "on": {"type": "boolean"},
+ "animation": {"type": "string"},
+ "hue": {"$ref": "qmk.definitions.v1#/unsigned_int_8"},
+ "sat": {"$ref": "qmk.definitions.v1#/unsigned_int_8"},
+ "val": {"$ref": "qmk.definitions.v1#/unsigned_int_8"},
+ "speed": {"$ref": "qmk.definitions.v1#/unsigned_int_8"}
+ }
+ },
"driver": {
"type": "string",
"enum": ["apa102", "custom", "ws2812"]
@@ -593,10 +683,6 @@
}
}
},
- "matrix_grid": {
- "type": "array",
- "items": {"$ref": "qmk.definitions.v1#/mcu_pin"}
- },
"matrix_pins": {
"type": "object",
"additionalProperties": false,
@@ -616,6 +702,15 @@
}
}
},
+ "dip_switch": {
+ "type": "object",
+ "additionalProperties": false,
+ "properties": {
+ "right": {
+ "$ref": "#/definitions/dip_switch_config"
+ }
+ }
+ },
"encoder": {
"type": "object",
"additionalProperties": false,
@@ -625,9 +720,17 @@
}
}
},
- "main": {
- "type": "string",
- "enum": ["eeprom", "left", "matrix_grid", "pin", "right"]
+ "handedness": {
+ "type": "object",
+ "additionalProperties": false,
+ "properties": {
+ "pin": {"$ref": "qmk.definitions.v1#/mcu_pin"},
+ "matrix_grid": {
+ "$ref": "qmk.definitions.v1#/mcu_pin_array",
+ "minItems": 2,
+ "maxItems": 2
+ }
+ }
},
"soft_serial_pin": {"$ref": "qmk.definitions.v1#/mcu_pin"},
"soft_serial_speed": {
@@ -643,10 +746,32 @@
"type": "string",
"enum": ["custom", "i2c", "serial", "serial_usart"]
},
- "sync_matrix_state": {"type": "boolean"},
- "sync_modifiers": {"type": "boolean"},
+ "sync": {
+ "type": "object",
+ "additionalProperties": false,
+ "properties": {
+ "activity": {"type": "boolean"},
+ "detected_os": {"type": "boolean"},
+ "haptic": {"type": "boolean"},
+ "layer_state": {"type": "boolean"},
+ "indicators": {"type": "boolean"},
+ "matrix_state": {"type": "boolean"},
+ "modifiers": {"type": "boolean"},
+ "oled": {"type": "boolean"},
+ "st7565": {"type": "boolean"},
+ "wpm": {"type": "boolean"}
+ }
+ }
"watchdog": {"type": "boolean"},
- "watchdog_timeout": {"$ref": "qmk.definitions.v1#/unsigned_int"}
+ "watchdog_timeout": {"$ref": "qmk.definitions.v1#/unsigned_int"},
+ "sync_matrix_state": {
+ "type": "boolean",
+ "$comment": "Deprecated: use sync.matrix_state instead"
+ },
+ "sync_modifiers": {
+ "type": "boolean",
+ "$comment": "Deprecated: use sync.modifiers instead"
+ }
}
},
"usb_detect": {
@@ -657,6 +782,16 @@
"polling_interval": {"$ref": "qmk.definitions.v1#/unsigned_int"},
"timeout": {"$ref": "qmk.definitions.v1#/unsigned_int"}
}
+ },
+ "main": {
+ "type": "string",
+ "enum": ["eeprom", "left", "matrix_grid", "pin", "right"],
+ "$comment": "Deprecated: use config.h options for now"
+ },
+ "matrix_grid": {
+ "type": "array",
+ "items": {"$ref": "qmk.definitions.v1#/mcu_pin"},
+ "$comment": "Deprecated: use split.handedness.matrix_grid instead"
}
}
},
@@ -714,7 +849,15 @@
"properties": {
"keys_per_scan": {"$ref": "qmk.definitions.v1#/unsigned_int_8"},
"tap_keycode_delay": {"$ref": "qmk.definitions.v1#/unsigned_int"},
- "tap_capslock_delay": {"$ref": "qmk.definitions.v1#/unsigned_int"}
+ "tap_capslock_delay": {"$ref": "qmk.definitions.v1#/unsigned_int"},
+ "locking": {
+ "type": "object",
+ "additionalProperties": false,
+ "properties": {
+ "enabled": {"type": "boolean"},
+ "resync": {"type": "boolean"}
+ }
+ }
}
},
"qmk_lufa_bootloader": {