diff --git a/common/config.h b/common/config.h index a3bf4e5..02a7f4a 100644 --- a/common/config.h +++ b/common/config.h @@ -46,6 +46,9 @@ // use permissive hold together with achordion #define PERMISSIVE_HOLD +// special handle thumb keys +#define HOLD_ON_OTHER_KEY_PRESS_PER_KEY + // delay hold/release to not mess up software #define TAP_CODE_DELAY 10 diff --git a/common/keymap.h b/common/keymap.h index 0fd14dc..28842a7 100644 --- a/common/keymap.h +++ b/common/keymap.h @@ -71,6 +71,20 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { }; +bool get_hold_on_other_key_press(uint16_t keycode, keyrecord_t *record) { + switch (keycode) { + case LT(_SYM, KC_SCLN): + case LT(_NUM, KC_SPC): + case LT(_NAV, KC_E): + case LT(_FN, KC_MINS): + // Immediately select the hold action when another key is pressed. + return true; + default: + // Do not select the hold action when another key is pressed. + return false; + } +} + #include "achordion.h" bool process_record_user(uint16_t keycode, keyrecord_t* record) {