diff options
Diffstat (limited to 'data')
-rw-r--r-- | data/mappings/defaults.json | 35 | ||||
-rw-r--r-- | data/mappings/info_config.json | 10 | ||||
-rw-r--r-- | data/mappings/info_rules.json | 7 | ||||
-rw-r--r-- | data/schemas/definitions.jsonschema | 5 | ||||
-rw-r--r-- | data/schemas/keyboard.jsonschema | 98 | ||||
-rw-r--r-- | data/templates/api/readme.md | 5 |
6 files changed, 152 insertions, 8 deletions
diff --git a/data/mappings/defaults.json b/data/mappings/defaults.json new file mode 100644 index 0000000000..e62ab688d6 --- /dev/null +++ b/data/mappings/defaults.json @@ -0,0 +1,35 @@ +{ + "development_board": { + "promicro": { + "processor": "atmega32u4", + "bootloader": "caterina", + "pin_compatible": "promicro" + }, + "elite_c": { + "processor": "atmega32u4", + "bootloader": "atmel-dfu", + "pin_compatible": "promicro" + }, + "proton_c": { + "processor": "STM32F303", + "bootloader": "stm32-dfu", + "board": "QMK_PROTON_C", + "pin_compatible": "promicro" + }, + "bluepill": { + "processor": "STM32F103", + "bootloader": "stm32duino", + "board": "STM32_F103_STM32DUINO" + }, + "blackpill_f401": { + "processor": "STM32F401", + "bootloader": "stm32-dfu", + "board": "BLACKPILL_STM32_F401" + }, + "blackpill_f411": { + "processor": "STM32F411", + "bootloader": "stm32-dfu", + "board": "BLACKPILL_STM32_F411" + } + } +}
\ No newline at end of file diff --git a/data/mappings/info_config.json b/data/mappings/info_config.json index cfe8807d43..d9f96b5892 100644 --- a/data/mappings/info_config.json +++ b/data/mappings/info_config.json @@ -3,7 +3,7 @@ { # Format: # <config.h key>: {"info_key": <info.json key>, ["value_type": <value_type>], ["to_json": <true/false>], ["to_c": <true/false>]} - # value_type: one of "array", "array.int", "bool", "int", "hex", "list", "mapping" + # value_type: one of "array", "array.int", "bool", "int", "hex", "list", "mapping", "str", "raw" # to_json: Default `true`. Set to `false` to exclude this mapping from info.json # to_c: Default `true`. Set to `false` to exclude this mapping from config.h # warn_duplicate: Default `true`. Set to `false` to turn off warning when a value exists in both places @@ -11,14 +11,17 @@ "BACKLIGHT_BREATHING": {"info_key": "backlight.breathing", "value_type": "bool"}, "BREATHING_PERIOD": {"info_key": "backlight.breathing_period", "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"}, "COMBO_COUNT": {"info_key": "combo.count", "value_type": "int"}, "COMBO_TERM": {"info_key": "combo.term", "value_type": "int"}, "DEBOUNCE": {"info_key": "debounce", "value_type": "int"}, "DEVICE_VER": {"info_key": "usb.device_ver", "value_type": "hex"}, # TODO: Replace ^^^ with vvv #"DEVICE_VER": {"info_key": "usb.device_version", "value_type": "bcd_version"}, - "DESCRIPTION": {"info_key": "keyboard_folder", "to_json": false}, + "DESCRIPTION": {"info_key": "keyboard_folder", "value_type": "str", "to_json": false}, "DIODE_DIRECTION": {"info_key": "diode_direction"}, + "DOUBLE_TAP_SHIFT_TURNS_ON_CAPS_WORD": {"info_key": "caps_word.double_tap_shift_turns_on", "value_type": "bool"}, "FORCE_NKRO": {"info_key": "usb.force_nkro", "value_type": "bool"}, "DYNAMIC_KEYMAP_EEPROM_MAX_ADDR": {"info_key": "dynamic_keymap.eeprom_max_addr", "value_type": "int"}, "DYNAMIC_KEYMAP_LAYER_COUNT": {"info_key": "dynamic_keymap.layer_count", "value_type": "int"}, @@ -78,6 +81,9 @@ "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}, + "SECURE_UNLOCK_TIMEOUT": {"info_key": "secure.unlock_timeout", "value_type": "int"}, + "SECURE_IDLE_TIMEOUT": {"info_key": "secure.idle_timeout", "value_type": "int"}, "SENDSTRING_BELL": {"info_key": "audio.macro_beep", "value_type": "bool"}, "SPLIT_MODS_ENABLE": {"info_key": "split.transport.sync_modifiers", "value_type": "bool"}, "SPLIT_TRANSPORT_MIRROR": {"info_key": "split.transport.sync_matrix_state", "value_type": "bool"}, diff --git a/data/mappings/info_rules.json b/data/mappings/info_rules.json index aea67e04c8..a8b39afbd1 100644 --- a/data/mappings/info_rules.json +++ b/data/mappings/info_rules.json @@ -3,13 +3,14 @@ { # Format: # <rules.mk key>: {"info_key": <info.json key>, ["value_type": <value_type>], ["to_json": <true/false>], ["to_c": <true/false>]} - # value_type: one of "array", "array.int", "bool", "int", "list", "hex", "mapping" + # value_type: one of "array", "array.int", "bool", "int", "list", "hex", "mapping", "str", "raw" # to_json: Default `true`. Set to `false` to exclude this mapping from info.json # to_c: Default `true`. Set to `false` to exclude this mapping from rules.mk # warn_duplicate: Default `true`. Set to `false` to turn off warning when a value exists in both places "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"}, "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"}, @@ -19,7 +20,9 @@ "MCU": {"info_key": "processor", "warn_duplicate": false}, "MOUSEKEY_ENABLE": {"info_key": "mouse_key.enabled", "value_type": "bool"}, "NO_USB_STARTUP_CHECK": {"info_key": "usb.no_startup_check", "value_type": "bool"}, + "PIN_COMPATIBLE": {"info_key": "pin_compatible"}, + "SECURE_ENABLE": {"info_key": "secure.enabled", "value_type": "bool"}, "SPLIT_KEYBOARD": {"info_key": "split.enabled", "value_type": "bool"}, - "SPLIT_TRANSPORT": {"info_key": "split.transport.protocol", "value_type": "str", "to_c": false}, + "SPLIT_TRANSPORT": {"info_key": "split.transport.protocol", "to_c": false}, "WAIT_FOR_USB": {"info_key": "usb.wait_for", "value_type": "bool"} } diff --git a/data/schemas/definitions.jsonschema b/data/schemas/definitions.jsonschema index cca30af827..1bdfbbeb03 100644 --- a/data/schemas/definitions.jsonschema +++ b/data/schemas/definitions.jsonschema @@ -41,8 +41,6 @@ "LAYOUT_2x2uC", "LAYOUT_2x3uC", "LAYOUT_625uC", - "LAYOUT_ANSI_DEFAULT", - "LAYOUT_JP", "LAYOUT_ortho_3x12_1x2uC", "LAYOUT_ortho_4x12_1x2uC", "LAYOUT_ortho_4x12_1x2uL", @@ -57,8 +55,7 @@ "LAYOUT_planck_1x2uR", "LAYOUT_preonic_1x2uC", "LAYOUT_preonic_1x2uL", - "LAYOUT_preonic_1x2uR", - "LAYOUT_reviung34_2uL" + "LAYOUT_preonic_1x2uR" ] }, { diff --git a/data/schemas/keyboard.jsonschema b/data/schemas/keyboard.jsonschema index adb63fd13e..ba1a6b6cc9 100644 --- a/data/schemas/keyboard.jsonschema +++ b/data/schemas/keyboard.jsonschema @@ -12,6 +12,14 @@ "type": "string", "format": "uri" }, + "development_board": { + "type": "string", + "enum": ["promicro", "elite_c", "proton_c", "bluepill", "blackpill_f401", "blackpill_f411"] + }, + "pin_compatible": { + "type": "string", + "enum": ["promicro"] + }, "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", "atmega16u2", "atmega32u2", "atmega16u4", "atmega32u4", "at90usb162", "at90usb646", "at90usb647", "at90usb1286", "at90usb1287", "atmega32a", "atmega328p", "atmega328", "attiny85", "unknown"] @@ -84,6 +92,16 @@ "enum": ["COL2ROW", "ROW2COL"] }, "debounce": {"$ref": "qmk.definitions.v1#/unsigned_int"}, + "caps_word": { + "type": "object", + "additionalProperties": false, + "properties": { + "enabled": {"type": "boolean"}, + "both_shifts_turns_on": {"type": "boolean"}, + "double_tap_shift_turns_on": {"type": "boolean"}, + "idle_timeout": {"$ref": "qmk.definitions.v1#/unsigned_int"}, + }, + }, "combo": { "type": "object", "properties": { @@ -194,6 +212,62 @@ "timeout": {"$ref": "qmk.definitions.v1#/unsigned_int"} } }, + "led_matrix": { + "type": "object", + "properties": { + "driver": {"type": "string"}, + "layout": { + "type": "array", + "items": { + "type": "object", + "additionalProperties": false, + "properties": { + "matrix": { + "type": "array", + "minItems": 2, + "maxItems": 2, + "items": { + "type": "number", + "min": 0, + "multipleOf": 1 + } + }, + "x": {"$ref": "qmk.definitions.v1#/key_unit"}, + "y": {"$ref": "qmk.definitions.v1#/key_unit"}, + "flags": {"$ref": "qmk.definitions.v1#/unsigned_decimal"} + } + } + } + } + }, + "rgb_matrix": { + "type": "object", + "properties": { + "driver": {"type": "string"}, + "layout": { + "type": "array", + "items": { + "type": "object", + "additionalProperties": false, + "properties": { + "matrix": { + "type": "array", + "minItems": 2, + "maxItems": 2, + "items": { + "type": "number", + "min": 0, + "multipleOf": 1 + } + }, + "x": {"$ref": "qmk.definitions.v1#/key_unit"}, + "y": {"$ref": "qmk.definitions.v1#/key_unit"}, + "flags": {"$ref": "qmk.definitions.v1#/unsigned_decimal"} + } + } + } + } + }, "rgblight": { "type": "object", "additionalProperties": false, @@ -236,6 +310,30 @@ } } }, + "secure": { + "type": "object", + "additionalProperties": false, + "properties": { + "enabled": {"type": "boolean"}, + "unlock_timeout": {"$ref": "qmk.definitions.v1#/unsigned_int"}, + "idle_timeout": {"$ref": "qmk.definitions.v1#/unsigned_int"}, + "unlock_sequence": { + "type": "array", + "minLength": 1, + "maxLength": 5, + "items": { + "type": "array", + "minItems": 2, + "maxItems": 2, + "items": { + "type": "number", + "min": 0, + "multipleOf": 1 + } + } + } + } + }, "split": { "type": "object", "additionalProperties": false, diff --git a/data/templates/api/readme.md b/data/templates/api/readme.md new file mode 100644 index 0000000000..a4b2c6bce7 --- /dev/null +++ b/data/templates/api/readme.md @@ -0,0 +1,5 @@ +# QMK Keyboard Metadata + +This directory contains machine parsable data about keyboards supported by QMK. The latest version is always available online at <https://keyboards.qmk.fm>. + +Do not edit anything here by hand. It is generated with the `qmk generate-api` command. |