diff options
Diffstat (limited to 'data/schemas')
| -rw-r--r-- | data/schemas/definitions.jsonschema | 16 | ||||
| -rw-r--r-- | data/schemas/keyboard.jsonschema | 135 | ||||
| -rw-r--r-- | data/schemas/keycodes.jsonschema | 57 | ||||
| -rw-r--r-- | data/schemas/keymap.jsonschema | 4 | 
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"}, | 
