qmk_settings: add flow tap

This commit is contained in:
Ilya Zhuravlev
2025-06-21 19:46:37 -06:00
parent 3af5b0b0f7
commit c94a57d613
3 changed files with 12 additions and 2 deletions

View File

@@ -26,7 +26,7 @@ ifeq ($(strip $(QMK_SETTINGS)), yes)
OPT_DEFS += -DQMK_SETTINGS \
-DAUTO_SHIFT_NO_SETUP -DAUTO_SHIFT_REPEAT_PER_KEY -DAUTO_SHIFT_NO_AUTO_REPEAT_PER_KEY \
-DPERMISSIVE_HOLD_PER_KEY -DHOLD_ON_OTHER_KEY_PRESS_PER_KEY -DQUICK_TAP_TERM_PER_KEY -DRETRO_TAPPING_PER_KEY \
-DCOMBO_TERM_PER_COMBO -DCHORDAL_HOLD
-DCOMBO_TERM_PER_COMBO -DCHORDAL_HOLD -DFLOW_TAP_TERM=321
endif
# Generate Vial layout definition header from JSON

View File

@@ -71,6 +71,7 @@ static const qmk_settings_proto_t protos[] PROGMEM = {
DECLARE_STATIC_BITSETTING(24, tapping_v2, QS_tapping_retro_tapping_bit),
DECLARE_STATIC_SETTING(25, quick_tap_term),
DECLARE_STATIC_BITSETTING(26, tapping_v2, QS_tapping_chordal_hold_bit),
DECLARE_STATIC_SETTING(27, flow_tap_term),
};
static void eeprom_settings_load(void) {
@@ -212,6 +213,7 @@ void qmk_settings_reset(void) {
QS.tap_code_delay = TAP_CODE_DELAY;
QS.tap_hold_caps_delay = TAP_HOLD_CAPS_DELAY;
QS.tapping_toggle = TAPPING_TOGGLE;
QS.flow_tap_term = 0;
eeprom_settings_save();
@@ -336,3 +338,10 @@ bool get_chordal_hold(uint16_t tap_hold_keycode, keyrecord_t* tap_hold_record,
return get_chordal_hold_default(tap_hold_record, other_record);
return true;
}
uint16_t get_flow_tap_term(uint16_t keycode, keyrecord_t *record, uint16_t prev_keycode) {
if (is_flow_tap_key(keycode) && is_flow_tap_key(prev_keycode)) {
return QS.flow_tap_term;
}
return 0;
}

View File

@@ -124,8 +124,9 @@ typedef struct {
uint8_t tapping_toggle;
uint8_t unused;
uint16_t quick_tap_term;
uint16_t flow_tap_term;
} qmk_settings_t;
_Static_assert(sizeof(qmk_settings_t) == 38, "unexpected size of the qmk_settings_t structure");
_Static_assert(sizeof(qmk_settings_t) == 40, "unexpected size of the qmk_settings_t structure");
struct qmk_settings_proto_t;