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/mappings/keyboard_aliases.json | 86 | ||||
-rw-r--r-- | data/schemas/definitions.jsonschema | 21 | ||||
-rw-r--r-- | data/schemas/keyboard.jsonschema | 101 | ||||
-rw-r--r-- | data/templates/api/readme.md | 5 |
7 files changed, 252 insertions, 13 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/mappings/keyboard_aliases.json b/data/mappings/keyboard_aliases.json index 343812718e..93be17cf81 100644 --- a/data/mappings/keyboard_aliases.json +++ b/data/mappings/keyboard_aliases.json @@ -11,6 +11,9 @@ '2_milk': { target: 'spaceman/2_milk' }, + 'absinthe': { + target: 'keyhive/absinthe' + }, 'aeboards/constellation': { target: 'aeboards/constellation/rev1' }, @@ -26,6 +29,18 @@ alice: { target: 'tgr/alice' }, + amj40: { + target: 'amjkeyboard/amj40' + }, + amj60: { + target: 'amjkeyboard/amj60' + }, + amj96: { + target: 'amjkeyboard/amj96' + }, + amjpad: { + target: 'amjkeyboard/amjpad' + }, angel17: { target: 'angel17/alpha' }, @@ -33,7 +48,10 @@ target: 'angel64/alpha' }, at101_blackheart: { - target: 'at101_bh' + target: 'viktus/at101_bh' + }, + at101_bh: { + target: 'viktus/at101_bh' }, 'atom47/rev2': { target: 'maartenwut/atom47/rev2' @@ -158,6 +176,9 @@ ergoinu: { target: 'dm9records/ergoinu' }, + ergosaurus: { + target: 'keyhive/ergosaurus' + }, 'exclusive/e85': { target: 'exclusive/e85/hotswap' }, @@ -165,7 +186,13 @@ target: 'gh60/revc' }, 'gmmk/pro': { - target: 'gmmk/pro/ansi' + target: 'gmmk/pro/rev1/ansi' + }, + 'gmmk/pro/ansi': { + target: 'gmmk/pro/rev1/ansi' + }, + 'gmmk/pro/iso': { + target: 'gmmk/pro/rev1/iso' }, 'handwired/ferris': { target: 'ferris/0_1' @@ -212,6 +239,9 @@ 'helix/rev2/under/oled': { target: 'helix/rev2/under' }, + honeycomb: { + target: 'keyhive/honeycomb' + }, id80: { target: 'id80/ansi' }, @@ -260,6 +290,9 @@ 'kyria': { target: 'splitkb/kyria' }, + lattice60: { + target: 'keyhive/lattice60' + }, 'lazydesigners/the60': { target: 'lazydesigners/the60/rev1' }, @@ -392,7 +425,13 @@ target: 'oddball/v1' }, omnikey_blackheart: { - target: 'omnikey_bh' + target: 'viktus/omnikey_bh' + }, + omnikey_bh: { + target: 'viktus/omnikey_bh' + }, + opus: { + target: 'keyhive/opus' }, 'pabile/p20': { target: 'pabile/p20/ver1' @@ -489,6 +528,12 @@ skog: { target: 'percent/skog' }, + smallice: { + target: 'keyhive/smallice' + }, + southpole: { + target: 'keyhive/southpole' + }, speedo: { target: 'cozykeys/speedo/v2' }, @@ -577,7 +622,10 @@ target: 'ymd75/rev1' }, z150_blackheart: { - target: 'z150_bh' + target: 'viktus/z150_bh' + }, + z150_bh:{ + target: 'viktus/z150_bh' }, zeal60: { target: 'wilba_tech/zeal60' @@ -904,6 +952,9 @@ meishi2: { target: 'biacco42/meishi2' }, + melody96: { + target: 'ymdk/melody96' + }, minidox/rev1: { target: 'maple_computing/minidox/rev1' }, @@ -919,6 +970,18 @@ montex: { target: 'idobao/montex/v1' }, + mt40: { + target: 'mt/mt40' + }, + mt64rgb: { + target: 'mt/mt64rgb' + }, + mt84: { + target: 'mt/mt84' + }, + mt980: { + target: 'mt/mt980' + }, nafuda: { target: 'salicylic_acid3/nafuda' }, @@ -943,6 +1006,9 @@ namecard2x4: { target: 'takashiski/namecard2x4' }, + navi10: { + target: 'keyhive/navi10' + }, nebula12: { target: 'spaceholdings/nebula12' }, @@ -1144,6 +1210,12 @@ underscore33/rev2: { target: 'tominabox1/underscore33/rev2' }, + uno: { + target: 'keyhive/uno' + }, + ut472: { + target: 'keyhive/ut472' + }, vn66: { target: 'hnahkb/vn66' }, @@ -1153,6 +1225,12 @@ wanten: { target: 'qpockets/wanten' }, + 'wheatfield/blocked65': { + target: 'mt/blocked65' + }, + 'wheatfield/split75': { + target: 'mt/split75' + }, whitefox: { target: 'input_club/whitefox' }, diff --git a/data/schemas/definitions.jsonschema b/data/schemas/definitions.jsonschema index 46aba52cbd..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" ] }, { @@ -71,6 +68,22 @@ "type": "number", "min": 0.25 }, + "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_/]*$" + } + ] + }, "mcu_pin_array": { "type": "array", "items": {"$ref": "#/mcu_pin"} diff --git a/data/schemas/keyboard.jsonschema b/data/schemas/keyboard.jsonschema index a8b3d06933..dc5592220b 100644 --- a/data/schemas/keyboard.jsonschema +++ b/data/schemas/keyboard.jsonschema @@ -5,15 +5,24 @@ "type": "object", "properties": { "keyboard_name": {"$ref": "qmk.definitions.v1#/text_identifier"}, + "keyboard_folder": {"$ref": "qmk.definitions.v1#/keyboard"}, "maintainer": {"$ref": "qmk.definitions.v1#/text_identifier"}, "manufacturer": {"$ref": "qmk.definitions.v1#/text_identifier"}, "url": { "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"] + "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"] }, "audio": { "type": "object", @@ -83,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": { @@ -193,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, @@ -235,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. |