summaryrefslogtreecommitdiff
path: root/ferris
diff options
context:
space:
mode:
authorChristoph Cullmann <cullmann@kde.org>2023-07-01 22:20:39 +0200
committerChristoph Cullmann <cullmann@kde.org>2023-07-01 22:20:39 +0200
commitdb784cc076426dfb9e5be2281862f8d243c7753a (patch)
tree842769aaa23bd033ec1e5079b8cf91a48851c65b /ferris
parentb2e5a3f645f6b70560254eed69bea22d8c3cae63 (diff)
Revert "try get_hold_on_other_key_press instead of achordion"
This reverts commit b2e5a3f645f6b70560254eed69bea22d8c3cae63. hold on other key press is suboptimal, too
Diffstat (limited to 'ferris')
-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();
}