summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ferris/config.h5
-rw-r--r--ferris/keymap.c25
2 files changed, 14 insertions, 16 deletions
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;
+ }
}