diff --git a/ferris/config.h b/ferris/config.h index 1812395..516c92f 100644 --- a/ferris/config.h +++ b/ferris/config.h @@ -42,9 +42,8 @@ // Enable rapid switch from tap to hold, disables double tap hold auto-repeat. #define QUICK_TAP_TERM 0 -// try to be more permissive with holds, allows to trigger modifiers faster -// achordion will avoid the worst -#define PERMISSIVE_HOLD +// we want that the thumb buttons are more reactive +#define HOLD_ON_OTHER_KEY_PRESS_PER_KEY // caps word is great for defines #define BOTH_SHIFTS_TURNS_ON_CAPS_WORD diff --git a/ferris/keymap.c b/ferris/keymap.c index 2722f29..cfa33cd 100644 --- a/ferris/keymap.c +++ b/ferris/keymap.c @@ -76,17 +76,16 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { }; -// better handling of home row modifiers -// see https://getreuer.info/posts/keyboards/achordion/index.html - -#include "achordion.h" -#include "achordion.c" - -bool process_record_user(uint16_t keycode, keyrecord_t* record) { - if (!process_achordion(keycode, record)) { return false; } - return true; -} - -void matrix_scan_user(void) { - achordion_task(); +// Configure hold on other key press per key +bool get_hold_on_other_key_press(uint16_t keycode, keyrecord_t *record) { + switch (keycode) { + // thumb buttons should be reactive + case MO(_SYM): + case LT(_NUM, KC_SPC): + case LT(_NAV, KC_BSPC): + case MO(_FN): + return true; + default: + return false; + } }