summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--common/config.h3
-rw-r--r--common/keymap.h14
2 files changed, 17 insertions, 0 deletions
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) {