From e873cda670ecf3b54b067b6b222a09b1c4229da6 Mon Sep 17 00:00:00 2001 From: Ezri Brimhall Date: Wed, 17 Dec 2025 15:17:27 -0700 Subject: [PATCH] space as underscore changes --- .../k5_max/ansi/rgb/keymaps/infraviolet/keymap.c | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/keyboards/keychron/k5_max/ansi/rgb/keymaps/infraviolet/keymap.c b/keyboards/keychron/k5_max/ansi/rgb/keymaps/infraviolet/keymap.c index 6a0d8ee2de..86dba8f887 100644 --- a/keyboards/keychron/k5_max/ansi/rgb/keymaps/infraviolet/keymap.c +++ b/keyboards/keychron/k5_max/ansi/rgb/keymaps/infraviolet/keymap.c @@ -43,6 +43,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { }; // clang-format on +bool spc_mins_active = false; bool process_record_user(uint16_t keycode, keyrecord_t *record) { uint8_t mod_state = get_mods(); @@ -50,16 +51,18 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { case KC_SPC: // If the keypress is space and we only have shift pressed, send KC_MINS (which when shifted gives underscore) instead of KC_SPC. // This will allow us to still use key combos that include space _and_ shift _and_ some other modifier. - if (mod_state & MOD_MASK_SHIFT && !(mod_state & MOD_MASK_CAG)) { + if (spc_mins_active) { + unregister_code(KC_MINS); + spc_mins_active = false; + return false; + } else if (mod_state & MOD_MASK_SHIFT && !(mod_state & MOD_MASK_CAG)) { if (record->event.pressed) { register_code(KC_MINS); - } else { - unregister_code(KC_MINS); + spc_mins_active = true; + return false; } - return false; } break; - default: break; }