diff options
Diffstat (limited to 'keyboards/orthocode/orthocode.c')
-rw-r--r-- | keyboards/orthocode/orthocode.c | 30 |
1 files changed, 30 insertions, 0 deletions
diff --git a/keyboards/orthocode/orthocode.c b/keyboards/orthocode/orthocode.c index 23596d3e5b..8ddd32c396 100644 --- a/keyboards/orthocode/orthocode.c +++ b/keyboards/orthocode/orthocode.c @@ -15,6 +15,36 @@ */ #include "orthocode.h" +bool process_record_kb(uint16_t keycode, keyrecord_t *record) { + if (!process_record_user(keycode, record)) { + return false; + } + + static bool shiftspace_mods = false; + switch (keycode) { + case SHIFTSPACE: + if (record->event.pressed) { + if(get_mods() & MOD_BIT(KC_RSFT)) { + register_code(KC_MINS); + shiftspace_mods = true; + } + else { + register_code(KC_SPC); + } + } else { + if (shiftspace_mods) { + unregister_code(KC_MINS); + shiftspace_mods = false; + } else { + unregister_code(KC_SPC); + } + } + return false; + break; + } + return true; +} + #ifdef ENCODER_ENABLE bool encoder_update_kb(uint8_t index, bool clockwise) { if (!encoder_update_user(index, clockwise)) { return false; } |