summaryrefslogtreecommitdiff
path: root/data/schemas
diff options
context:
space:
mode:
Diffstat (limited to 'data/schemas')
-rw-r--r--data/schemas/definitions.jsonschema16
-rw-r--r--data/schemas/keyboard.jsonschema135
-rw-r--r--data/schemas/keycodes.jsonschema57
-rw-r--r--data/schemas/keymap.jsonschema4
4 files changed, 189 insertions, 23 deletions
diff --git a/data/schemas/definitions.jsonschema b/data/schemas/definitions.jsonschema
index 8b68a58482..94a94157c0 100644
--- a/data/schemas/definitions.jsonschema
+++ b/data/schemas/definitions.jsonschema
@@ -68,20 +68,8 @@
"type": "number"
},
"keyboard": {
- "oneOf": [
- {
- "type": "string",
- "enum": [
- "converter/numeric_keypad_IIe",
- "emptystring/NQG",
- "maple_computing/christmas_tree/V2017"
- ]
- },
- {
- "type": "string",
- "pattern": "^[0-9a-z][0-9a-z_/]*$"
- }
- ]
+ "type": "string",
+ "pattern": "^[0-9a-z][0-9a-z_/]*$"
},
"mcu_pin_array": {
"type": "array",
diff --git a/data/schemas/keyboard.jsonschema b/data/schemas/keyboard.jsonschema
index 4c785a968a..daf54141a8 100644
--- a/data/schemas/keyboard.jsonschema
+++ b/data/schemas/keyboard.jsonschema
@@ -34,15 +34,66 @@
},
"development_board": {
"type": "string",
- "enum": ["promicro", "elite_c", "proton_c", "kb2040", "promicro_rp2040", "blok", "bit_c_pro", "stemcell", "bluepill", "blackpill_f401", "blackpill_f411", "bonsai_c4"]
+ "enum": ["promicro", "elite_c", "elite_pi", "proton_c", "kb2040", "promicro_rp2040", "blok", "bit_c_pro", "stemcell", "bluepill", "blackpill_f401", "blackpill_f411", "bonsai_c4"]
},
"pin_compatible": {
"type": "string",
- "enum": ["promicro"]
+ "enum": ["promicro", "elite_c"]
},
"processor": {
"type": "string",
- "enum": ["cortex-m0", "cortex-m0plus", "cortex-m3", "cortex-m4", "MKL26Z64", "MK20DX128", "MK20DX256", "MK64FX512", "MK66FX1M0", "RP2040", "STM32F042", "STM32F072", "STM32F103", "STM32F303", "STM32F401", "STM32F405", "STM32F407", "STM32F411", "STM32F446", "STM32G431", "STM32G474", "STM32L412", "STM32L422", "STM32L432", "STM32L433", "STM32L442", "STM32L443", "GD32VF103", "WB32F3G71", "WB32FQ95", "atmega16u2", "atmega32u2", "atmega16u4", "atmega32u4", "at90usb162", "at90usb646", "at90usb647", "at90usb1286", "at90usb1287", "atmega32a", "atmega328p", "atmega328", "attiny85", "unknown"]
+ "enum": [
+ "cortex-m0",
+ "cortex-m0plus",
+ "cortex-m3",
+ "cortex-m4",
+ "cortex-m7",
+ "cortex-m23",
+ "cortex-m33",
+ "cortex-m35p",
+ "cortex-m55",
+ "cortex-m85",
+ "MKL26Z64",
+ "MK20DX128",
+ "MK20DX256",
+ "MK64FX512",
+ "MK66FX1M0",
+ "RP2040",
+ "STM32F042",
+ "STM32F072",
+ "STM32F103",
+ "STM32F303",
+ "STM32F401",
+ "STM32F405",
+ "STM32F407",
+ "STM32F411",
+ "STM32F446",
+ "STM32G431",
+ "STM32G474",
+ "STM32L412",
+ "STM32L422",
+ "STM32L432",
+ "STM32L433",
+ "STM32L442",
+ "STM32L443",
+ "GD32VF103",
+ "WB32F3G71",
+ "WB32FQ95",
+ "atmega16u2",
+ "atmega32u2",
+ "atmega16u4",
+ "atmega32u4",
+ "at90usb162",
+ "at90usb646",
+ "at90usb647",
+ "at90usb1286",
+ "at90usb1287",
+ "atmega32a",
+ "atmega328p",
+ "atmega328",
+ "attiny85",
+ "unknown"
+ ]
},
"audio": {
"type": "object",
@@ -75,8 +126,7 @@
"driver": {
"type": "string",
"enum": ["BluefruitLE", "RN42"]
- },
- "lto": {"type": "boolean"}
+ }
}
},
"board": {
@@ -89,7 +139,6 @@
"enum": [
"atmel-dfu",
"bootloadhid",
- "bootloadHID",
"caterina",
"custom",
"gd32v-dfu",
@@ -106,7 +155,6 @@
"tinyuf2",
"unknown",
"usbasploader",
- "USBasp",
"wb32-dfu"
]
},
@@ -267,7 +315,31 @@
"led_matrix": {
"type": "object",
"properties": {
+ "animations": {
+ "type": "object",
+ "additionalProperties": {
+ "type": "boolean"
+ }
+ },
"driver": {"type": "string"},
+ "center_point": {
+ "type": "array",
+ "minItems": 2,
+ "maxItems": 2,
+ "items": {"$ref": "qmk.definitions.v1#/unsigned_int_8"}
+ },
+ "max_brightness": {"$ref": "qmk.definitions.v1#/unsigned_int_8"},
+ "timeout": {"$ref": "qmk.definitions.v1#/unsigned_int"},
+ "hue_steps": {"$ref": "qmk.definitions.v1#/unsigned_int"},
+ "sat_steps": {"$ref": "qmk.definitions.v1#/unsigned_int"},
+ "val_steps": {"$ref": "qmk.definitions.v1#/unsigned_int"},
+ "speed_steps": {"$ref": "qmk.definitions.v1#/unsigned_int"},
+ "split_count": {
+ "type": "array",
+ "minItems": 2,
+ "maxItems": 2,
+ "items": {"$ref": "qmk.definitions.v1#/unsigned_int"}
+ },
"layout": {
"type": "array",
"items": {
@@ -294,7 +366,31 @@
"rgb_matrix": {
"type": "object",
"properties": {
+ "animations": {
+ "type": "object",
+ "additionalProperties": {
+ "type": "boolean"
+ }
+ },
"driver": {"type": "string"},
+ "center_point": {
+ "type": "array",
+ "minItems": 2,
+ "maxItems": 2,
+ "items": {"$ref": "qmk.definitions.v1#/unsigned_int_8"}
+ },
+ "max_brightness": {"$ref": "qmk.definitions.v1#/unsigned_int_8"},
+ "timeout": {"$ref": "qmk.definitions.v1#/unsigned_int"},
+ "hue_steps": {"$ref": "qmk.definitions.v1#/unsigned_int"},
+ "sat_steps": {"$ref": "qmk.definitions.v1#/unsigned_int"},
+ "val_steps": {"$ref": "qmk.definitions.v1#/unsigned_int"},
+ "speed_steps": {"$ref": "qmk.definitions.v1#/unsigned_int"},
+ "split_count": {
+ "type": "array",
+ "minItems": 2,
+ "maxItems": 2,
+ "items": {"$ref": "qmk.definitions.v1#/unsigned_int"}
+ },
"layout": {
"type": "array",
"items": {
@@ -393,6 +489,20 @@
}
}
},
+ "ps2": {
+ "type": "object",
+ "additionalProperties": false,
+ "properties": {
+ "enabled": {"type": "boolean"},
+ "mouse_enabled": {"type": "boolean"},
+ "clock_pin": {"$ref": "qmk.definitions.v1#/mcu_pin"},
+ "data_pin": {"$ref": "qmk.definitions.v1#/mcu_pin"},
+ "driver": {
+ "type": "string",
+ "enum": ["busywait", "interrupt", "usart", "vendor"]
+ }
+ }
+ },
"split": {
"type": "object",
"additionalProperties": false,
@@ -449,7 +559,9 @@
"enum": ["custom", "i2c", "serial", "serial_usart"]
},
"sync_matrix_state": {"type": "boolean"},
- "sync_modifiers": {"type": "boolean"}
+ "sync_modifiers": {"type": "boolean"},
+ "watchdog": {"type": "boolean"},
+ "watchdog_timeout": {"$ref": "qmk.definitions.v1#/unsigned_int"}
}
},
"usb_detect": {
@@ -474,6 +586,8 @@
"force_hold_per_key": {"type": "boolean"},
"ignore_mod_tap_interrupt": {"type": "boolean"},
"ignore_mod_tap_interrupt_per_key": {"type": "boolean"},
+ "hold_on_other_key_press": {"type": "boolean"},
+ "hold_on_other_key_press_per_key": {"type": "boolean"},
"permissive_hold": {"type": "boolean"},
"permissive_hold_per_key": {"type": "boolean"},
"retro": {"type": "boolean"},
@@ -487,7 +601,10 @@
"type": "object",
"additionalProperties": false,
"properties": {
- "device_ver": {"$ref": "qmk.definitions.v1#/hex_number_4d"}, # Deprecated
+ "device_ver": {
+ "$ref": "qmk.definitions.v1#/hex_number_4d",
+ "$comment": "Deprecated: use device_version instead"
+ },
"device_version": {"$ref": "qmk.definitions.v1#/bcd_version"},
"force_nkro": {"type": "boolean"},
"pid": {"$ref": "qmk.definitions.v1#/hex_number_4d"},
diff --git a/data/schemas/keycodes.jsonschema b/data/schemas/keycodes.jsonschema
new file mode 100644
index 0000000000..77a8347b3b
--- /dev/null
+++ b/data/schemas/keycodes.jsonschema
@@ -0,0 +1,57 @@
+{
+ "$schema": "https://json-schema.org/draft/2020-12/schema#",
+ "$id": "qmk.keycodes.v1",
+ "title": "Keycode Information",
+ "type": "object",
+ "definitions": {
+ "define": {
+ "type": "string",
+ "minLength": 2,
+ "maxLength": 50,
+ "pattern": "^[A-Zs_0-9]*$"
+ },
+ "hex_number_4d": {
+ "type": "string",
+ "pattern": "^0x[0-9A-F]{4}$"
+ }
+ },
+ "properties": {
+ "ranges": {
+ "type": "object",
+ "propertyNames": {
+ "type": "string"
+ },
+ "additionalProperties": {
+ "type": "object",
+ "required": [
+ "define"
+ ],
+ "properties": {
+ "define": {"$ref": "#/definitions/define"}
+ }
+ }
+ },
+ "keycodes": {
+ "type": "object",
+ "propertyNames": {
+ "$ref": "#/definitions/hex_number_4d"
+ },
+ "additionalProperties": {
+ "type": "object",
+ "required": [
+ "key"
+ ],
+ "properties": {
+ "key": {"$ref": "#/definitions/define"},
+ "aliases": {
+ "type": "array",
+ "minItems": 1,
+ "items": {
+ "type": "string"
+ }
+ }
+ }
+ }
+ }
+ }
+}
diff --git a/data/schemas/keymap.jsonschema b/data/schemas/keymap.jsonschema
index 0a4fb5d453..1b8d01bcc6 100644
--- a/data/schemas/keymap.jsonschema
+++ b/data/schemas/keymap.jsonschema
@@ -5,6 +5,10 @@
"type": "object",
"properties": {
"author": {"type": "string"},
+ "converter": {
+ "type": "string",
+ "enum": ["elite_pi", "proton_c", "kb2040", "promicro_rp2040", "blok", "bit_c_pro", "stemcell", "bonsai_c4"]
+ },
"host_language": {"$ref": "qmk.definitions.v1#/text_identifier"},
"keyboard": {"$ref": "qmk.definitions.v1#/text_identifier"},
"keymap": {"$ref": "qmk.definitions.v1#/text_identifier"},