2022-11-08 12:05:08 +11:00
|
|
|
// This file maps keys between `config.h` and `info.json`. It is used by QMK
|
|
|
|
// to correctly and consistently map back and forth between the two systems.
|
2021-01-31 12:46:00 -08:00
|
|
|
{
|
2022-11-08 12:05:08 +11:00
|
|
|
// Format:
|
|
|
|
// <config.h key>: {"info_key": <info.json key>, ["value_type": <value_type>], ["to_json": <true/false>], ["to_c": <true/false>]}
|
2024-01-06 13:16:23 +00:00
|
|
|
// value_type: one of "array", "array.int", "bool, "flag", "int", "hex", "list", "mapping", "str", "raw"
|
2022-11-08 12:05:08 +11:00
|
|
|
// 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
|
|
|
|
// 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
|
2023-05-09 13:23:03 +10:00
|
|
|
|
|
|
|
// APA102
|
2023-03-20 08:12:19 +11:00
|
|
|
"APA102_CI_PIN": {"info_key": "apa102.clock_pin"},
|
|
|
|
"APA102_DEFAULT_BRIGHTNESS": {"info_key": "apa102.default_brightness", "value_type": "int"},
|
2023-05-09 13:23:03 +10:00
|
|
|
"APA102_DI_PIN": {"info_key": "apa102.data_pin"},
|
|
|
|
|
|
|
|
// Audio
|
2023-12-24 06:52:58 +00:00
|
|
|
"AUDIO_DEFAULT_ON": {"info_key": "audio.default.on", "value_type": "bool"},
|
|
|
|
"AUDIO_DEFAULT_CLICKY_ON": {"info_key": "audio.default.clicky", "value_type": "bool"},
|
2024-03-06 03:02:37 -08:00
|
|
|
"AUDIO_POWER_CONTROL_PIN": {"info_key": "audio.power_control.pin"},
|
|
|
|
"AUDIO_POWER_CONTROL_PIN_ON_STATE": {"info_key": "audio.power_control.on_state", "value_type": "int" },
|
2024-01-06 13:16:23 +00:00
|
|
|
"AUDIO_VOICES": {"info_key": "audio.voices", "value_type": "flag"},
|
|
|
|
"SENDSTRING_BELL": {"info_key": "audio.macro_beep", "value_type": "flag"},
|
2023-05-09 13:23:03 +10:00
|
|
|
|
|
|
|
// Backlight
|
2024-01-06 13:16:23 +00:00
|
|
|
"BACKLIGHT_BREATHING": {"info_key": "backlight.breathing", "value_type": "flag"},
|
|
|
|
"BACKLIGHT_CAPS_LOCK": {"info_key": "backlight.as_caps_lock", "value_type": "flag"},
|
2022-10-07 01:58:13 -04:00
|
|
|
"BACKLIGHT_LEVELS": {"info_key": "backlight.levels", "value_type": "int"},
|
2022-11-23 18:48:22 +00:00
|
|
|
"BACKLIGHT_LIMIT_VAL": {"info_key": "backlight.max_brightness", "value_type": "int"},
|
2022-06-14 12:30:31 +01:00
|
|
|
"BACKLIGHT_ON_STATE": {"info_key": "backlight.on_state", "value_type": "int"},
|
2021-08-16 15:33:30 -07:00
|
|
|
"BACKLIGHT_PIN": {"info_key": "backlight.pin"},
|
2022-11-23 18:48:22 +00:00
|
|
|
"BACKLIGHT_PINS": {"info_key": "backlight.pins", "value_type": "array"},
|
2023-05-09 13:23:03 +10:00
|
|
|
"BREATHING_PERIOD": {"info_key": "backlight.breathing_period", "value_type": "int"},
|
2023-11-01 01:26:24 +00:00
|
|
|
"BACKLIGHT_DEFAULT_ON": {"info_key": "backlight.default.on", "value_type": "bool"},
|
|
|
|
"BACKLIGHT_DEFAULT_BREATHING": {"info_key": "backlight.default.breathing", "value_type": "bool"},
|
|
|
|
"BACKLIGHT_DEFAULT_LEVEL": {"info_key": "backlight.default.brightness", "value_type": "int"},
|
2023-05-09 13:23:03 +10:00
|
|
|
|
|
|
|
// Bootmagic
|
2024-02-17 12:27:34 +00:00
|
|
|
"BOOTMAGIC_COLUMN": {"info_key": "bootmagic.matrix.1", "value_type": "int"},
|
|
|
|
"BOOTMAGIC_COLUMN_RIGHT": {"info_key": "split.bootmagic.matrix.1", "value_type": "int"},
|
|
|
|
"BOOTMAGIC_ROW": {"info_key": "bootmagic.matrix.0", "value_type": "int"},
|
|
|
|
"BOOTMAGIC_ROW_RIGHT": {"info_key": "split.bootmagic.matrix.0", "value_type": "int"},
|
2023-05-09 13:23:03 +10:00
|
|
|
|
|
|
|
// Caps Word
|
2024-01-06 13:16:23 +00:00
|
|
|
"BOTH_SHIFTS_TURNS_ON_CAPS_WORD": {"info_key": "caps_word.both_shifts_turns_on", "value_type": "flag"},
|
2022-05-13 23:00:32 -07:00
|
|
|
"CAPS_WORD_IDLE_TIMEOUT": {"info_key": "caps_word.idle_timeout", "value_type": "int"},
|
2024-01-06 13:16:23 +00:00
|
|
|
"CAPS_WORD_INVERT_ON_SHIFT": {"info_key": "caps_word.invert_on_shift", "value_type": "flag"},
|
|
|
|
"DOUBLE_TAP_SHIFT_TURNS_ON_CAPS_WORD": {"info_key": "caps_word.double_tap_shift_turns_on", "value_type": "flag"},
|
2023-05-09 13:23:03 +10:00
|
|
|
|
|
|
|
// Combos
|
2021-08-16 15:33:30 -07:00
|
|
|
"COMBO_TERM": {"info_key": "combo.term", "value_type": "int"},
|
2023-05-09 13:23:03 +10:00
|
|
|
|
2023-10-29 01:09:02 +01:00
|
|
|
"DIP_SWITCH_MATRIX_GRID": {"info_key": "dip_switch.matrix_grid", "value_type": "array.array.int", "to_json": false},
|
|
|
|
"DIP_SWITCH_PINS": {"info_key": "dip_switch.pins", "value_type": "array"},
|
|
|
|
"DIP_SWITCH_PINS_RIGHT": {"info_key": "split.dip_switch.right.pins", "value_type": "array"},
|
|
|
|
|
2023-05-09 13:23:03 +10:00
|
|
|
// Dynamic Keymap
|
2021-08-18 21:52:41 +01:00
|
|
|
"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"},
|
2023-05-09 13:23:03 +10:00
|
|
|
|
2023-09-05 01:53:05 +01:00
|
|
|
// EEPROM
|
|
|
|
"WEAR_LEVELING_BACKING_SIZE": {"info_key": "eeprom.wear_leveling.backing_size", "value_type": "int", "to_json": false},
|
|
|
|
"WEAR_LEVELING_LOGICAL_SIZE": {"info_key": "eeprom.wear_leveling.logical_size", "value_type": "int", "to_json": false},
|
|
|
|
|
2024-11-20 22:31:54 -08:00
|
|
|
// Layer locking
|
|
|
|
"LAYER_LOCK_IDLE_TIMEOUT": {"info_key": "layer_lock.timeout", "value_type": "int"},
|
|
|
|
|
2023-05-09 13:23:03 +10:00
|
|
|
// Indicators
|
2021-01-31 12:46:00 -08:00
|
|
|
"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"},
|
2022-06-14 12:30:31 +01:00
|
|
|
"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"},
|
2023-05-09 13:23:03 +10:00
|
|
|
|
2024-06-18 03:44:22 +01:00
|
|
|
// Joystick
|
|
|
|
"JOYSTICK_AXIS_COUNT": {"info_key": "joystick.axis_count", "value_type": "int"},
|
|
|
|
"JOYSTICK_AXIS_RESOLUTION": {"info_key": "joystick.axis_resolution", "value_type": "int"},
|
|
|
|
"JOYSTICK_BUTTON_COUNT": {"info_key": "joystick.button_count", "value_type": "int"},
|
|
|
|
|
2023-05-09 13:23:03 +10:00
|
|
|
// Leader Key
|
2024-01-06 13:16:23 +00:00
|
|
|
"LEADER_PER_KEY_TIMING": {"info_key": "leader_key.timing", "value_type": "flag"},
|
|
|
|
"LEADER_KEY_STRICT_KEY_PROCESSING": {"info_key": "leader_key.strict_processing", "value_type": "flag"},
|
2023-05-09 13:23:03 +10:00
|
|
|
"LEADER_TIMEOUT": {"info_key": "leader_key.timeout", "value_type": "int"},
|
|
|
|
|
|
|
|
// LED Matrix
|
2022-09-21 09:45:07 +10:00
|
|
|
"LED_MATRIX_CENTER": {"info_key": "led_matrix.center_point", "value_type": "array.int"},
|
2024-01-06 13:16:23 +00:00
|
|
|
"LED_MATRIX_KEYRELEASES": {"info_key": "led_matrix.react_on_keyup", "value_type": "flag"},
|
2023-09-27 00:41:13 +01:00
|
|
|
"LED_MATRIX_LED_FLUSH_LIMIT": {"info_key": "led_matrix.led_flush_limit", "value_type": "int"},
|
|
|
|
"LED_MATRIX_LED_PROCESS_LIMIT": {"info_key": "led_matrix.led_process_limit", "value_type": "int", "to_json": false},
|
2022-09-19 05:32:47 +10:00
|
|
|
"LED_MATRIX_MAXIMUM_BRIGHTNESS": {"info_key": "led_matrix.max_brightness", "value_type": "int"},
|
2024-01-06 13:16:23 +00:00
|
|
|
"LED_MATRIX_SLEEP": {"info_key": "led_matrix.sleep", "value_type": "flag"},
|
2023-05-09 13:23:03 +10:00
|
|
|
"LED_MATRIX_SPD_STEP": {"info_key": "led_matrix.speed_steps", "value_type": "int"},
|
2022-09-19 07:57:50 +10:00
|
|
|
"LED_MATRIX_SPLIT": {"info_key": "led_matrix.split_count", "value_type": "array.int"},
|
2022-09-26 14:40:15 +10:00
|
|
|
"LED_MATRIX_TIMEOUT": {"info_key": "led_matrix.timeout", "value_type": "int"},
|
2022-09-20 04:36:48 +10:00
|
|
|
"LED_MATRIX_VAL_STEP": {"info_key": "led_matrix.val_steps", "value_type": "int"},
|
2023-08-27 04:00:14 +01:00
|
|
|
"LED_MATRIX_LED_COUNT": {"info_key": "led_matrix.led_count", "value_type": "int", "to_json": false},
|
2023-11-01 01:26:24 +00:00
|
|
|
"LED_MATRIX_DEFAULT_ON": {"info_key": "led_matrix.default.on", "value_type": "bool"},
|
|
|
|
"LED_MATRIX_DEFAULT_VAL": {"info_key": "led_matrix.default.val", "value_type": "int"},
|
|
|
|
"LED_MATRIX_DEFAULT_SPD": {"info_key": "led_matrix.default.speed", "value_type": "int"},
|
2023-05-09 13:23:03 +10:00
|
|
|
|
2023-10-25 03:15:27 -06:00
|
|
|
// Locking Switch
|
2024-01-06 13:16:23 +00:00
|
|
|
"LOCKING_SUPPORT_ENABLE": {"info_key": "qmk.locking.enabled", "value_type": "flag"},
|
|
|
|
"LOCKING_RESYNC_ENABLE": {"info_key": "qmk.locking.resync", "value_type": "flag"},
|
2023-10-25 03:15:27 -06:00
|
|
|
|
2023-05-09 13:23:03 +10:00
|
|
|
// 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"},
|
2024-01-06 13:16:23 +00:00
|
|
|
"MATRIX_HAS_GHOST": {"info_key": "matrix_pins.ghost", "value_type": "flag"},
|
2022-12-08 18:09:01 +02:00
|
|
|
"MATRIX_INPUT_PRESSED_STATE": {"info_key": "matrix_pins.input_pressed_state", "value_type": "int"},
|
2021-08-16 15:33:30 -07:00
|
|
|
"MATRIX_IO_DELAY": {"info_key": "matrix_pins.io_delay", "value_type": "int"},
|
2023-05-09 13:23:03 +10:00
|
|
|
|
|
|
|
// Mouse Keys
|
2021-08-16 15:33:30 -07:00
|
|
|
"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"},
|
2023-05-09 13:23:03 +10:00
|
|
|
|
|
|
|
// One Shot
|
2021-08-16 15:33:30 -07:00
|
|
|
"ONESHOT_TIMEOUT": {"info_key": "oneshot.timeout", "value_type": "int"},
|
|
|
|
"ONESHOT_TAP_TOGGLE": {"info_key": "oneshot.tap_toggle", "value_type": "int"},
|
2023-05-09 13:23:03 +10:00
|
|
|
|
|
|
|
// PS/2
|
2022-08-31 09:16:07 +02:00
|
|
|
"PS2_CLOCK_PIN": {"info_key": "ps2.clock_pin"},
|
|
|
|
"PS2_DATA_PIN": {"info_key": "ps2.data_pin"},
|
2023-05-09 13:23:03 +10:00
|
|
|
|
|
|
|
// 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"},
|
2024-01-06 13:16:23 +00:00
|
|
|
"RGB_MATRIX_KEYRELEASES": {"info_key": "rgb_matrix.react_on_keyup", "value_type": "flag"},
|
2023-09-27 00:41:13 +01:00
|
|
|
"RGB_MATRIX_LED_FLUSH_LIMIT": {"info_key": "rgb_matrix.led_flush_limit", "value_type": "int"},
|
|
|
|
"RGB_MATRIX_LED_PROCESS_LIMIT": {"info_key": "rgb_matrix.led_process_limit", "value_type": "int", "to_json": false},
|
2023-05-09 13:23:03 +10:00
|
|
|
"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"},
|
2024-01-06 13:16:23 +00:00
|
|
|
"RGB_MATRIX_SLEEP": {"info_key": "rgb_matrix.sleep", "value_type": "flag"},
|
2023-05-09 13:23:03 +10:00
|
|
|
"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"},
|
2023-08-27 04:00:14 +01:00
|
|
|
"RGB_MATRIX_LED_COUNT": {"info_key": "rgb_matrix.led_count", "value_type": "int", "to_json": false},
|
2023-11-01 01:26:24 +00:00
|
|
|
"RGB_MATRIX_DEFAULT_ON": {"info_key": "rgb_matrix.default.on", "value_type": "bool"},
|
|
|
|
"RGB_MATRIX_DEFAULT_HUE": {"info_key": "rgb_matrix.default.hue", "value_type": "int"},
|
|
|
|
"RGB_MATRIX_DEFAULT_SAT": {"info_key": "rgb_matrix.default.sat", "value_type": "int"},
|
|
|
|
"RGB_MATRIX_DEFAULT_VAL": {"info_key": "rgb_matrix.default.val", "value_type": "int"},
|
|
|
|
"RGB_MATRIX_DEFAULT_SPD": {"info_key": "rgb_matrix.default.speed", "value_type": "int"},
|
2023-05-09 13:23:03 +10:00
|
|
|
|
|
|
|
// RGBLight
|
2021-01-31 12:46:00 -08:00
|
|
|
"RGBLED_SPLIT": {"info_key": "rgblight.split_count", "value_type": "array.int"},
|
2023-05-09 13:23:03 +10:00
|
|
|
"RGBLIGHT_HUE_STEP": {"info_key": "rgblight.hue_steps", "value_type": "int"},
|
2024-01-06 13:16:23 +00:00
|
|
|
"RGBLIGHT_LAYER_BLINK": {"info_key": "rgblight.layers.blink", "value_type": "flag"},
|
|
|
|
"RGBLIGHT_LAYERS": {"info_key": "rgblight.layers.enabled", "value_type": "flag"},
|
|
|
|
"RGBLIGHT_LAYERS_OVERRIDE_RGB_OFF": {"info_key": "rgblight.layers.override_rgb", "value_type": "flag"},
|
2023-12-12 15:30:08 +11:00
|
|
|
"RGBLIGHT_LED_COUNT": {"info_key": "rgblight.led_count", "value_type": "int"},
|
2023-06-14 22:01:13 +10:00
|
|
|
"RGBLIGHT_LED_MAP": {"info_key": "rgblight.led_map", "value_type": "array.int"},
|
2021-01-31 12:46:00 -08:00
|
|
|
"RGBLIGHT_LIMIT_VAL": {"info_key": "rgblight.max_brightness", "value_type": "int"},
|
2021-08-16 15:33:30 -07:00
|
|
|
"RGBLIGHT_MAX_LAYERS": {"info_key": "rgblight.layers.max", "value_type": "int"},
|
2021-01-31 12:46:00 -08:00
|
|
|
"RGBLIGHT_SAT_STEP": {"info_key": "rgblight.saturation_steps", "value_type": "int"},
|
2024-01-06 13:16:23 +00:00
|
|
|
"RGBLIGHT_SLEEP": {"info_key": "rgblight.sleep", "value_type": "flag"},
|
|
|
|
"RGBLIGHT_SPLIT": {"info_key": "rgblight.split", "value_type": "flag"},
|
2023-05-09 13:23:03 +10:00
|
|
|
"RGBLIGHT_VAL_STEP": {"info_key": "rgblight.brightness_steps", "value_type": "int"},
|
2023-11-01 01:26:24 +00:00
|
|
|
"RGBLIGHT_DEFAULT_ON": {"info_key": "rgblight.default.on", "value_type": "bool"},
|
|
|
|
"RGBLIGHT_DEFAULT_HUE": {"info_key": "rgblight.default.hue", "value_type": "int"},
|
|
|
|
"RGBLIGHT_DEFAULT_SAT": {"info_key": "rgblight.default.sat", "value_type": "int"},
|
|
|
|
"RGBLIGHT_DEFAULT_VAL": {"info_key": "rgblight.default.val", "value_type": "int"},
|
|
|
|
"RGBLIGHT_DEFAULT_SPD": {"info_key": "rgblight.default.speed", "value_type": "int"},
|
2023-05-09 13:23:03 +10:00
|
|
|
|
|
|
|
// Secure
|
|
|
|
"SECURE_IDLE_TIMEOUT": {"info_key": "secure.idle_timeout", "value_type": "int"},
|
2022-04-16 19:13:05 +01:00
|
|
|
"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"},
|
2023-05-09 13:23:03 +10:00
|
|
|
|
|
|
|
// Split Keyboard
|
2024-07-18 00:02:53 +01:00
|
|
|
"SOFT_SERIAL_PIN": {"info_key": "split.serial.pin"},
|
2023-05-09 13:23:03 +10:00
|
|
|
"SOFT_SERIAL_SPEED": {"info_key": "split.soft_serial_speed"},
|
2023-11-01 00:55:48 +00:00
|
|
|
"SPLIT_HAND_MATRIX_GRID": {"info_key": "split.handedness.matrix_grid", "value_type": "array", "to_c": false},
|
|
|
|
"SPLIT_HAND_PIN": {"info_key": "split.handedness.pin"},
|
2024-01-06 13:16:23 +00:00
|
|
|
"SPLIT_USB_DETECT": {"info_key": "split.usb_detect.enabled", "value_type": "flag"},
|
2021-08-16 15:33:30 -07:00
|
|
|
"SPLIT_USB_TIMEOUT": {"info_key": "split.usb_detect.timeout", "value_type": "int"},
|
|
|
|
"SPLIT_USB_TIMEOUT_POLL": {"info_key": "split.usb_detect.polling_interval", "value_type": "int"},
|
2024-01-06 13:16:23 +00:00
|
|
|
"SPLIT_WATCHDOG_ENABLE": {"info_key": "split.transport.watchdog", "value_type": "flag"},
|
2022-10-06 10:52:42 +01:00
|
|
|
"SPLIT_WATCHDOG_TIMEOUT": {"info_key": "split.transport.watchdog_timeout", "value_type": "int"},
|
2024-01-06 13:16:23 +00:00
|
|
|
"SPLIT_ACTIVITY_ENABLE": {"info_key": "split.transport.sync.activity", "value_type": "flag"},
|
|
|
|
"SPLIT_DETECTED_OS_ENABLE": {"info_key": "split.transport.sync.detected_os", "value_type": "flag"},
|
|
|
|
"SPLIT_HAPTIC_ENABLE": {"info_key": "split.transport.sync.haptic", "value_type": "flag"},
|
|
|
|
"SPLIT_LAYER_STATE_ENABLE": {"info_key": "split.transport.sync.layer_state", "value_type": "flag"},
|
|
|
|
"SPLIT_LED_STATE_ENABLE": {"info_key": "split.transport.sync.indicators", "value_type": "flag"},
|
|
|
|
"SPLIT_TRANSPORT_MIRROR": {"info_key": "split.transport.sync.matrix_state", "value_type": "flag"},
|
|
|
|
"SPLIT_MODS_ENABLE": {"info_key": "split.transport.sync.modifiers", "value_type": "flag"},
|
|
|
|
"SPLIT_OLED_ENABLE": {"info_key": "split.transport.sync.oled", "value_type": "flag"},
|
|
|
|
"SPLIT_ST7565_ENABLE": {"info_key": "split.transport.sync.st7565", "value_type": "flag"},
|
|
|
|
"SPLIT_WPM_ENABLE": {"info_key": "split.transport.sync.wpm", "value_type": "flag"},
|
2023-05-09 13:23:03 +10:00
|
|
|
|
|
|
|
// Tapping
|
[Core] Add Chordal Hold, an "opposite hands rule" tap-hold option similar to Achordion, Bilateral Combinations. (#24560)
* Chordal Hold: restrict what chords settle as hold
* Chordal Hold: docs and further improvements
* Fix formatting.
* Doc rewording and minor edit.
* Support Chordal Hold of multiple tap-hold keys.
* Fix formatting.
* Simplification and additional test.
* Fix formatting.
* Tighten tests.
* Add test two_mod_taps_same_hand_hold_til_timeout.
* Revise handing of pairs of tap-hold keys.
* Generate a default chordal_hold_layout.
* Document chordal_hold_handedness().
* Add license notice to new and branched files in PR.
* Add `tapping.chordal_hold` property for info.json.
* Update docs/reference_info_json.md
* Revise "hand" jsonschema.
* Chordal Hold: Improved layout handedness heuristic.
This commit improves the heuristic used in generate-keyboard-c for
inferring key handedness from keyboard.json geometry data.
Heuristic summary:
1. If the layout is symmetric (e.g. most split keyboards), guess the
handedness based on the sign of (x - layout_x_midpoint).
2. Otherwise, if the layout has a key of >=6u width, it is probably the
spacebar. Form a dividing line through the spacebar, nearly vertical
but with a slight angle to follow typical row stagger.
3. Otherwise, assume handedness based on the widest horizontal
separation.
I have tested this strategy on a couple dozen keyboards and found it to
work reliably.
* Use Optional instead of `| None`.
* Refactor to avoid lambdas.
* Remove trailing comma in chordal_hold_layout.
* Minor docs edits.
* Revise to allow combining multiple same-hand mods.
This commit revises Chordal Hold as described in discussion in
https://github.com/qmk/qmk_firmware/pull/24560#discussion_r1894655238
1. In "RCTL_T(KC_A)↓, RSFT_T(KC_C)↓, RCTL_T(KC_A)↑" before the tapping
term, RCTL_T(KC_A) is settled as tapped.
2. In "RCTL_T(KC_A)↓, RSFT_T(KC_C)↓, RSFT_T(KC_C)↑", both RCTL_T(KC_A)
and RSFT_T(KC_C) are settled as tapped.
3. In "RCTL_T(KC_A)↓, RSFT_T(KC_C)↓, KC_U↓" (all keys on the same side),
both RCTL_T(KC_A) and RSFT_T(KC_C) are settled as tapped.
4. In "RCTL_T(KC_A)↓, RSFT_T(KC_C)↓, LSFT_T(KC_T)↓", with the third key
on the other side, we allow Permissive Hold or Hold On Other Keypress
to decide how/when to settle the keys.
5. In "RCTL_T(KC_A)↓, RSFT_T(KC_C)↓" held until the tapping term, the
keys are settled as held.
1–3 provide same-hand roll protection. 4–5 are for combining multiple
same-hand modifiers.
I've updated the unit tests and have been running it on my keyboard, for
a few hours so far, and all seems good. I really like this scheme. It
allows combining same-side mods, yet it also has roll protection on
streaks. For me, this feels like Achordion, but clearly better streak
handling and improved responsiveness.
* Fix formatting.
* Add a couple tests with LT keys.
* Remove stale use of CHORDAL_HOLD_LAYOUT.
* Fix misspelling lastest -> latest
* Handling tweak for LTs and tests.
* Fix formatting.
* More tests with LT keys.
* Fix formatting.
2025-01-27 03:32:23 -08:00
|
|
|
"CHORDAL_HOLD": {"info_key": "tapping.chordal_hold", "value_type": "flag"},
|
2024-01-06 13:16:23 +00:00
|
|
|
"HOLD_ON_OTHER_KEY_PRESS": {"info_key": "tapping.hold_on_other_key_press", "value_type": "flag"},
|
|
|
|
"HOLD_ON_OTHER_KEY_PRESS_PER_KEY": {"info_key": "tapping.hold_on_other_key_press_per_key", "value_type": "flag"},
|
|
|
|
"PERMISSIVE_HOLD": {"info_key": "tapping.permissive_hold", "value_type": "flag"},
|
|
|
|
"PERMISSIVE_HOLD_PER_KEY": {"info_key": "tapping.permissive_hold_per_key", "value_type": "flag"},
|
|
|
|
"RETRO_TAPPING": {"info_key": "tapping.retro", "value_type": "flag"},
|
|
|
|
"RETRO_TAPPING_PER_KEY": {"info_key": "tapping.retro_per_key", "value_type": "flag"},
|
2021-08-16 15:33:30 -07:00
|
|
|
"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"},
|
2024-01-06 13:16:23 +00:00
|
|
|
"TAPPING_TERM_PER_KEY": {"info_key": "tapping.term_per_key", "value_type": "flag"},
|
2021-08-16 15:33:30 -07:00
|
|
|
"TAPPING_TOGGLE": {"info_key": "tapping.toggle", "value_type": "int"},
|
2023-05-09 13:23:03 +10:00
|
|
|
|
|
|
|
// USB
|
2024-01-06 13:16:23 +00:00
|
|
|
"FORCE_NKRO": {"info_key": "usb.force_nkro", "value_type": "flag"},
|
2021-08-16 15:33:30 -07:00
|
|
|
"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"},
|
2023-05-09 13:23:03 +10:00
|
|
|
|
|
|
|
// WS2812
|
2023-04-06 18:00:54 +10:00
|
|
|
"WS2812_DI_PIN": {"info_key": "ws2812.pin"},
|
2023-03-30 12:21:02 +11:00
|
|
|
"WS2812_I2C_ADDRESS": {"info_key": "ws2812.i2c_address", "value_type": "hex"},
|
|
|
|
"WS2812_I2C_TIMEOUT": {"info_key": "ws2812.i2c_timeout", "value_type": "int"},
|
2024-04-28 00:36:54 +10:00
|
|
|
"WS2812_RGBW": {"info_key": "ws2812.rgbw", "value_type": "flag"},
|
2022-06-09 21:02:16 +01:00
|
|
|
|
2023-05-09 13:23:03 +10:00
|
|
|
"LAYOUTS": {"info_key": "layout_aliases", "value_type": "mapping"},
|
|
|
|
|
2022-11-08 12:05:08 +11:00
|
|
|
// Items we want flagged in lint
|
2022-09-04 04:44:42 +10:00
|
|
|
"DEBOUNCING_DELAY": {"info_key": "_invalid.debouncing_delay", "invalid": true, "replace_with": "DEBOUNCE"},
|
2023-05-09 13:23:03 +10:00
|
|
|
"DESCRIPTION": {"info_key": "_invalid.usb_description", "invalid": true},
|
2024-01-06 13:16:23 +00:00
|
|
|
"IGNORE_MOD_TAP_INTERRUPT": {"info_key": "_invalid.ignore_mod_tap_interrupt", "value_type": "flag", "invalid": true},
|
2023-12-20 13:31:39 +11:00
|
|
|
"IGNORE_MOD_TAP_INTERRUPT_PER_KEY": {"info_key": "_invalid.ignore_mod_tap_interrupt_per_key", "invalid": true},
|
|
|
|
"LED_DISABLE_WHEN_USB_SUSPENDED": {"info_key": "_invalid.led_matrix_sleep", "invalid": true, "replace_with": "LED_MATRIX_SLEEP"},
|
2023-05-09 13:23:03 +10:00
|
|
|
"NO_ACTION_FUNCTION": {"info_key": "_invalid.no_action_function", "invalid": true},
|
|
|
|
"NO_ACTION_MACRO": {"info_key": "_invalid.no_action_macro", "invalid": true},
|
2022-06-09 21:02:16 +01:00
|
|
|
"PREVENT_STUCK_MODIFIERS": {"info_key": "_invalid.prevent_stuck_mods", "invalid": true},
|
2022-11-28 07:33:55 +11:00
|
|
|
"QMK_KEYS_PER_SCAN": {"info_key": "qmk.keys_per_scan", "value_type": "int", "deprecated": true},
|
2023-05-09 13:23:03 +10:00
|
|
|
"RGB_DI_PIN": {"info_key": "rgblight.pin", "invalid": true, "replace_with": "WS2812_DI_PIN or APA102_DI_PIN"},
|
2024-04-28 00:36:54 +10:00
|
|
|
"RGBW": {"info_key": "rgblight.rgbw", "invalid": true, "replace_with": "WS2812_RGBW"},
|
2023-12-20 13:31:50 +11:00
|
|
|
"RGB_DISABLE_WHEN_USB_SUSPENDED": {"info_key": "_invalid.rgb_matrix_sleep", "invalid": true, "replace_with": "RGB_MATRIX_SLEEP"},
|
2024-01-06 13:16:23 +00:00
|
|
|
"RGBLIGHT_ANIMATIONS": {"info_key": "_invalid.rgblight.animations.all", "value_type": "flag", "invalid": true},
|
|
|
|
"TAPPING_FORCE_HOLD": {"info_key": "tapping.force_hold", "value_type": "flag", "deprecated": true},
|
|
|
|
"TAPPING_FORCE_HOLD_PER_KEY": {"info_key": "tapping.force_hold_per_key", "value_type": "flag", "deprecated": true},
|
2023-05-09 13:23:03 +10:00
|
|
|
"UNUSED_PINS": {"info_key": "_invalid.unused_pins", "deprecated": true},
|
2023-05-15 22:27:37 +10:00
|
|
|
"COMBO_COUNT": {"info_key": "_invalid.combo.count", "invalid": true},
|
2022-11-28 07:33:55 +11:00
|
|
|
|
|
|
|
// USB params, need to mark as failure when specified in config.h, rather than deprecated
|
2023-05-15 22:27:37 +10:00
|
|
|
"DEVICE_VER": {"info_key": "usb.device_version", "value_type": "bcd_version", "deprecated": true, "replace_with": "`usb.device_version` in info.json"},
|
2023-05-09 13:23:03 +10:00
|
|
|
"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"},
|
2022-11-28 07:33:55 +11:00
|
|
|
"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"},
|
2023-10-28 02:09:53 +01:00
|
|
|
|
|
|
|
// Items we want flagged in lint
|
|
|
|
"VIAL_KEYBOARD_UID": {"info_key": "_invalid.vial_uid", "invalid": true},
|
|
|
|
"VIAL_UNLOCK_COMBO_COLS": {"info_key": "_invalid.vial_unlock_cols", "invalid": true},
|
|
|
|
"VIAL_UNLOCK_COMBO_ROWS": {"info_key": "_invalid.vial_unlock_rows", "invalid": true}
|
2021-01-31 12:46:00 -08:00
|
|
|
}
|