summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ferris/config.h5
-rw-r--r--ferris/keymap.c25
2 files changed, 16 insertions, 14 deletions
diff --git a/ferris/config.h b/ferris/config.h
index 516c92f..1812395 100644
--- a/ferris/config.h
+++ b/ferris/config.h
@@ -42,8 +42,9 @@
// Enable rapid switch from tap to hold, disables double tap hold auto-repeat.
#define QUICK_TAP_TERM 0
-// we want that the thumb buttons are more reactive
-#define HOLD_ON_OTHER_KEY_PRESS_PER_KEY
+// try to be more permissive with holds, allows to trigger modifiers faster
+// achordion will avoid the worst
+#define PERMISSIVE_HOLD
// caps word is great for defines
#define BOTH_SHIFTS_TURNS_ON_CAPS_WORD
diff --git a/ferris/keymap.c b/ferris/keymap.c
index cfa33cd..2722f29 100644
--- a/ferris/keymap.c
+++ b/ferris/keymap.c
@@ -76,16 +76,17 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
};
-// 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;
- }
+// 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();
}