diff options
Diffstat (limited to 'qmk/keyboards/sofle_choc/keymaps/custom/keycodes.c')
| -rw-r--r-- | qmk/keyboards/sofle_choc/keymaps/custom/keycodes.c | 23 |
1 files changed, 12 insertions, 11 deletions
diff --git a/qmk/keyboards/sofle_choc/keymaps/custom/keycodes.c b/qmk/keyboards/sofle_choc/keymaps/custom/keycodes.c index a3099e4..b0f36a1 100644 --- a/qmk/keyboards/sofle_choc/keymaps/custom/keycodes.c +++ b/qmk/keyboards/sofle_choc/keymaps/custom/keycodes.c @@ -17,6 +17,8 @@ static uint32_t key_timer; // timer for last keyboard activity, use // 32bit value and function to make longer // idle time possible +static bool left_part; + bool keycodes_process_record(uint16_t keycode, keyrecord_t *record) { @@ -32,6 +34,8 @@ bool keycodes_process_record(uint16_t keycode, keyrecord_t *record) { } } + left_part = record->event.key.row < (MATRIX_ROWS / 2); + switch (keycode) { case KC_ESC: case AL_ENT: @@ -41,23 +45,20 @@ bool keycodes_process_record(uint16_t keycode, keyrecord_t *record) { layer_clear(); } return true; + // If a key where released just before, consider we are typing some text - // and not starting a new sequence + // and do not start the tap tempo. case KEY_F: - if (record->event.pressed && timer_elapsed32(key_timer) < TAPPING_TERM) { - if (is_caps_word_on()) { - add_oneshot_mods(MOD_MASK_SHIFT); - } - register_code(KC_F); + if (record->event.pressed && left_part && timer_elapsed32(key_timer) < (TAPPING_TERM * 2)) { + //register_code(KC_F); + tap_code16(KC_F); return false; } return true; case KEY_J: - if (record->event.pressed && timer_elapsed32(key_timer) < TAPPING_TERM) { - if (is_caps_word_on()) { - add_oneshot_mods(MOD_MASK_SHIFT); - } - register_code(KC_J); + if (record->event.pressed && !left_part && timer_elapsed32(key_timer) < (TAPPING_TERM * 2)) { + //register_code(KC_J); + tap_code16(KC_J); return false; } return true; |
