aboutsummaryrefslogtreecommitdiff
path: root/qmk/keyboards/sofle_choc/keymaps/custom/keycodes.c
diff options
context:
space:
mode:
Diffstat (limited to 'qmk/keyboards/sofle_choc/keymaps/custom/keycodes.c')
-rw-r--r--qmk/keyboards/sofle_choc/keymaps/custom/keycodes.c23
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;