diff --git a/modules/getreuer/README.md b/modules/getreuer/README.md
index 40a550c..e8d17e3 100644
--- a/modules/getreuer/README.md
+++ b/modules/getreuer/README.md
@@ -77,7 +77,7 @@ file `keymap.json` in your keymap folder with the content
```json
{
- "modules": ["getreuer/achordion"]
+ "modules": ["getreuer/tap_flow"]
}
```
@@ -86,7 +86,7 @@ multiple modules like:
```json
{
- "modules": ["getreuer/achordion", "getreuer/sentence_case"]
+ "modules": ["getreuer/tap_flow", "getreuer/sentence_case"]
}
```
diff --git a/modules/getreuer/tap_flow/README.md b/modules/getreuer/tap_flow/README.md
index 0d9f171..41d65ac 100644
--- a/modules/getreuer/tap_flow/README.md
+++ b/modules/getreuer/tap_flow/README.md
@@ -2,7 +2,7 @@
Module | getreuer/tap_flow |
-Version | 2025-03-15 |
+Version | 2025-03-19 |
Maintainer | Pascal Getreuer (@getreuer) |
License | Apache 2.0 |
Documentation |
@@ -11,7 +11,7 @@
|
This module is an implementation of "global quick tap" (GQT), aka "require
-priori idle," for tap-hold keys. It is particularly useful for home row mods to
+prior idle," for tap-hold keys. It is particularly useful for home row mods to
avoid accidental mod triggers in fast typing.
To use this module, add the following to your `keymap.json`:
diff --git a/modules/getreuer/tap_flow/tap_flow.c b/modules/getreuer/tap_flow/tap_flow.c
index b413994..b7ca577 100644
--- a/modules/getreuer/tap_flow/tap_flow.c
+++ b/modules/getreuer/tap_flow/tap_flow.c
@@ -31,6 +31,7 @@ ASSERT_COMMUNITY_MODULES_MIN_API_VERSION(1, 0, 0);
#error "tap_flow: Please enable Combos (COMBO_ENABLE = true) or Repeat Key (REPEAT_KEY_ENABLE = yes), or both, in rules.mk."
#else
+uint32_t last_input = 0;
uint16_t g_tap_flow_term = TAP_FLOW_TERM;
static uint16_t prev_keycode = KC_NO;
@@ -96,7 +97,7 @@ bool pre_process_record_tap_flow(uint16_t keycode, keyrecord_t* record) {
const uint8_t bit_mask = UINT8_C(1) << (index % 8);
if (record->event.pressed) { // On press.
- const uint32_t idle_time = last_input_activity_elapsed();
+ const uint32_t idle_time = timer_elapsed32(last_input);
uint16_t tap_flow_term = get_tap_flow(keycode, record, prev_keycode);
if (tap_flow_term > 500) {
tap_flow_term = 500;
@@ -156,6 +157,12 @@ bool pre_process_record_tap_flow(uint16_t keycode, keyrecord_t* record) {
prev_keycode = keycode;
}
+ // Update last input time. Ignore mods and mod-tap keys in this update to
+ // allow for chording multiple mods for hotkeys like "Ctrl+Shift+arrow".
+ if (!IS_MODIFIER_KEYCODE(keycode) && !IS_QK_MOD_TAP(keycode)) {
+ last_input = timer_read32();
+ }
+
return true;
}
diff --git a/modules/getreuer/tap_flow/tap_flow.h b/modules/getreuer/tap_flow/tap_flow.h
index 932d94f..0a5606a 100644
--- a/modules/getreuer/tap_flow/tap_flow.h
+++ b/modules/getreuer/tap_flow/tap_flow.h
@@ -17,7 +17,7 @@
* @brief Tap Flow module: disable HRMs during fast typing
*
* This module is an implementation of "global quick tap" (GQT), aka "require
- * priori idle," for tap-hold keys. It is particularly useful for home row mods
+ * prior idle," for tap-hold keys. It is particularly useful for home row mods
* to avoid accidental mod triggers in fast typing.
*
* Tap Flow modifies the tap-hold decision such that when a tap-hold key is