diff options
Diffstat (limited to 'data')
-rw-r--r-- | data/mappings/defaults.hjson | 5 | ||||
-rw-r--r-- | data/mappings/info_config.hjson | 150 | ||||
-rw-r--r-- | data/mappings/info_rules.hjson | 22 | ||||
-rw-r--r-- | data/mappings/keyboard_aliases.hjson | 12 | ||||
-rw-r--r-- | data/schemas/definitions.jsonschema | 32 | ||||
-rw-r--r-- | data/schemas/keyboard.jsonschema | 42 | ||||
-rw-r--r-- | data/schemas/keycodes.jsonschema | 10 | ||||
-rw-r--r-- | data/schemas/keymap.jsonschema | 1 |
8 files changed, 205 insertions, 69 deletions
diff --git a/data/mappings/defaults.hjson b/data/mappings/defaults.hjson index 93da6161d6..090cbe4be9 100644 --- a/data/mappings/defaults.hjson +++ b/data/mappings/defaults.hjson @@ -74,6 +74,11 @@ "processor": "RP2040", "bootloader": "rp2040", "board": "QMK_PM2040" + }, + "liatris": { + "processor": "RP2040", + "bootloader": "rp2040", + "board": "QMK_PM2040" } } } diff --git a/data/mappings/info_config.hjson b/data/mappings/info_config.hjson index 46108e6fe6..4a825b7fe5 100644 --- a/data/mappings/info_config.hjson +++ b/data/mappings/info_config.hjson @@ -10,95 +10,130 @@ // 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 + + // APA102 + "APA102_CI_PIN": {"info_key": "apa102.clock_pin"}, + "APA102_DEFAULT_BRIGHTNESS": {"info_key": "apa102.default_brightness", "value_type": "int"}, + "APA102_DI_PIN": {"info_key": "apa102.data_pin"}, + + // Audio "AUDIO_VOICES": {"info_key": "audio.voices", "value_type": "bool"}, + "SENDSTRING_BELL": {"info_key": "audio.macro_beep", "value_type": "bool"}, + + // Backlight "BACKLIGHT_BREATHING": {"info_key": "backlight.breathing", "value_type": "bool"}, - "BREATHING_PERIOD": {"info_key": "backlight.breathing_period", "value_type": "int"}, "BACKLIGHT_CAPS_LOCK": {"info_key": "backlight.as_caps_lock", "value_type": "bool"}, "BACKLIGHT_LEVELS": {"info_key": "backlight.levels", "value_type": "int"}, "BACKLIGHT_LIMIT_VAL": {"info_key": "backlight.max_brightness", "value_type": "int"}, "BACKLIGHT_ON_STATE": {"info_key": "backlight.on_state", "value_type": "int"}, "BACKLIGHT_PIN": {"info_key": "backlight.pin"}, "BACKLIGHT_PINS": {"info_key": "backlight.pins", "value_type": "array"}, - "BOOTMAGIC_LITE_ROW": {"info_key": "bootmagic.matrix.0", "value_type": "int"}, + "BREATHING_PERIOD": {"info_key": "backlight.breathing_period", "value_type": "int"}, + + // Bootmagic "BOOTMAGIC_LITE_COLUMN": {"info_key": "bootmagic.matrix.1", "value_type": "int"}, - "BOOTMAGIC_LITE_ROW_RIGHT": {"info_key": "split.bootmagic.matrix.0", "value_type": "int"}, "BOOTMAGIC_LITE_COLUMN_RIGHT": {"info_key": "split.bootmagic.matrix.1", "value_type": "int"}, + "BOOTMAGIC_LITE_ROW": {"info_key": "bootmagic.matrix.0", "value_type": "int"}, + "BOOTMAGIC_LITE_ROW_RIGHT": {"info_key": "split.bootmagic.matrix.0", "value_type": "int"}, + + // Caps Word "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"}, + "CAPS_WORD_INVERT_ON_SHIFT": {"info_key": "caps_word.invert_on_shift", "value_type": "bool"}, + "DOUBLE_TAP_SHIFT_TURNS_ON_CAPS_WORD": {"info_key": "caps_word.double_tap_shift_turns_on", "value_type": "bool"}, + + // Combos "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"}, - "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 "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"}, - "HOLD_ON_OTHER_KEY_PRESS": {"info_key": "tapping.hold_on_other_key_press", "value_type": "bool"}, - "HOLD_ON_OTHER_KEY_PRESS_PER_KEY": {"info_key": "tapping.hold_on_other_key_press_per_key", "value_type": "bool"}, - "LAYOUTS": {"info_key": "layout_aliases", "value_type": "mapping"}, - "LEADER_PER_KEY_TIMING": {"info_key": "leader_key.timing", "value_type": "bool"}, - "LEADER_KEY_STRICT_KEY_PROCESSING": {"info_key": "leader_key.strict_processing", "value_type": "bool"}, - "LEADER_TIMEOUT": {"info_key": "leader_key.timeout", "value_type": "int"}, + + // Indicators "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"}, + + // Leader Key + "LEADER_PER_KEY_TIMING": {"info_key": "leader_key.timing", "value_type": "bool"}, + "LEADER_KEY_STRICT_KEY_PROCESSING": {"info_key": "leader_key.strict_processing", "value_type": "bool"}, + "LEADER_TIMEOUT": {"info_key": "leader_key.timeout", "value_type": "int"}, + + // LED Matrix "LED_MATRIX_CENTER": {"info_key": "led_matrix.center_point", "value_type": "array.int"}, + "LED_MATRIX_HUE_STEP": {"info_key": "led_matrix.hue_steps", "value_type": "int"}, "LED_MATRIX_MAXIMUM_BRIGHTNESS": {"info_key": "led_matrix.max_brightness", "value_type": "int"}, + "LED_MATRIX_SAT_STEP": {"info_key": "led_matrix.sat_steps", "value_type": "int"}, + "LED_MATRIX_SPD_STEP": {"info_key": "led_matrix.speed_steps", "value_type": "int"}, "LED_MATRIX_SPLIT": {"info_key": "led_matrix.split_count", "value_type": "array.int"}, "LED_MATRIX_TIMEOUT": {"info_key": "led_matrix.timeout", "value_type": "int"}, - "LED_MATRIX_HUE_STEP": {"info_key": "led_matrix.hue_steps", "value_type": "int"}, - "LED_MATRIX_SAT_STEP": {"info_key": "led_matrix.sat_steps", "value_type": "int"}, "LED_MATRIX_VAL_STEP": {"info_key": "led_matrix.val_steps", "value_type": "int"}, - "LED_MATRIX_SPD_STEP": {"info_key": "led_matrix.speed_steps", "value_type": "int"}, + + // LUFA Bootloader + "QMK_ESC_INPUT": {"info_key": "qmk_lufa_bootloader.esc_input"}, + "QMK_ESC_OUTPUT": {"info_key": "qmk_lufa_bootloader.esc_output"}, + "QMK_LED": {"info_key": "qmk_lufa_bootloader.led"}, + "QMK_SPEAKER": {"info_key": "qmk_lufa_bootloader.speaker"}, + + // Matrix + "DEBOUNCE": {"info_key": "debounce", "value_type": "int"}, + "DIODE_DIRECTION": {"info_key": "diode_direction"}, "MATRIX_HAS_GHOST": {"info_key": "matrix_pins.ghost", "value_type": "bool"}, "MATRIX_INPUT_PRESSED_STATE": {"info_key": "matrix_pins.input_pressed_state", "value_type": "int"}, "MATRIX_IO_DELAY": {"info_key": "matrix_pins.io_delay", "value_type": "int"}, + + // Mouse Keys "MOUSEKEY_DELAY": {"info_key": "mousekey.delay", "value_type": "int"}, "MOUSEKEY_INTERVAL": {"info_key": "mousekey.interval", "value_type": "int"}, "MOUSEKEY_MAX_SPEED": {"info_key": "mousekey.max_speed", "value_type": "int"}, "MOUSEKEY_TIME_TO_MAX": {"info_key": "mousekey.time_to_max", "value_type": "int"}, "MOUSEKEY_WHEEL_DELAY": {"info_key": "mousekey.wheel_delay", "value_type": "int"}, + + // One Shot "ONESHOT_TIMEOUT": {"info_key": "oneshot.timeout", "value_type": "int"}, "ONESHOT_TAP_TOGGLE": {"info_key": "oneshot.tap_toggle", "value_type": "int"}, - "PERMISSIVE_HOLD": {"info_key": "tapping.permissive_hold", "value_type": "bool"}, - "PERMISSIVE_HOLD_PER_KEY": {"info_key": "tapping.permissive_hold_per_key", "value_type": "bool"}, + + // PS/2 "PS2_CLOCK_PIN": {"info_key": "ps2.clock_pin"}, "PS2_DATA_PIN": {"info_key": "ps2.data_pin"}, - "RETRO_TAPPING": {"info_key": "tapping.retro", "value_type": "bool"}, - "RETRO_TAPPING_PER_KEY": {"info_key": "tapping.retro_per_key", "value_type": "bool"}, - "RGB_DI_PIN": {"info_key": "rgblight.pin"}, + + // RGB Matrix + "RGB_MATRIX_CENTER": {"info_key": "rgb_matrix.center_point", "value_type": "array.int"}, + "RGB_MATRIX_HUE_STEP": {"info_key": "rgb_matrix.hue_steps", "value_type": "int"}, + "RGB_MATRIX_MAXIMUM_BRIGHTNESS": {"info_key": "rgb_matrix.max_brightness", "value_type": "int"}, + "RGB_MATRIX_SAT_STEP": {"info_key": "rgb_matrix.sat_steps", "value_type": "int"}, + "RGB_MATRIX_SPD_STEP": {"info_key": "rgb_matrix.speed_steps", "value_type": "int"}, + "RGB_MATRIX_SPLIT": {"info_key": "rgb_matrix.split_count", "value_type": "array.int"}, + "RGB_MATRIX_TIMEOUT": {"info_key": "rgb_matrix.timeout", "value_type": "int"}, + "RGB_MATRIX_VAL_STEP": {"info_key": "rgb_matrix.val_steps", "value_type": "int"}, + + // RGBLight "RGBLED_NUM": {"info_key": "rgblight.led_count", "value_type": "int"}, "RGBLED_SPLIT": {"info_key": "rgblight.split_count", "value_type": "array.int"}, + "RGBLIGHT_HUE_STEP": {"info_key": "rgblight.hue_steps", "value_type": "int"}, "RGBLIGHT_LAYER_BLINK": {"info_key": "rgblight.layers.blink", "value_type": "bool"}, "RGBLIGHT_LAYERS": {"info_key": "rgblight.layers.enabled", "value_type": "bool"}, "RGBLIGHT_LAYERS_OVERRIDE_RGB_OFF": {"info_key": "rgblight.layers.override_rgb", "value_type": "bool"}, "RGBLIGHT_LIMIT_VAL": {"info_key": "rgblight.max_brightness", "value_type": "int"}, "RGBLIGHT_MAX_LAYERS": {"info_key": "rgblight.layers.max", "value_type": "int"}, - "RGBLIGHT_HUE_STEP": {"info_key": "rgblight.hue_steps", "value_type": "int"}, "RGBLIGHT_SAT_STEP": {"info_key": "rgblight.saturation_steps", "value_type": "int"}, - "RGBLIGHT_VAL_STEP": {"info_key": "rgblight.brightness_steps", "value_type": "int"}, "RGBLIGHT_SLEEP": {"info_key": "rgblight.sleep", "value_type": "bool"}, "RGBLIGHT_SPLIT": {"info_key": "rgblight.split", "value_type": "bool"}, - "RGB_MATRIX_CENTER": {"info_key": "rgb_matrix.center_point", "value_type": "array.int"}, - "RGB_MATRIX_MAXIMUM_BRIGHTNESS": {"info_key": "rgb_matrix.max_brightness", "value_type": "int"}, - "RGB_MATRIX_SPLIT": {"info_key": "rgb_matrix.split_count", "value_type": "array.int"}, - "RGB_MATRIX_TIMEOUT": {"info_key": "rgb_matrix.timeout", "value_type": "int"}, - "RGB_MATRIX_HUE_STEP": {"info_key": "rgb_matrix.hue_steps", "value_type": "int"}, - "RGB_MATRIX_SAT_STEP": {"info_key": "rgb_matrix.sat_steps", "value_type": "int"}, - "RGB_MATRIX_VAL_STEP": {"info_key": "rgb_matrix.val_steps", "value_type": "int"}, - "RGB_MATRIX_SPD_STEP": {"info_key": "rgb_matrix.speed_steps", "value_type": "int"}, + "RGBLIGHT_VAL_STEP": {"info_key": "rgblight.brightness_steps", "value_type": "int"}, "RGBW": {"info_key": "rgblight.rgbw", "value_type": "bool"}, - "QMK_ESC_OUTPUT": {"info_key": "qmk_lufa_bootloader.esc_output"}, - "QMK_ESC_INPUT": {"info_key": "qmk_lufa_bootloader.esc_input"}, - "QMK_LED": {"info_key": "qmk_lufa_bootloader.led"}, - "QMK_SPEAKER": {"info_key": "qmk_lufa_bootloader.speaker"}, + + // Secure + "SECURE_IDLE_TIMEOUT": {"info_key": "secure.idle_timeout", "value_type": "int"}, "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 Keyboard + "SOFT_SERIAL_PIN": {"info_key": "split.soft_serial_pin"}, + "SOFT_SERIAL_SPEED": {"info_key": "split.soft_serial_speed"}, "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"}, "SPLIT_USB_DETECT": {"info_key": "split.usb_detect.enabled", "value_type": "bool"}, @@ -106,35 +141,52 @@ "SPLIT_USB_TIMEOUT_POLL": {"info_key": "split.usb_detect.polling_interval", "value_type": "int"}, "SPLIT_WATCHDOG_ENABLE": {"info_key": "split.transport.watchdog", "value_type": "bool"}, "SPLIT_WATCHDOG_TIMEOUT": {"info_key": "split.transport.watchdog_timeout", "value_type": "int"}, - "SOFT_SERIAL_PIN": {"info_key": "split.soft_serial_pin"}, - "SOFT_SERIAL_SPEED": {"info_key": "split.soft_serial_speed"}, + + // Tapping + "HOLD_ON_OTHER_KEY_PRESS": {"info_key": "tapping.hold_on_other_key_press", "value_type": "bool"}, + "HOLD_ON_OTHER_KEY_PRESS_PER_KEY": {"info_key": "tapping.hold_on_other_key_press_per_key", "value_type": "bool"}, + "PERMISSIVE_HOLD": {"info_key": "tapping.permissive_hold", "value_type": "bool"}, + "PERMISSIVE_HOLD_PER_KEY": {"info_key": "tapping.permissive_hold_per_key", "value_type": "bool"}, + "RETRO_TAPPING": {"info_key": "tapping.retro", "value_type": "bool"}, + "RETRO_TAPPING_PER_KEY": {"info_key": "tapping.retro_per_key", "value_type": "bool"}, "TAP_CODE_DELAY": {"info_key": "qmk.tap_keycode_delay", "value_type": "int"}, "TAP_HOLD_CAPS_DELAY": {"info_key": "qmk.tap_capslock_delay", "value_type": "int"}, "TAPPING_TERM": {"info_key": "tapping.term", "value_type": "int"}, "TAPPING_TERM_PER_KEY": {"info_key": "tapping.term_per_key", "value_type": "bool"}, "TAPPING_TOGGLE": {"info_key": "tapping.toggle", "value_type": "int"}, + + // USB + "FORCE_NKRO": {"info_key": "usb.force_nkro", "value_type": "bool"}, "USB_MAX_POWER_CONSUMPTION": {"info_key": "usb.max_power", "value_type": "int"}, "USB_POLLING_INTERVAL_MS": {"info_key": "usb.polling_interval", "value_type": "int"}, "USB_SUSPEND_WAKEUP_DELAY": {"info_key": "usb.suspend_wakeup_delay", "value_type": "int"}, + // WS2812 + "WS2812_DI_PIN": {"info_key": "ws2812.pin"}, + "WS2812_I2C_ADDRESS": {"info_key": "ws2812.i2c_address", "value_type": "hex"}, + "WS2812_I2C_TIMEOUT": {"info_key": "ws2812.i2c_timeout", "value_type": "int"}, + + "LAYOUTS": {"info_key": "layout_aliases", "value_type": "mapping"}, + // Items we want flagged in lint - "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, "replace_with": "DEBOUNCE"}, + "DESCRIPTION": {"info_key": "_invalid.usb_description", "invalid": true}, + "IGNORE_MOD_TAP_INTERRUPT": {"info_key": "_invalid.ignore_mod_tap_interrupt", "value_type": "bool", "invalid": true}, + "IGNORE_MOD_TAP_INTERRUPT_PER_KEY": {"info_key": "_invalid.ignore_mod_tap_interrupt_per_key", "invalid": true} + "NO_ACTION_FUNCTION": {"info_key": "_invalid.no_action_function", "invalid": true}, + "NO_ACTION_MACRO": {"info_key": "_invalid.no_action_macro", "invalid": true}, "PREVENT_STUCK_MODIFIERS": {"info_key": "_invalid.prevent_stuck_mods", "invalid": true}, - "UNUSED_PINS": {"info_key": "_invalid.unused_pins", "deprecated": true}, - "RGBLIGHT_ANIMATIONS": {"info_key": "_invalid.rgblight.animations.all", "value_type": "bool", "invalid": true}, "QMK_KEYS_PER_SCAN": {"info_key": "qmk.keys_per_scan", "value_type": "int", "deprecated": true}, + "RGB_DI_PIN": {"info_key": "rgblight.pin", "invalid": true, "replace_with": "WS2812_DI_PIN or APA102_DI_PIN"}, + "RGBLIGHT_ANIMATIONS": {"info_key": "_invalid.rgblight.animations.all", "value_type": "bool", "invalid": true}, "TAPPING_FORCE_HOLD": {"info_key": "tapping.force_hold", "value_type": "bool", "deprecated": true}, "TAPPING_FORCE_HOLD_PER_KEY": {"info_key": "tapping.force_hold_per_key", "value_type": "bool", "deprecated": true}, - "IGNORE_MOD_TAP_INTERRUPT": {"info_key": "_deprecated.ignore_mod_tap_interrupt", "value_type": "bool", "deprecated": true}, - "IGNORE_MOD_TAP_INTERRUPT_PER_KEY": {"info_key": "_invalid.ignore_mod_tap_interrupt_per_key", "invalid": true} + "UNUSED_PINS": {"info_key": "_invalid.unused_pins", "deprecated": true}, // USB params, need to mark as failure when specified in config.h, rather than deprecated + "DEVICE_VER": {"info_key": "usb.device_version", "value_type": "bcd_version", "deprecated": true, "replace_with": "`usb.device_version` in info.json"} + "MANUFACTURER": {"info_key": "manufacturer", "value_type": "str", "deprecated": true, "replace_with": "`manufacturer` in info.json"}, + "PRODUCT": {"info_key": "keyboard_name", "warn_duplicate": false, "value_type": "str", "deprecated": true, "replace_with": "`keyboard_name` in info.json"}, "PRODUCT_ID": {"info_key": "usb.pid", "value_type": "hex", "deprecated": true, "replace_with": "`usb.pid` in info.json"}, "VENDOR_ID": {"info_key": "usb.vid", "value_type": "hex", "deprecated": true, "replace_with": "`usb.vid` in info.json"}, - "PRODUCT": {"info_key": "keyboard_name", "warn_duplicate": false, "value_type": "str", "deprecated": true, "replace_with": "`keyboard_name` in info.json"}, - "MANUFACTURER": {"info_key": "manufacturer", "value_type": "str", "deprecated": true, "replace_with": "`manufacturer` in info.json"}, - "DEVICE_VER": {"info_key": "usb.device_version", "value_type": "bcd_version", "deprecated": true, "replace_with": "`usb.device_version` in info.json"} } diff --git a/data/mappings/info_rules.hjson b/data/mappings/info_rules.hjson index 7c3780504c..bf8ec05cb2 100644 --- a/data/mappings/info_rules.hjson +++ b/data/mappings/info_rules.hjson @@ -10,36 +10,38 @@ // 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 + + "BACKLIGHT_DRIVER": {"info_key": "backlight.driver"}, + "BLUETOOTH_DRIVER": {"info_key": "bluetooth.driver"}, "BOARD": {"info_key": "board"}, "BOOTLOADER": {"info_key": "bootloader", "warn_duplicate": false}, "BOOTMAGIC_ENABLE": {"info_key": "bootmagic.enabled", "value_type": "bool"}, - "BLUETOOTH_DRIVER": {"info_key": "bluetooth.driver"}, - "BACKLIGHT_DRIVER": {"info_key": "backlight.driver"}, "CAPS_WORD_ENABLE": {"info_key": "caps_word.enabled", "value_type": "bool"}, "DEBOUNCE_TYPE": {"info_key": "build.debounce_type"}, + "EEPROM_DRIVER": {"info_key": "eeprom.driver"}, "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}, + "MOUSE_SHARED_EP": {"info_key": "usb.shared_endpoint.mouse", "value_type": "bool"}, "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"}, + "PLATFORM_KEY": {"info_key": "platform_key", "to_json": false}, + "PS2_DRIVER": {"info_key": "ps2.driver"}, + "PS2_ENABLE": {"info_key": "ps2.enabled", "value_type": "bool"}, + "PS2_MOUSE_ENABLE": {"info_key": "ps2.mouse_enabled", "value_type": "bool"}, + "RGB_MATRIX_DRIVER": {"info_key": "rgb_matrix.driver"}, "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", "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"}, - "PS2_ENABLE": {"info_key": "ps2.enabled", "value_type": "bool"}, - "PS2_MOUSE_ENABLE": {"info_key": "ps2.mouse_enabled", "value_type": "bool"}, - "PS2_DRIVER": {"info_key": "ps2.driver"}, - - "PLATFORM_KEY": {"info_key": "platform_key", "to_json": false}, + "WAIT_FOR_USB": {"info_key": "usb.wait_for", "value_type": "bool"}, + "WS2812_DRIVER": {"info_key": "ws2812.driver"}, // Items we want flagged in lint "CTPC": {"info_key": "_deprecated.ctpc", "deprecated": true, "replace_with": "CONVERT_TO=proton_c"}, diff --git a/data/mappings/keyboard_aliases.hjson b/data/mappings/keyboard_aliases.hjson index 5fe31c4fb1..f005bb34c3 100644 --- a/data/mappings/keyboard_aliases.hjson +++ b/data/mappings/keyboard_aliases.hjson @@ -149,6 +149,15 @@ "durgod/k320": { "target": "durgod/k3x0/k320" }, + "durgod/hades": { + "target": "durgod/dgk6x/hades_ansi" + }, + "durgod/hades_ansi": { + "target": "durgod/dgk6x/hades_ansi" + }, + "durgod/hades_iso": { + "target": "durgod/dgk6x/hades_iso" + }, "dztech/dz60rgb": { "target": "dztech/dz60rgb/v1" }, @@ -248,6 +257,9 @@ "idobo": { "target": "idobao/id75" }, + "jacky_studio/piggy60": { + "target": "jacky_studio/piggy60/rev1" + }, "jj40": { "target": "kprepublic/jj40" }, diff --git a/data/schemas/definitions.jsonschema b/data/schemas/definitions.jsonschema index 94a94157c0..b9c64a55ec 100644 --- a/data/schemas/definitions.jsonschema +++ b/data/schemas/definitions.jsonschema @@ -71,6 +71,38 @@ "type": "string", "pattern": "^[0-9a-z][0-9a-z_/]*$" }, + "keycode": { + "type": "string", + "minLength": 2, + "maxLength": 50, + "pattern": "^[A-Z][A-Zs_0-9]*$" + }, + "keycode_short": { + "type": "string", + "minLength": 2, + "maxLength": 7, + "pattern": "^[A-Z][A-Zs_0-9]*$" + }, + "keycode_decl": { + "type": "object", + "required": [ + "key" + ], + "properties": { + "key": {"$ref": "#/keycode"}, + "label": {"$ref": "#/text_identifier"}, + "aliases": { + "type": "array", + "minItems": 1, + "items": {"$ref": "#/keycode_short"} + } + } + }, + "keycode_decl_array": { + "type": "array", + "minItems": 1 + "items": {"$ref": "#/keycode_decl"} + }, "mcu_pin_array": { "type": "array", "items": {"$ref": "#/mcu_pin"} diff --git a/data/schemas/keyboard.jsonschema b/data/schemas/keyboard.jsonschema index 2afc1ed516..d608e8f796 100644 --- a/data/schemas/keyboard.jsonschema +++ b/data/schemas/keyboard.jsonschema @@ -35,7 +35,7 @@ }, "development_board": { "type": "string", - "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"] + "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", "liatris"] }, "pin_compatible": { "type": "string", @@ -96,6 +96,19 @@ "unknown" ] }, + "apa102": { + "type": "object", + "additionalProperties": false, + "properties": { + "data_pin": {"$ref": "qmk.definitions.v1#/mcu_pin"}, + "clock_pin": {"$ref": "qmk.definitions.v1#/mcu_pin"}, + "default_brightness": { + "type": "integer", + "minimum": 0, + "maximum": 31 + } + } + }, "audio": { "type": "object", "additionalProperties": false, @@ -214,7 +227,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"}, + "invert_on_shift": {"type": "boolean"} } }, "combo": { @@ -228,6 +242,11 @@ "type": "array", "items": {"$ref": "qmk.definitions.v1#/filename"} }, + "eeprom": { + "properties": { + "driver": {"type": "string"} + } + }, "encoder": { "$ref": "#/definitions/encoder_config", "properties": { @@ -246,6 +265,7 @@ "on_state": {"$ref": "qmk.definitions.v1#/bit"} } }, + "keycodes": {"$ref": "qmk.definitions.v1#/keycode_decl_array"}, "layout_aliases": { "type": "object", "additionalProperties": {"$ref": "qmk.definitions.v1#/layout_macro"} @@ -472,7 +492,10 @@ }, "led_count": {"$ref": "qmk.definitions.v1#/unsigned_int"}, "max_brightness": {"$ref": "qmk.definitions.v1#/unsigned_int_8"}, - "pin": {"$ref": "qmk.definitions.v1#/mcu_pin"}, + "pin": { + "$ref": "qmk.definitions.v1#/mcu_pin", + "$comment": "Deprecated: use ws2812.pin instead" + }, "rgbw": {"type": "boolean"}, "saturation_steps": {"$ref": "qmk.definitions.v1#/unsigned_int"}, "sleep": {"type": "boolean"}, @@ -686,6 +709,19 @@ "led": {"$ref": "qmk.definitions.v1#/mcu_pin"}, "speaker": {"$ref": "qmk.definitions.v1#/mcu_pin"} } + }, + "ws2812": { + "type": "object", + "additionalProperties": false, + "properties": { + "driver": { + "type": "string", + "enum": ["bitbang", "custom", "i2c", "pwm", "spi", "vendor"] + }, + "pin": {"$ref": "qmk.definitions.v1#/mcu_pin"}, + "i2c_address": {"$ref": "qmk.definitions.v1#/hex_number_2d"}, + "i2c_timeout": {"$ref": "qmk.definitions.v1#/unsigned_int"} + } } } } diff --git a/data/schemas/keycodes.jsonschema b/data/schemas/keycodes.jsonschema index 77a8347b3b..df6ce95a83 100644 --- a/data/schemas/keycodes.jsonschema +++ b/data/schemas/keycodes.jsonschema @@ -8,11 +8,7 @@ "type": "string", "minLength": 2, "maxLength": 50, - "pattern": "^[A-Zs_0-9]*$" - }, - "hex_number_4d": { - "type": "string", - "pattern": "^0x[0-9A-F]{4}$" + "pattern": "^[A-Z][A-Zs_0-9]*$" } }, "properties": { @@ -34,10 +30,10 @@ "keycodes": { "type": "object", "propertyNames": { - "$ref": "#/definitions/hex_number_4d" + "$ref": "qmk.definitions.v1#/hex_number_4d" }, "additionalProperties": { - "type": "object", + "type": "object", // use 'qmk.definitions.v1#/keycode_decl' when problem keycodes are removed "required": [ "key" ], diff --git a/data/schemas/keymap.jsonschema b/data/schemas/keymap.jsonschema index 73aa7c5c22..7233e896e9 100644 --- a/data/schemas/keymap.jsonschema +++ b/data/schemas/keymap.jsonschema @@ -67,6 +67,7 @@ } } }, + "keycodes": {"$ref": "qmk.definitions.v1#/keycode_decl_array"}, "config": {"$ref": "qmk.keyboard.v1"}, "notes": { "type": "string" |