This commit is contained in:
parent
791be9e86b
commit
97dbf11902
4 changed files with 13 additions and 6 deletions
|
@ -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"]
|
||||
}
|
||||
```
|
||||
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
|
||||
<table>
|
||||
<tr><td><b>Module</b></td><td><tt>getreuer/tap_flow</tt></td></tr>
|
||||
<tr><td><b>Version</b></td><td>2025-03-15</td></tr>
|
||||
<tr><td><b>Version</b></td><td>2025-03-19</td></tr>
|
||||
<tr><td><b>Maintainer</b></td><td>Pascal Getreuer (@getreuer)</td></tr>
|
||||
<tr><td><b>License</b></td><td><a href="../LICENSE.txt">Apache 2.0</a></td></tr>
|
||||
<tr><td><b>Documentation</b></td><td>
|
||||
|
@ -11,7 +11,7 @@
|
|||
</table>
|
||||
|
||||
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`:
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
|
||||
|
|
|
@ -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
|
||||
|
|
Loading…
Add table
Reference in a new issue