diff options
author | InigoGutierrez <inigogf.95@gmail.com> | 2022-09-25 16:02:54 +0200 |
---|---|---|
committer | InigoGutierrez <inigogf.95@gmail.com> | 2022-09-25 16:02:54 +0200 |
commit | 6afdd9d74da250e47ac64d6690bd19d037045e99 (patch) | |
tree | 661f6cfb244c02bcd1fbfe8fb9b2bd9242a91394 /data | |
parent | 93a55e61b59d20f7cd842cce02e5b18a63a23612 (diff) | |
parent | 1bdf4cdc22ae57d111efb2f7d71e405e5c7b3f11 (diff) | |
download | qmk_firmware-6afdd9d74da250e47ac64d6690bd19d037045e99.tar.gz qmk_firmware-6afdd9d74da250e47ac64d6690bd19d037045e99.zip |
Merge branch 'master' into taamas
Diffstat (limited to 'data')
-rw-r--r-- | data/mappings/defaults.json | 38 | ||||
-rw-r--r-- | data/mappings/info_config.json | 12 | ||||
-rw-r--r-- | data/mappings/info_rules.json | 11 | ||||
-rw-r--r-- | data/mappings/keyboard_aliases.json | 17 | ||||
-rw-r--r-- | data/schemas/api_keyboard.jsonschema | 1 | ||||
-rw-r--r-- | data/schemas/definitions.jsonschema | 41 | ||||
-rw-r--r-- | data/schemas/keyboard.jsonschema | 170 | ||||
-rw-r--r-- | data/schemas/keymap.jsonschema | 7 | ||||
-rw-r--r-- | data/templates/keyboard/readme.md | 2 |
9 files changed, 210 insertions, 89 deletions
diff --git a/data/mappings/defaults.json b/data/mappings/defaults.json index e62ab688d6..c855e64d33 100644 --- a/data/mappings/defaults.json +++ b/data/mappings/defaults.json @@ -16,6 +16,30 @@ "board": "QMK_PROTON_C", "pin_compatible": "promicro" }, + "kb2040": { + "processor": "RP2040", + "bootloader": "rp2040", + "board": "QMK_PM2040", + "pin_compatible": "promicro" + }, + "promicro_rp2040": { + "processor": "RP2040", + "bootloader": "rp2040", + "board": "QMK_PM2040", + "pin_compatible": "promicro" + }, + "blok": { + "processor": "RP2040", + "bootloader": "rp2040", + "board": "QMK_PM2040", + "pin_compatible": "promicro" + }, + "bit_c_pro": { + "processor": "RP2040", + "bootloader": "rp2040", + "board": "QMK_PM2040", + "pin_compatible": "promicro" + }, "bluepill": { "processor": "STM32F103", "bootloader": "stm32duino", @@ -30,6 +54,18 @@ "processor": "STM32F411", "bootloader": "stm32-dfu", "board": "BLACKPILL_STM32_F411" + }, + "stemcell": { + "processor": "STM32F411", + "bootloader": "tinyuf2", + "board": "STEMCELL", + "pin_compatible": "promicro" + }, + "bonsai_c4": { + "processor": "STM32F411", + "bootloader": "stm32-dfu", + "board": "GENERIC_STM32_F411XE", + "pin_compatible": "promicro" } } -}
\ No newline at end of file +} diff --git a/data/mappings/info_config.json b/data/mappings/info_config.json index 5f0d903bd7..608fe4e9ad 100644 --- a/data/mappings/info_config.json +++ b/data/mappings/info_config.json @@ -9,9 +9,11 @@ # warn_duplicate: Default `true`. Set to `false` to turn off warning when a value exists in both places # deprecated: Default `false`. Set to `true` to turn on warning when a value exists # invalid: Default `false`. Set to `true` to generate errors when a value exists + # replace_with: use with a key marked deprecated or invalid to designate a replacement "AUDIO_VOICES": {"info_key": "audio.voices", "value_type": "bool"}, "BACKLIGHT_BREATHING": {"info_key": "backlight.breathing", "value_type": "bool"}, "BREATHING_PERIOD": {"info_key": "backlight.breathing_period", "value_type": "int"}, + "BACKLIGHT_ON_STATE": {"info_key": "backlight.on_state", "value_type": "int"}, "BACKLIGHT_PIN": {"info_key": "backlight.pin"}, "BOTH_SHIFTS_TURNS_ON_CAPS_WORD": {"info_key": "caps_word.both_shifts_turns_on", "value_type": "bool"}, "CAPS_WORD_IDLE_TIMEOUT": {"info_key": "caps_word.idle_timeout", "value_type": "int"}, @@ -35,6 +37,9 @@ "LED_CAPS_LOCK_PIN": {"info_key": "indicators.caps_lock"}, "LED_NUM_LOCK_PIN": {"info_key": "indicators.num_lock"}, "LED_SCROLL_LOCK_PIN": {"info_key": "indicators.scroll_lock"}, + "LED_COMPOSE_PIN": {"info_key": "indicators.compose"}, + "LED_KANA_PIN": {"info_key": "indicators.kana"}, + "LED_PIN_ON_STATE": {"info_key": "indicators.on_state", "value_type": "int"}, "MANUFACTURER": {"info_key": "manufacturer"}, "MATRIX_HAS_GHOST": {"info_key": "matrix_pins.ghost", "value_type": "bool"}, "MATRIX_IO_DELAY": {"info_key": "matrix_pins.io_delay", "value_type": "int"}, @@ -52,7 +57,6 @@ "RGB_DI_PIN": {"info_key": "rgblight.pin"}, "RGBLED_NUM": {"info_key": "rgblight.led_count", "value_type": "int"}, "RGBLED_SPLIT": {"info_key": "rgblight.split_count", "value_type": "array.int"}, - "RGBLIGHT_ANIMATIONS": {"info_key": "rgblight.animations.all", "value_type": "bool"}, "RGBLIGHT_EFFECT_ALTERNATING": {"info_key": "rgblight.animations.alternating", "value_type": "bool"}, "RGBLIGHT_EFFECT_BREATHING": {"info_key": "rgblight.animations.breathing", "value_type": "bool"}, "RGBLIGHT_EFFECT_CHRISTMAS": {"info_key": "rgblight.animations.christmas", "value_type": "bool"}, @@ -79,7 +83,6 @@ "VENDOR_ID": {"info_key": "usb.vid", "value_type": "hex"}, "QMK_ESC_OUTPUT": {"info_key": "qmk_lufa_bootloader.esc_output"}, "QMK_ESC_INPUT": {"info_key": "qmk_lufa_bootloader.esc_input"}, - "QMK_KEYS_PER_SCAN": {"info_key": "qmk.keys_per_scan", "value_type": "int"}, "QMK_LED": {"info_key": "qmk_lufa_bootloader.led"}, "QMK_SPEAKER": {"info_key": "qmk_lufa_bootloader.speaker"}, "SECURE_UNLOCK_SEQUENCE": {"info_key": "secure.unlock_sequence", "value_type": "array.array.int", "to_json": false}, @@ -108,6 +111,9 @@ "NO_ACTION_MACRO": {"info_key": "_invalid.no_action_macro", "invalid": true}, "NO_ACTION_FUNCTION": {"info_key": "_invalid.no_action_function", "invalid": true}, "DESCRIPTION": {"info_key": "_invalid.usb_description", "invalid": true}, - "DEBOUNCING_DELAY": {"info_key": "_invalid.debouncing_delay", "invalid": true}, + "DEBOUNCING_DELAY": {"info_key": "_invalid.debouncing_delay", "invalid": true, "replace_with": "DEBOUNCE"}, "PREVENT_STUCK_MODIFIERS": {"info_key": "_invalid.prevent_stuck_mods", "invalid": true}, + "UNUSED_PINS": {"info_key": "_invalid.unused_pins", "deprecated": true}, + "RGBLIGHT_ANIMATIONS": {"info_key": "rgblight.animations.all", "value_type": "bool", "deprecated": true}, + "QMK_KEYS_PER_SCAN": {"info_key": "qmk.keys_per_scan", "value_type": "int", "deprecated": true} } diff --git a/data/mappings/info_rules.json b/data/mappings/info_rules.json index d4eec37ba0..a4da10fd31 100644 --- a/data/mappings/info_rules.json +++ b/data/mappings/info_rules.json @@ -9,15 +9,18 @@ # warn_duplicate: Default `true`. Set to `false` to turn off warning when a value exists in both places # deprecated: Default `false`. Set to `true` to turn on warning when a value exists # invalid: Default `false`. Set to `true` to generate errors when a value exists + # replace_with: use with a key marked deprecated or invalid to designate a replacement "BOARD": {"info_key": "board"}, "BOOTLOADER": {"info_key": "bootloader", "warn_duplicate": false}, "BLUETOOTH": {"info_key": "bluetooth.driver"}, "CAPS_WORD_ENABLE": {"info_key": "caps_word.enabled", "value_type": "bool"}, + "ENCODER_ENABLE": {"info_key": "encoder.enabled", "value_type": "bool"}, "FIRMWARE_FORMAT": {"info_key": "build.firmware_format"}, "KEYBOARD_SHARED_EP": {"info_key": "usb.shared_endpoint.keyboard", "value_type": "bool"}, "MOUSE_SHARED_EP": {"info_key": "usb.shared_endpoint.mouse", "value_type": "bool"}, "LAYOUTS": {"info_key": "community_layouts", "value_type": "list"}, "LED_MATRIX_DRIVER": {"info_key": "led_matrix.driver"}, + "RGB_MATRIX_DRIVER": {"info_key": "rgb_matrix.driver"}, "LTO_ENABLE": {"info_key": "build.lto", "value_type": "bool"}, "MCU": {"info_key": "processor", "warn_duplicate": false}, "MOUSEKEY_ENABLE": {"info_key": "mouse_key.enabled", "value_type": "bool"}, @@ -27,9 +30,11 @@ "SPLIT_KEYBOARD": {"info_key": "split.enabled", "value_type": "bool"}, "SPLIT_TRANSPORT": {"info_key": "split.transport.protocol", "to_c": false}, "WAIT_FOR_USB": {"info_key": "usb.wait_for", "value_type": "bool"}, + "STENO_ENABLE": {"info_key": "stenography.enabled", "value_type": "bool"}, + "STENO_PROTOCOL": {"info_key": "stenography.protocol"}, # Items we want flagged in lint - "CTPC": {"info_key": "_deprecated.ctpc", "deprecated": true}, - "CONVERT_TO_PROTON_C": {"info_key": "_deprecated.ctpc", "deprecated": true}, - "VIAL_ENABLE": {"info_key": "_invalid.vial", "invalid": true}, + "CTPC": {"info_key": "_deprecated.ctpc", "deprecated": true, "replace_with": "CONVERT_TO=proton_c"}, + "CONVERT_TO_PROTON_C": {"info_key": "_deprecated.ctpc", "deprecated": true, "replace_with": "CONVERT_TO=proton_c"}, + "VIAL_ENABLE": {"info_key": "_invalid.vial", "invalid": true} } diff --git a/data/mappings/keyboard_aliases.json b/data/mappings/keyboard_aliases.json index 93be17cf81..3e96451086 100644 --- a/data/mappings/keyboard_aliases.json +++ b/data/mappings/keyboard_aliases.json @@ -242,9 +242,6 @@ honeycomb: { target: 'keyhive/honeycomb' }, - id80: { - target: 'id80/ansi' - }, idb_60: { target: 'idb/idb_60', layouts: { @@ -826,6 +823,9 @@ geminate60: { target: 'weirdo/geminate60' }, + gentleman65: { + target: 'jkeys_design/gentleman65' + }, georgi: { target: 'gboards/georgi' }, @@ -844,6 +844,9 @@ halberd: { target: 'kagizaraya/halberd' }, + handwired/hillside/0_1: { + target: 'handwired/hillside/48' + } hecomi/alpha: { target: 'takashiski/hecomi/alpha' }, @@ -857,7 +860,13 @@ target: 'idobao/id67/rgb' }, id80: { - target: 'idobao/id80/v1' + target: 'idobao/id80/v2/ansi' + }, + idobao/id80/v1/ansi: { + target: 'idobao/id80/v2/ansi' + }, + idobao/id80/v1/iso: { + target: 'idobao/id80/v2/iso' }, id87: { target: 'idobao/id87/v1' diff --git a/data/schemas/api_keyboard.jsonschema b/data/schemas/api_keyboard.jsonschema index d638658a1d..6a30b5d990 100644 --- a/data/schemas/api_keyboard.jsonschema +++ b/data/schemas/api_keyboard.jsonschema @@ -9,7 +9,6 @@ "properties": { "url": {"type": "string"} } - }, "parse_errors": {"$ref": "qmk.definitions.v1#/string_array"}, "parse_warnings": {"$ref": "qmk.definitions.v1#/string_array"}, diff --git a/data/schemas/definitions.jsonschema b/data/schemas/definitions.jsonschema index 1bdfbbeb03..8b68a58482 100644 --- a/data/schemas/definitions.jsonschema +++ b/data/schemas/definitions.jsonschema @@ -1,5 +1,5 @@ { - "$schema": "http://json-schema.org/draft-07/schema#", + "$schema": "https://json-schema.org/draft/2020-12/schema#", "$id": "qmk.definitions.v1", "title": "Common definitions used across QMK's jsonschemas.", "type": "object", @@ -65,8 +65,7 @@ ] }, "key_unit": { - "type": "number", - "min": 0.25 + "type": "number" }, "keyboard": { "oneOf": [ @@ -103,8 +102,11 @@ "pattern": "^LINE_PIN\\d{1,2}$" }, { - "type": "number", - "multipleOf": 1 + "type": "string", + "pattern": "^GP\\d{1,2}$" + }, + { + "type": "integer" }, { "type": "null" @@ -115,14 +117,12 @@ "type": "number" }, "signed_int": { - "type": "number", - "multipleOf": 1 + "type": "integer" }, "signed_int_8": { - "type": "number", - "min": -127, - "max": 127, - "multipleOf": 1 + "type": "integer", + "minimum": -127, + "maximum": 127 }, "string_array": { "type": "array", @@ -138,17 +138,20 @@ }, "unsigned_decimal": { "type": "number", - "min": 0 + "minimum": 0 }, "unsigned_int": { - "type": "number", - "min": 0, - "multipleOf": 1 + "type": "integer", + "minimum": 0 }, "unsigned_int_8": { - "type": "number", - "min": 0, - "max": 255, - "multipleOf": 1 + "type": "integer", + "minimum": 0, + "maximum": 255 + }, + "bit": { + "type": "integer", + "minimum": 0, + "maximum": 1 } } diff --git a/data/schemas/keyboard.jsonschema b/data/schemas/keyboard.jsonschema index fd60920578..0308f45116 100644 --- a/data/schemas/keyboard.jsonschema +++ b/data/schemas/keyboard.jsonschema @@ -1,7 +1,27 @@ { - "$schema": "http://json-schema.org/draft-07/schema#", + "$schema": "https://json-schema.org/draft/2020-12/schema#", "$id": "qmk.keyboard.v1", "title": "Keyboard Information", + "definitions": { + "encoder_config": { + "type": "object", + "properties": { + "rotary": { + "type": "array", + "items": { + "type": "object", + "additionalProperties": false, + "required": ["pin_a", "pin_b"], + "properties": { + "pin_a": {"$ref": "qmk.definitions.v1#/mcu_pin"}, + "pin_b": {"$ref": "qmk.definitions.v1#/mcu_pin"}, + "resolution": {"$ref": "qmk.definitions.v1#/unsigned_int"} + } + } + } + } + } + }, "type": "object", "properties": { "keyboard_name": {"$ref": "qmk.definitions.v1#/text_identifier"}, @@ -14,7 +34,7 @@ }, "development_board": { "type": "string", - "enum": ["promicro", "elite_c", "proton_c", "bluepill", "blackpill_f401", "blackpill_f411"] + "enum": ["promicro", "elite_c", "proton_c", "kb2040", "promicro_rp2040", "blok", "bit_c_pro", "stemcell", "bluepill", "blackpill_f401", "blackpill_f411", "bonsai_c4"] }, "pin_compatible": { "type": "string", @@ -22,7 +42,7 @@ }, "processor": { "type": "string", - "enum": ["cortex-m0", "cortex-m0plus", "cortex-m3", "cortex-m4", "MKL26Z64", "MK20DX128", "MK20DX256", "MK66FX1M0", "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", "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", @@ -40,12 +60,12 @@ "breathing": {"type": "boolean"}, "breathing_period": {"$ref": "qmk.definitions.v1#/unsigned_int_8"}, "levels": { - "type": "number", - "min": 1, - "max": 31, - "multipleOf": 1 + "type": "integer", + "minimum": 1, + "maximum": 31 }, - "pin": {"$ref": "qmk.definitions.v1#/mcu_pin"} + "pin": {"$ref": "qmk.definitions.v1#/mcu_pin"}, + "on_state": {"$ref": "qmk.definitions.v1#/bit"} } }, "bluetooth": { @@ -56,7 +76,7 @@ "type": "string", "enum": ["BluefruitLE", "RN42"] }, - "lto": {"type": "boolean"}, + "lto": {"type": "boolean"} } }, "board": { @@ -66,7 +86,29 @@ }, "bootloader": { "type": "string", - "enum": ["atmel-dfu", "bootloadhid", "bootloadHID", "custom", "caterina", "halfkay", "kiibohd", "lufa-dfu", "lufa-ms", "md-boot", "qmk-dfu", "qmk-hid", "stm32-dfu", "stm32duino", "gd32v-dfu", "wb32-dfu", "unknown", "usbasploader", "USBasp", "tinyuf2"], + "enum": [ + "atmel-dfu", + "bootloadhid", + "bootloadHID", + "caterina", + "custom", + "gd32v-dfu", + "halfkay", + "kiibohd", + "lufa-dfu", + "lufa-ms", + "md-boot", + "qmk-dfu", + "qmk-hid", + "rp2040", + "stm32-dfu", + "stm32duino", + "tinyuf2", + "unknown", + "usbasploader", + "USBasp", + "wb32-dfu" + ] }, "bootloader_instructions": { "type": "string", @@ -84,7 +126,7 @@ "type": "string", "enum": ["bin", "hex", "uf2"] }, - "lto": {"type": "boolean"}, + "lto": {"type": "boolean"} } }, "diode_direction": { @@ -99,8 +141,8 @@ "enabled": {"type": "boolean"}, "both_shifts_turns_on": {"type": "boolean"}, "double_tap_shift_turns_on": {"type": "boolean"}, - "idle_timeout": {"$ref": "qmk.definitions.v1#/unsigned_int"}, - }, + "idle_timeout": {"$ref": "qmk.definitions.v1#/unsigned_int"} + } }, "combo": { "type": "object", @@ -113,13 +155,22 @@ "type": "array", "items": {"$ref": "qmk.definitions.v1#/filename"} }, + "encoder": { + "$ref": "#/definitions/encoder_config", + "properties": { + "enabled": {"type": "boolean"} + } + }, "features": {"$ref": "qmk.definitions.v1#/boolean_array"}, "indicators": { "type": "object", "properties": { "caps_lock": {"$ref": "qmk.definitions.v1#/mcu_pin"}, "num_lock": {"$ref": "qmk.definitions.v1#/mcu_pin"}, - "scroll_lock": {"$ref": "qmk.definitions.v1#/mcu_pin"} + "scroll_lock": {"$ref": "qmk.definitions.v1#/mcu_pin"}, + "compose": {"$ref": "qmk.definitions.v1#/mcu_pin"}, + "kana": {"$ref": "qmk.definitions.v1#/mcu_pin"}, + "on_state": {"$ref": "qmk.definitions.v1#/bit"} } }, "layout_aliases": { @@ -154,12 +205,11 @@ "minItems": 2, "maxItems": 2, "items": { - "type": "number", - "min": 0, - "multipleOf": 1 + "type": "integer", + "minimum": 0 } }, - "r": {"$ref": "qmk.definitions.v1#/unsigned_decimal"}, + "r": {"$ref": "qmk.definitions.v1#/signed_decimal"}, "rx": {"$ref": "qmk.definitions.v1#/unsigned_decimal"}, "ry": {"$ref": "qmk.definitions.v1#/unsigned_decimal"}, "h": {"$ref": "qmk.definitions.v1#/key_unit"}, @@ -193,18 +243,17 @@ "items": {"$ref": "qmk.definitions.v1#/mcu_pin_array"} }, "cols": {"$ref": "qmk.definitions.v1#/mcu_pin_array"}, - "rows": {"$ref": "qmk.definitions.v1#/mcu_pin_array"}, - "unused": {"$ref": "qmk.definitions.v1#/mcu_pin_array"} + "rows": {"$ref": "qmk.definitions.v1#/mcu_pin_array"} } }, "mouse_key": { "type": "object", "properties": { "enabled": {"type": "boolean"}, - "delay": {"$ref": "qmk.definitions.v1#/unsigned_int_8"} - "interval": {"$ref": "qmk.definitions.v1#/unsigned_int_8"} - "max_speed": {"$ref": "qmk.definitions.v1#/unsigned_int_8"} - "time_to_max": {"$ref": "qmk.definitions.v1#/unsigned_int_8"} + "delay": {"$ref": "qmk.definitions.v1#/unsigned_int_8"}, + "interval": {"$ref": "qmk.definitions.v1#/unsigned_int_8"}, + "max_speed": {"$ref": "qmk.definitions.v1#/unsigned_int_8"}, + "time_to_max": {"$ref": "qmk.definitions.v1#/unsigned_int_8"}, "wheel_delay": {"$ref": "qmk.definitions.v1#/unsigned_int_8"} } }, @@ -230,14 +279,13 @@ "minItems": 2, "maxItems": 2, "items": { - "type": "number", - "min": 0, - "multipleOf": 1 + "type": "integer", + "minimum": 0 } }, "x": {"$ref": "qmk.definitions.v1#/key_unit"}, "y": {"$ref": "qmk.definitions.v1#/key_unit"}, - "flags": {"$ref": "qmk.definitions.v1#/unsigned_decimal"} + "flags": {"$ref": "qmk.definitions.v1#/unsigned_int_8"} } } } @@ -258,14 +306,13 @@ "minItems": 2, "maxItems": 2, "items": { - "type": "number", - "min": 0, - "multipleOf": 1 + "type": "integer", + "minimum": 0 } }, "x": {"$ref": "qmk.definitions.v1#/key_unit"}, "y": {"$ref": "qmk.definitions.v1#/key_unit"}, - "flags": {"$ref": "qmk.definitions.v1#/unsigned_decimal"} + "flags": {"$ref": "qmk.definitions.v1#/unsigned_int_8"} } } } @@ -290,10 +337,9 @@ "blink": {"type": "boolean"}, "enabled": {"type": "boolean"}, "max": { - "type": "number", - "min": 1, - "max": 32, - "multipleOf": 1 + "type": "integer", + "minimum": 1, + "maximum": 32 }, "override_rgb": {"type": "boolean"} } @@ -307,8 +353,8 @@ "split": {"type": "boolean"}, "split_count": { "type": "array", - "minLength": 2, - "maxLength": 2, + "minItems": 2, + "maxItems": 2, "items": {"$ref": "qmk.definitions.v1#/unsigned_int"} } } @@ -322,21 +368,31 @@ "idle_timeout": {"$ref": "qmk.definitions.v1#/unsigned_int"}, "unlock_sequence": { "type": "array", - "minLength": 1, - "maxLength": 5, + "minItems": 1, + "maxItems": 5, "items": { "type": "array", "minItems": 2, "maxItems": 2, "items": { - "type": "number", - "min": 0, - "multipleOf": 1 + "type": "integer", + "minimum": 0 } } } } }, + "stenography": { + "type": "object", + "additionalProperties": false, + "properties": { + "enabled": {"type": "boolean"}, + "protocol": { + "type": "string", + "enum": ["all", "geminipr", "txbolt"] + } + } + }, "split": { "type": "object", "additionalProperties": false, @@ -365,16 +421,24 @@ } } }, + "encoder": { + "type": "object", + "additionalProperties": false, + "properties": { + "right": { + "$ref": "#/definitions/encoder_config" + } + } + }, "main": { "type": "string", "enum": ["eeprom", "left", "matrix_grid", "pin", "right"] }, "soft_serial_pin": {"$ref": "qmk.definitions.v1#/mcu_pin"}, "soft_serial_speed": { - "type": "number", - "min": 0, - "max": 5, - "multipleOf": 1 + "type": "integer", + "minimum": 0, + "maximum": 5 }, "transport": { "type": "object", @@ -416,7 +480,7 @@ "retro_per_key": {"type": "boolean"}, "term": {"$ref": "qmk.definitions.v1#/unsigned_int"}, "term_per_key": {"type": "boolean"}, - "toggle": {"$ref": "qmk.definitions.v1#/unsigned_int"}, + "toggle": {"$ref": "qmk.definitions.v1#/unsigned_int"} } }, "usb": { @@ -428,7 +492,7 @@ "force_nkro": {"type": "boolean"}, "pid": {"$ref": "qmk.definitions.v1#/hex_number_4d"}, "vid": {"$ref": "qmk.definitions.v1#/hex_number_4d"}, - "max_power": {"$ref": "qmk.definitions.v1#/unsigned_int_8"}, + "max_power": {"$ref": "qmk.definitions.v1#/unsigned_int"}, "no_startup_check": {"type": "boolean"}, "polling_interval": {"$ref": "qmk.definitions.v1#/unsigned_int_8"}, "shared_endpoint": { @@ -439,8 +503,8 @@ "mouse": {"type": "boolean"} } }, - "suspend_wakeup_delay": {"$ref": "qmk.definitions.v1#/unsigned_int_8"}, - "wait_for": {"type": "boolean"}, + "suspend_wakeup_delay": {"$ref": "qmk.definitions.v1#/unsigned_int"}, + "wait_for": {"type": "boolean"} } }, "qmk": { @@ -448,8 +512,8 @@ "additionalProperties": false, "properties": { "keys_per_scan": {"$ref": "qmk.definitions.v1#/unsigned_int_8"}, - "tap_keycode_delay": {"$ref": "qmk.definitions.v1#/unsigned_int_8"}, - "tap_capslock_delay": {"$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"} } }, "qmk_lufa_bootloader": { diff --git a/data/schemas/keymap.jsonschema b/data/schemas/keymap.jsonschema index 3803301a66..0a4fb5d453 100644 --- a/data/schemas/keymap.jsonschema +++ b/data/schemas/keymap.jsonschema @@ -1,5 +1,5 @@ { - "$schema": "http://json-schema.org/draft-07/schema#", + "$schema": "https://json-schema.org/draft/2020-12/schema#", "$id": "qmk.keymap.v1", "title": "Keymap Information", "type": "object", @@ -31,7 +31,7 @@ "properties": { "action": { "type": "string", - "enum": ['beep', 'delay', 'down', 'tap', 'up'] + "enum": ["beep", "delay", "down", "tap", "up"] }, "keycodes": { "type": "array", @@ -50,8 +50,7 @@ }, "config": {"$ref": "qmk.keyboard.v1"}, "notes": { - "type": "string", - "description": "asdf" + "type": "string" } }, "required": [ diff --git a/data/templates/keyboard/readme.md b/data/templates/keyboard/readme.md index ca703c53f0..ab4f2d17ef 100644 --- a/data/templates/keyboard/readme.md +++ b/data/templates/keyboard/readme.md @@ -24,4 +24,4 @@ Enter the bootloader in 3 ways: * **Bootmagic reset**: Hold down the key at (0,0) in the matrix (usually the top left key or Escape) and plug in the keyboard * **Physical reset button**: Briefly press the button on the back of the PCB - some may have pads you must short instead -* **Keycode in layout**: Press the key mapped to `RESET` if it is available +* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available |