summaryrefslogtreecommitdiff
path: root/data
diff options
context:
space:
mode:
Diffstat (limited to 'data')
-rw-r--r--data/constants/keycodes/extras/keycodes_russian_typewriter_0.0.1.hjson291
-rw-r--r--data/mappings/info_config.hjson50
-rw-r--r--data/mappings/info_rules.hjson2
-rw-r--r--data/mappings/keyboard_aliases.hjson34
-rw-r--r--data/schemas/keyboard.jsonschema169
5 files changed, 531 insertions, 15 deletions
diff --git a/data/constants/keycodes/extras/keycodes_russian_typewriter_0.0.1.hjson b/data/constants/keycodes/extras/keycodes_russian_typewriter_0.0.1.hjson
new file mode 100644
index 0000000000..6ad03c58e5
--- /dev/null
+++ b/data/constants/keycodes/extras/keycodes_russian_typewriter_0.0.1.hjson
@@ -0,0 +1,291 @@
+{
+ "aliases": {
+/*
+ * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐
+ * │ | │ № │ - │ / │ " │ : │ , │ . │ _ │ ? │ % │ ! │ ; │ │
+ * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤
+ * │ │ Й │ Ц │ У │ К │ Е │ Н │ Г │ Ш │ Щ │ З │ Х │ Ъ │ ) │
+ * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┤
+ * │ │ Ф │ Ы │ В │ А │ П │ Р │ О │ Л │ Д │ Ж │ Э │ │
+ * ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────────┤
+ * │ │ Я │ Ч │ С │ М │ И │ Т │ Ь │ Б │ Ю │ Ё │ │
+ * ├────┬───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬────┬────┤
+ * │ │ │ │ │ │ │ │ │
+ * └────┴────┴────┴────────────────────────┴────┴────┴────┴────┘
+ */
+ "KC_GRV": {
+ "key": "RU_PIPE",
+ "label": "|",
+ }
+ "KC_1": {
+ "key": "RU_NUM",
+ "label": "№",
+ }
+ "KC_2": {
+ "key": "RU_MINS",
+ "label": "-",
+ }
+ "KC_3": {
+ "key": "RU_SLSH",
+ "label": "/",
+ }
+ "KC_4": {
+ "key": "RU_DQUO",
+ "label": "\"",
+ }
+ "KC_5": {
+ "key": "RU_COLN",
+ "label": ":",
+ }
+ "KC_6": {
+ "key": "RU_COMM",
+ "label": ",",
+ }
+ "KC_7": {
+ "key": "RU_DOT",
+ "label": ".",
+ }
+ "KC_8": {
+ "key": "RU_UNDS",
+ "label": "_",
+ }
+ "KC_9": {
+ "key": "RU_QUES",
+ "label": "?",
+ }
+ "KC_0": {
+ "key": "RU_PERC",
+ "label": "%",
+ }
+ "KC_MINS": {
+ "key": "RU_EXLM",
+ "label": "!",
+ }
+ "KC_EQL": {
+ "key": "RU_SCLN",
+ "label": ";",
+ }
+ "KC_Q": {
+ "key": "RU_SHTI",
+ "label": "Й",
+ }
+ "KC_W": {
+ "key": "RU_TSE",
+ "label": "Ц",
+ }
+ "KC_E": {
+ "key": "RU_U",
+ "label": "У",
+ }
+ "KC_R": {
+ "key": "RU_KA",
+ "label": "К",
+ }
+ "KC_T": {
+ "key": "RU_IE",
+ "label": "Е",
+ }
+ "KC_Y": {
+ "key": "RU_EN",
+ "label": "Н",
+ }
+ "KC_U": {
+ "key": "RU_GHE",
+ "label": "Г",
+ }
+ "KC_I": {
+ "key": "RU_SHA",
+ "label": "Ш",
+ }
+ "KC_O": {
+ "key": "RU_SHCH",
+ "label": "Щ",
+ }
+ "KC_P": {
+ "key": "RU_ZE",
+ "label": "З",
+ }
+ "KC_LBRC": {
+ "key": "RU_HA",
+ "label": "Х",
+ }
+ "KC_RBRC": {
+ "key": "RU_HARD",
+ "label": "Ъ",
+ }
+ "KC_BSLS": {
+ "key": "RU_RPRN",
+ "label": ")",
+ }
+ "KC_A": {
+ "key": "RU_EF",
+ "label": "Ф",
+ }
+ "KC_S": {
+ "key": "RU_YERU",
+ "label": "Ы",
+ }
+ "KC_D": {
+ "key": "RU_VE",
+ "label": "В",
+ }
+ "KC_F": {
+ "key": "RU_A",
+ "label": "А",
+ }
+ "KC_G": {
+ "key": "RU_PE",
+ "label": "П",
+ }
+ "KC_H": {
+ "key": "RU_ER",
+ "label": "Р",
+ }
+ "KC_J": {
+ "key": "RU_O",
+ "label": "О",
+ }
+ "KC_K": {
+ "key": "RU_EL",
+ "label": "Л",
+ }
+ "KC_L": {
+ "key": "RU_DE",
+ "label": "Д",
+ }
+ "KC_SCLN": {
+ "key": "RU_ZHE",
+ "label": "Ж",
+ }
+ "KC_QUOT": {
+ "key": "RU_E",
+ "label": "Э",
+ }
+ "KC_Z": {
+ "key": "RU_YA",
+ "label": "Я",
+ }
+ "KC_X": {
+ "key": "RU_CHE",
+ "label": "Ч",
+ }
+ "KC_C": {
+ "key": "RU_ES",
+ "label": "С",
+ }
+ "KC_V": {
+ "key": "RU_EM",
+ "label": "М",
+ }
+ "KC_B": {
+ "key": "RU_I",
+ "label": "И",
+ }
+ "KC_N": {
+ "key": "RU_TE",
+ "label": "Т",
+ }
+ "KC_M": {
+ "key": "RU_SOFT",
+ "label": "Ь",
+ }
+ "KC_COMM": {
+ "key": "RU_BE",
+ "label": "Б",
+ }
+ "KC_DOT": {
+ "key": "RU_YU",
+ "label": "Ю",
+ }
+ "KC_SLSH": {
+ "key": "RU_YO",
+ "label": "Ё",
+ }
+/* Shifted symbols
+ * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐
+ * │ + │ 1 │ 2 │ 3 │ 4 │ 5 │ 6 │ 7 │ 8 │ 9 │ 0 │ = │ \ │ │
+ * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤
+ * │ │ │ │ │ │ │ │ │ │ │ │ │ │ ( │
+ * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┤
+ * │ │ │ │ │ │ │ │ │ │ │ │ │ │
+ * ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────────┤
+ * │ │ │ │ │ │ │ │ │ │ │ │ │
+ * ├────┬───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬────┬────┤
+ * │ │ │ │ │ │ │ │ │
+ * └────┴────┴────┴────────────────────────┴────┴────┴────┴────┘
+ */
+ "S(RU_PIPE)": {
+ "key": "RU_PLUS",
+ "label": "+",
+ }
+ "S(RU_NUM)": {
+ "key": "RU_1",
+ "label": "1",
+ }
+ "S(RU_MINS)": {
+ "key": "RU_2",
+ "label": "2",
+ }
+ "S(RU_SLSH)": {
+ "key": "RU_3",
+ "label": "3",
+ }
+ "S(RU_DQUO)": {
+ "key": "RU_4",
+ "label": "4",
+ }
+ "S(RU_COLN)": {
+ "key": "RU_5",
+ "label": "5",
+ }
+ "S(RU_COMM)": {
+ "key": "RU_6",
+ "label": "6",
+ }
+ "S(RU_DOT)": {
+ "key": "RU_7",
+ "label": "7",
+ }
+ "S(RU_UNDS)": {
+ "key": "RU_8",
+ "label": "8",
+ }
+ "S(RU_QUES)": {
+ "key": "RU_9",
+ "label": "9",
+ }
+ "S(RU_PERC)": {
+ "key": "RU_0",
+ "label": "0",
+ }
+ "S(RU_EXLM)": {
+ "key": "RU_EQL",
+ "label": "=",
+ }
+ "S(RU_SCLN)": {
+ "key": "RU_BSLS",
+ "label": "\\",
+ }
+ "S(RU_RPRN)": {
+ "key": "RU_LPRN",
+ "label": "(",
+ }
+/* AltGr symbols
+ * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐
+ * │ │ │ │ │ │ │ │ │ ₽ │ │ │ │ │ │
+ * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤
+ * │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
+ * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┤
+ * │ │ │ │ │ │ │ │ │ │ │ │ │ │
+ * ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────────┤
+ * │ │ │ │ │ │ │ │ │ │ │ │ │
+ * ├────┬───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬────┬────┤
+ * │ │ │ │ │ │ │ │ │
+ * └────┴────┴────┴────────────────────────┴────┴────┴────┴────┘
+ */
+ "ALGR(RU_UNDS)": {
+ "key": "RU_RUBL",
+ "label": "₽",
+ }
+ }
+}
diff --git a/data/mappings/info_config.hjson b/data/mappings/info_config.hjson
index 76ad55f7da..26b437b513 100644
--- a/data/mappings/info_config.hjson
+++ b/data/mappings/info_config.hjson
@@ -29,6 +29,9 @@
"BACKLIGHT_PIN": {"info_key": "backlight.pin"},
"BACKLIGHT_PINS": {"info_key": "backlight.pins", "value_type": "array"},
"BREATHING_PERIOD": {"info_key": "backlight.breathing_period", "value_type": "int"},
+ "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"},
// Bootmagic
"BOOTMAGIC_LITE_COLUMN": {"info_key": "bootmagic.matrix.1", "value_type": "int"},
@@ -45,10 +48,18 @@
// Combos
"COMBO_TERM": {"info_key": "combo.term", "value_type": "int"},
+ "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"},
+
// 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"},
+ // 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},
+
// Indicators
"LED_CAPS_LOCK_PIN": {"info_key": "indicators.caps_lock"},
"LED_NUM_LOCK_PIN": {"info_key": "indicators.num_lock"},
@@ -63,13 +74,24 @@
"LEADER_TIMEOUT": {"info_key": "leader_key.timeout", "value_type": "int"},
// LED Matrix
+ "LED_DISABLE_WHEN_USB_SUSPENDED": {"info_key": "led_matrix.sleep", "value_type": "bool"},
"LED_MATRIX_CENTER": {"info_key": "led_matrix.center_point", "value_type": "array.int"},
+ "LED_MATRIX_KEYRELEASES": {"info_key": "led_matrix.react_on_keyup", "value_type": "bool"},
+ "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},
"LED_MATRIX_MAXIMUM_BRIGHTNESS": {"info_key": "led_matrix.max_brightness", "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_VAL_STEP": {"info_key": "led_matrix.val_steps", "value_type": "int"},
"LED_MATRIX_LED_COUNT": {"info_key": "led_matrix.led_count", "value_type": "int", "to_json": false},
+ "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"},
+
+ // Locking Switch
+ "LOCKING_SUPPORT_ENABLE": {"info_key": "qmk.locking.enabled", "value_type": "bool"},
+ "LOCKING_RESYNC_ENABLE": {"info_key": "qmk.locking.resync", "value_type": "bool"},
// LUFA Bootloader
"QMK_ESC_INPUT": {"info_key": "qmk_lufa_bootloader.esc_input"},
@@ -100,8 +122,12 @@
"PS2_DATA_PIN": {"info_key": "ps2.data_pin"},
// RGB Matrix
+ "RGB_DISABLE_WHEN_USB_SUSPENDED": {"info_key": "rgb_matrix.sleep", "value_type": "bool"},
"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_KEYRELEASES": {"info_key": "rgb_matrix.react_on_keyup", "value_type": "bool"},
+ "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},
"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"},
@@ -109,6 +135,11 @@
"RGB_MATRIX_TIMEOUT": {"info_key": "rgb_matrix.timeout", "value_type": "int"},
"RGB_MATRIX_VAL_STEP": {"info_key": "rgb_matrix.val_steps", "value_type": "int"},
"RGB_MATRIX_LED_COUNT": {"info_key": "rgb_matrix.led_count", "value_type": "int", "to_json": false},
+ "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"},
// RGBLight
"RGBLED_NUM": {"info_key": "rgblight.led_count", "value_type": "int"},
@@ -124,6 +155,11 @@
"RGBLIGHT_SLEEP": {"info_key": "rgblight.sleep", "value_type": "bool"},
"RGBLIGHT_SPLIT": {"info_key": "rgblight.split", "value_type": "bool"},
"RGBLIGHT_VAL_STEP": {"info_key": "rgblight.brightness_steps", "value_type": "int"},
+ "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"},
"RGBW": {"info_key": "rgblight.rgbw", "value_type": "bool"},
// Secure
@@ -134,13 +170,23 @@
// 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_HAND_MATRIX_GRID": {"info_key": "split.handedness.matrix_grid", "value_type": "array", "to_c": false},
+ "SPLIT_HAND_PIN": {"info_key": "split.handedness.pin"},
"SPLIT_USB_DETECT": {"info_key": "split.usb_detect.enabled", "value_type": "bool"},
"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"},
"SPLIT_WATCHDOG_ENABLE": {"info_key": "split.transport.watchdog", "value_type": "bool"},
"SPLIT_WATCHDOG_TIMEOUT": {"info_key": "split.transport.watchdog_timeout", "value_type": "int"},
+ "SPLIT_ACTIVITY_ENABLE": {"info_key": "split.transport.sync.activity", "value_type": "bool"},
+ "SPLIT_DETECTED_OS_ENABLE": {"info_key": "split.transport.sync.detected_os", "value_type": "bool"},
+ "SPLIT_HAPTIC_ENABLE": {"info_key": "split.transport.sync.haptic", "value_type": "bool"},
+ "SPLIT_LAYER_STATE_ENABLE": {"info_key": "split.transport.sync.layer_state", "value_type": "bool"},
+ "SPLIT_LED_STATE_ENABLE": {"info_key": "split.transport.sync.indicators", "value_type": "bool"},
+ "SPLIT_TRANSPORT_MIRROR": {"info_key": "split.transport.sync.matrix_state", "value_type": "bool"},
+ "SPLIT_MODS_ENABLE": {"info_key": "split.transport.sync.modifiers", "value_type": "bool"},
+ "SPLIT_OLED_ENABLE": {"info_key": "split.transport.sync.oled", "value_type": "bool"},
+ "SPLIT_ST7565_ENABLE": {"info_key": "split.transport.sync.st7565", "value_type": "bool"},
+ "SPLIT_WPM_ENABLE": {"info_key": "split.transport.sync.wpm", "value_type": "bool"},
// Tapping
"HOLD_ON_OTHER_KEY_PRESS": {"info_key": "tapping.hold_on_other_key_press", "value_type": "bool"},
diff --git a/data/mappings/info_rules.hjson b/data/mappings/info_rules.hjson
index 07191551da..02fc2bee9d 100644
--- a/data/mappings/info_rules.hjson
+++ b/data/mappings/info_rules.hjson
@@ -17,6 +17,7 @@
"BOOTLOADER": {"info_key": "bootloader", "warn_duplicate": false},
"BOOTMAGIC_ENABLE": {"info_key": "bootmagic.enabled", "value_type": "bool"},
"CAPS_WORD_ENABLE": {"info_key": "caps_word.enabled", "value_type": "bool"},
+ "DIP_SWITCH_ENABLE": {"info_key": "dip_switch.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"},
@@ -42,6 +43,7 @@
"STENO_ENABLE": {"info_key": "stenography.enabled", "value_type": "bool"},
"STENO_PROTOCOL": {"info_key": "stenography.protocol"},
"WAIT_FOR_USB": {"info_key": "usb.wait_for", "value_type": "bool"},
+ "WEAR_LEVELING_DRIVER": {"info_key": "eeprom.wear_leveling.driver"},
"WS2812_DRIVER": {"info_key": "ws2812.driver"},
// Items we want flagged in lint
diff --git a/data/mappings/keyboard_aliases.hjson b/data/mappings/keyboard_aliases.hjson
index 8e4265dc01..debbf2c047 100644
--- a/data/mappings/keyboard_aliases.hjson
+++ b/data/mappings/keyboard_aliases.hjson
@@ -176,6 +176,9 @@
"dztech/volcano660": {
"target": "ilumkb/volcano660"
},
+ "dztech/og60": {
+ "target": "dztech/tofu60"
+ },
"eek": {
"target": "eek/silk_down"
},
@@ -209,6 +212,9 @@
"handwired/dactyl_manuform/6x6_kinesis": {
"target": "handwired/dactyl_kinesis"
},
+ "handwired/dactyl_manuform/dmote/62key": {
+ "target": "handwired/dmote"
+ },
"handwired/ferris": {
"target": "ferris/0_1"
},
@@ -401,6 +407,9 @@
"maartenwut/wonderland": {
"target": "evyd13/wonderland"
},
+ "matchstickworks/southpad": {
+ "target": "matchstickworks/southpad/rev2/"
+ },
"matrix/m12og": {
"target": "matrix/m12og/rev1"
},
@@ -894,6 +903,18 @@
"kelowna/rgb64": {
"target": "weirdo/kelowna/rgb64"
},
+ "keychron/q0": {
+ "target": "keychron/q0/base"
+ },
+ "keychron/q1": {
+ "target": "keychron/q1v1/ansi"
+ }
+ "keychron/q4": {
+ "target": "keychron/q4/ansi/v1"
+ }
+ "kprepublic/bm40hsrgb": {
+ "target": "kprepublic/bm40hsrgb/rev1"
+ },
"kprepublic/bm65hsrgb_iso": {
"target": "kprepublic/bm65hsrgb_iso/rev1"
},
@@ -1194,6 +1215,12 @@
"setta21": {
"target": "salicylic_acid3/setta21"
},
+ "soda/mango": {
+ "target": "magic_force/mf17"
+ },
+ "soda/pocket": {
+ "target": "magic_force/mf34"
+ },
"space_space/rev1": {
"target": "qpockets/space_space/rev1"
},
@@ -1218,6 +1245,9 @@
"stella": {
"target": "hnahkb/stella"
},
+ "studiokestra/line_tkl": {
+ "target": "studiokestra/line_friends_tkl"
+ },
"suihankey/alpha": {
"target": "kakunpc/suihankey/alpha"
},
@@ -1322,5 +1352,9 @@
},
"zinc/reva": {
"target": "25keys/zinc/reva"
+ },
+ // Moved during 2023 Q4 cycle
+ "ymdk/melody96": {
+ "target": "ymdk/melody96/soldered"
}
}
diff --git a/data/schemas/keyboard.jsonschema b/data/schemas/keyboard.jsonschema
index 4053387f3b..9fc455530c 100644
--- a/data/schemas/keyboard.jsonschema
+++ b/data/schemas/keyboard.jsonschema
@@ -20,7 +20,15 @@
}
}
}
- }
+ },
+ "dip_switch_config": {
+ "type": "object",
+ "properties": {
+ "pins": {
+ "$ref": "qmk.definitions.v1#/mcu_pin_array"
+ }
+ }
+ },
},
"type": "object",
"not": { "required": [ "vendorId", "productId" ] }, // reject via keys...
@@ -128,6 +136,15 @@
"type": "string",
"enum": ["pwm", "software", "timer", "custom"]
},
+ "default": {
+ "type": "object",
+ "additionalProperties": false,
+ "properties": {
+ "on": {"type": "boolean"},
+ "breathing": {"type": "boolean"},
+ "brightness": {"$ref": "qmk.definitions.v1#/unsigned_int_8"}
+ }
+ },
"breathing": {"type": "boolean"},
"breathing_period": {"$ref": "qmk.definitions.v1#/unsigned_int_8"},
"levels": {
@@ -245,9 +262,40 @@
"type": "array",
"items": {"$ref": "qmk.definitions.v1#/filename"}
},
+ "dip_switch": {
+ "$ref": "#/definitions/dip_switch_config",
+ "properties": {
+ "enabled": {"type": "boolean"},
+ "matrix_grid": {
+ "type": "array",
+ "minItems": 1,
+ "items": {
+ "type": "array",
+ "minItems": 2,
+ "maxItems": 2,
+ "items": {
+ "type": "integer",
+ "minimum": 0
+ }
+ }
+ }
+ }
+ },
"eeprom": {
"properties": {
- "driver": {"type": "string"}
+ "driver": {"type": "string"},
+ "wear_leveling": {
+ "type": "object",
+ "additionalProperties": false,
+ "properties": {
+ "driver": {
+ "type": "string",
+ "enum": ["custom", "embedded_flash", "legacy", "rp2040_flash", "spi_flash"]
+ },
+ "backing_size": {"$ref": "qmk.definitions.v1#/unsigned_int"},
+ "logical_size": {"$ref": "qmk.definitions.v1#/unsigned_int"}
+ }
+ }
}
},
"encoder": {
@@ -379,6 +427,16 @@
"type": "boolean"
}
},
+ "default": {
+ "type": "object",
+ "additionalProperties": false,
+ "properties": {
+ "on": {"type": "boolean"},
+ "animation": {"type": "string"},
+ "val": {"$ref": "qmk.definitions.v1#/unsigned_int_8"},
+ "speed": {"$ref": "qmk.definitions.v1#/unsigned_int_8"}
+ }
+ },
"driver": {"type": "string"},
"center_point": {
"type": "array",
@@ -390,6 +448,10 @@
"timeout": {"$ref": "qmk.definitions.v1#/unsigned_int"},
"val_steps": {"$ref": "qmk.definitions.v1#/unsigned_int"},
"speed_steps": {"$ref": "qmk.definitions.v1#/unsigned_int"},
+ "led_flush_limit": {"$ref": "qmk.definitions.v1#/unsigned_int"},
+ "led_process_limit": {"$ref": "qmk.definitions.v1#/unsigned_int"},
+ "react_on_keyup": {"type": "boolean"},
+ "sleep": {"type": "boolean"},
"split_count": {
"type": "array",
"minItems": 2,
@@ -429,6 +491,18 @@
"type": "boolean"
}
},
+ "default": {
+ "type": "object",
+ "additionalProperties": false,
+ "properties": {
+ "on": {"type": "boolean"},
+ "animation": {"type": "string"},
+ "hue": {"$ref": "qmk.definitions.v1#/unsigned_int_8"},
+ "sat": {"$ref": "qmk.definitions.v1#/unsigned_int_8"},
+ "val": {"$ref": "qmk.definitions.v1#/unsigned_int_8"},
+ "speed": {"$ref": "qmk.definitions.v1#/unsigned_int_8"}
+ }
+ },
"driver": {"type": "string"},
"center_point": {
"type": "array",
@@ -442,6 +516,10 @@
"sat_steps": {"$ref": "qmk.definitions.v1#/unsigned_int"},
"val_steps": {"$ref": "qmk.definitions.v1#/unsigned_int"},
"speed_steps": {"$ref": "qmk.definitions.v1#/unsigned_int"},
+ "led_flush_limit": {"$ref": "qmk.definitions.v1#/unsigned_int"},
+ "led_process_limit": {"$ref": "qmk.definitions.v1#/unsigned_int"},
+ "react_on_keyup": {"type": "boolean"},
+ "sleep": {"type": "boolean"},
"split_count": {
"type": "array",
"minItems": 2,
@@ -483,6 +561,18 @@
}
},
"brightness_steps": {"$ref": "qmk.definitions.v1#/unsigned_int"},
+ "default": {
+ "type": "object",
+ "additionalProperties": false,
+ "properties": {
+ "on": {"type": "boolean"},
+ "animation": {"type": "string"},
+ "hue": {"$ref": "qmk.definitions.v1#/unsigned_int_8"},
+ "sat": {"$ref": "qmk.definitions.v1#/unsigned_int_8"},
+ "val": {"$ref": "qmk.definitions.v1#/unsigned_int_8"},
+ "speed": {"$ref": "qmk.definitions.v1#/unsigned_int_8"}
+ }
+ },
"driver": {
"type": "string",
"enum": ["apa102", "custom", "ws2812"]
@@ -593,10 +683,6 @@
}
}
},
- "matrix_grid": {
- "type": "array",
- "items": {"$ref": "qmk.definitions.v1#/mcu_pin"}
- },
"matrix_pins": {
"type": "object",
"additionalProperties": false,
@@ -616,6 +702,15 @@
}
}
},
+ "dip_switch": {
+ "type": "object",
+ "additionalProperties": false,
+ "properties": {
+ "right": {
+ "$ref": "#/definitions/dip_switch_config"
+ }
+ }
+ },
"encoder": {
"type": "object",
"additionalProperties": false,
@@ -625,9 +720,17 @@
}
}
},
- "main": {
- "type": "string",
- "enum": ["eeprom", "left", "matrix_grid", "pin", "right"]
+ "handedness": {
+ "type": "object",
+ "additionalProperties": false,
+ "properties": {
+ "pin": {"$ref": "qmk.definitions.v1#/mcu_pin"},
+ "matrix_grid": {
+ "$ref": "qmk.definitions.v1#/mcu_pin_array",
+ "minItems": 2,
+ "maxItems": 2
+ }
+ }
},
"soft_serial_pin": {"$ref": "qmk.definitions.v1#/mcu_pin"},
"soft_serial_speed": {
@@ -643,10 +746,32 @@
"type": "string",
"enum": ["custom", "i2c", "serial", "serial_usart"]
},
- "sync_matrix_state": {"type": "boolean"},
- "sync_modifiers": {"type": "boolean"},
+ "sync": {
+ "type": "object",
+ "additionalProperties": false,
+ "properties": {
+ "activity": {"type": "boolean"},
+ "detected_os": {"type": "boolean"},
+ "haptic": {"type": "boolean"},
+ "layer_state": {"type": "boolean"},
+ "indicators": {"type": "boolean"},
+ "matrix_state": {"type": "boolean"},
+ "modifiers": {"type": "boolean"},
+ "oled": {"type": "boolean"},
+ "st7565": {"type": "boolean"},
+ "wpm": {"type": "boolean"}
+ }
+ }
"watchdog": {"type": "boolean"},
- "watchdog_timeout": {"$ref": "qmk.definitions.v1#/unsigned_int"}
+ "watchdog_timeout": {"$ref": "qmk.definitions.v1#/unsigned_int"},
+ "sync_matrix_state": {
+ "type": "boolean",
+ "$comment": "Deprecated: use sync.matrix_state instead"
+ },
+ "sync_modifiers": {
+ "type": "boolean",
+ "$comment": "Deprecated: use sync.modifiers instead"
+ }
}
},
"usb_detect": {
@@ -657,6 +782,16 @@
"polling_interval": {"$ref": "qmk.definitions.v1#/unsigned_int"},
"timeout": {"$ref": "qmk.definitions.v1#/unsigned_int"}
}
+ },
+ "main": {
+ "type": "string",
+ "enum": ["eeprom", "left", "matrix_grid", "pin", "right"],
+ "$comment": "Deprecated: use config.h options for now"
+ },
+ "matrix_grid": {
+ "type": "array",
+ "items": {"$ref": "qmk.definitions.v1#/mcu_pin"},
+ "$comment": "Deprecated: use split.handedness.matrix_grid instead"
}
}
},
@@ -714,7 +849,15 @@
"properties": {
"keys_per_scan": {"$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"}
+ "tap_capslock_delay": {"$ref": "qmk.definitions.v1#/unsigned_int"},
+ "locking": {
+ "type": "object",
+ "additionalProperties": false,
+ "properties": {
+ "enabled": {"type": "boolean"},
+ "resync": {"type": "boolean"}
+ }
+ }
}
},
"qmk_lufa_bootloader": {