summaryrefslogtreecommitdiffstats
path: root/data/schemas
diff options
context:
space:
mode:
Diffstat (limited to 'data/schemas')
-rw-r--r--data/schemas/keyboard.jsonschema47
-rw-r--r--data/schemas/keymap.jsonschema17
2 files changed, 60 insertions, 4 deletions
diff --git a/data/schemas/keyboard.jsonschema b/data/schemas/keyboard.jsonschema
index 4126217fc2..42a3a44391 100644
--- a/data/schemas/keyboard.jsonschema
+++ b/data/schemas/keyboard.jsonschema
@@ -23,6 +23,7 @@
}
},
"type": "object",
+ "not": { "required": [ "vendorId", "productId" ] }, // reject via keys...
"properties": {
"keyboard_name": {"$ref": "qmk.definitions.v1#/text_identifier"},
"keyboard_folder": {"$ref": "qmk.definitions.v1#/keyboard"},
@@ -34,7 +35,7 @@
},
"development_board": {
"type": "string",
- "enum": ["promicro", "elite_c", "elite_pi", "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", "michi", "bit_c_pro", "stemcell", "bluepill", "blackpill_f401", "blackpill_f411", "bonsai_c4", "helios"]
},
"pin_compatible": {
"type": "string",
@@ -108,6 +109,10 @@
"type": "object",
"additionalProperties": false,
"properties": {
+ "driver": {
+ "type": "string",
+ "enum": ["pwm", "software", "timer", "custom"]
+ },
"breathing": {"type": "boolean"},
"breathing_period": {"$ref": "qmk.definitions.v1#/unsigned_int_8"},
"levels": {
@@ -118,7 +123,8 @@
"max_brightness": {"$ref": "qmk.definitions.v1#/unsigned_int_8"},
"pin": {"$ref": "qmk.definitions.v1#/mcu_pin"},
"pins": {"$ref": "qmk.definitions.v1#/mcu_pin_array"},
- "on_state": {"$ref": "qmk.definitions.v1#/bit"}
+ "on_state": {"$ref": "qmk.definitions.v1#/bit"},
+ "as_caps_lock": {"type": "boolean"}
}
},
"bluetooth": {
@@ -131,6 +137,22 @@
}
}
},
+ "bootmagic":{
+ "type": "object",
+ "additionalProperties": false,
+ "properties": {
+ "enabled": {"type": "boolean"},
+ "matrix": {
+ "type": "array",
+ "minItems": 2,
+ "maxItems": 2,
+ "items": {
+ "type": "integer",
+ "minimum": 0
+ }
+ }
+ }
+ },
"board": {
"type": "string",
"minLength": 2,
@@ -155,6 +177,7 @@
"stm32-dfu",
"stm32duino",
"tinyuf2",
+ "uf2boot",
"unknown",
"usbasploader",
"wb32-dfu"
@@ -240,6 +263,9 @@
"c_macro": {
"type": "boolean"
},
+ "json_layout": {
+ "type": "boolean"
+ },
"layout": {
"type": "array",
"items": {
@@ -288,6 +314,7 @@
"custom": {"type": "boolean"},
"custom_lite": {"type": "boolean"},
"ghost": {"type": "boolean"},
+ "input_pressed_state": {"$ref": "qmk.definitions.v1#/unsigned_int"},
"io_delay": {"$ref": "qmk.definitions.v1#/unsigned_int"},
"direct": {
"type": "array",
@@ -511,6 +538,21 @@
"additionalProperties": false,
"properties": {
"enabled": {"type": "boolean"},
+ "bootmagic":{
+ "type": "object",
+ "additionalProperties": false,
+ "properties": {
+ "matrix": {
+ "type": "array",
+ "minItems": 2,
+ "maxItems": 2,
+ "items": {
+ "type": "integer",
+ "minimum": 0
+ }
+ }
+ }
+ },
"matrix_grid": {
"type": "array",
"items": {"$ref": "qmk.definitions.v1#/mcu_pin"}
@@ -588,7 +630,6 @@
"force_hold": {"type": "boolean"},
"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"},
diff --git a/data/schemas/keymap.jsonschema b/data/schemas/keymap.jsonschema
index 1b8d01bcc6..73aa7c5c22 100644
--- a/data/schemas/keymap.jsonschema
+++ b/data/schemas/keymap.jsonschema
@@ -7,7 +7,8 @@
"author": {"type": "string"},
"converter": {
"type": "string",
- "enum": ["elite_pi", "proton_c", "kb2040", "promicro_rp2040", "blok", "bit_c_pro", "stemcell", "bonsai_c4"]
+ "minLength": 1,
+ "pattern": "^[a-z][0-9a-z_]*$"
},
"host_language": {"$ref": "qmk.definitions.v1#/text_identifier"},
"keyboard": {"$ref": "qmk.definitions.v1#/text_identifier"},
@@ -20,6 +21,20 @@
"items": {"type": "string"}
}
},
+ "encoders": {
+ "type": "array",
+ "items": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "required": ["ccw", "cw"],
+ "properties": {
+ "ccw": {"type": "string"},
+ "cw": {"type": "string"}
+ }
+ }
+ }
+ },
"macros": {
"type": "array",
"items": {