diff --git a/builddefs/build_vial.mk b/builddefs/build_vial.mk index 894943d333..f80443f919 100644 --- a/builddefs/build_vial.mk +++ b/builddefs/build_vial.mk @@ -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 + -DCOMBO_TERM_PER_COMBO -DCHORDAL_HOLD endif # Generate Vial layout definition header from JSON diff --git a/quantum/qmk_settings.c b/quantum/qmk_settings.c index edfaa3b23d..32c71f0e62 100644 --- a/quantum/qmk_settings.c +++ b/quantum/qmk_settings.c @@ -70,6 +70,7 @@ static const qmk_settings_proto_t protos[] PROGMEM = { DECLARE_STATIC_BITSETTING(23, tapping_v2, QS_tapping_hold_on_other_key_press_bit), 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), }; static void eeprom_settings_load(void) { @@ -328,3 +329,10 @@ bool get_auto_shift_repeat(uint16_t keycode, keyrecord_t *record) { bool get_auto_shift_no_auto_repeat(uint16_t keycode, keyrecord_t *record) { return QS_auto_shift_no_auto_repeat; } + +bool get_chordal_hold(uint16_t tap_hold_keycode, keyrecord_t* tap_hold_record, + uint16_t other_keycode, keyrecord_t* other_record) { + if (QS_tapping_chordal_hold) + return get_chordal_hold_default(tap_hold_record, other_record); + return true; +} diff --git a/quantum/qmk_settings.h b/quantum/qmk_settings.h index 86b52489e3..08ebec30d8 100644 --- a/quantum/qmk_settings.h +++ b/quantum/qmk_settings.h @@ -161,6 +161,8 @@ extern qmk_settings_t QS; #define QS_tapping_hold_on_other_key_press (QS.tapping_v2 & (1 << QS_tapping_hold_on_other_key_press_bit)) #define QS_tapping_retro_tapping_bit 2 #define QS_tapping_retro_tapping (QS.tapping_v2 & (1 << QS_tapping_retro_tapping_bit)) +#define QS_tapping_chordal_hold_bit 3 +#define QS_tapping_chordal_hold (QS.tapping_v2 & (1 << QS_tapping_chordal_hold_bit)) /* Grave escape */ #define QS_grave_esc_alt_override (QS.grave_esc_override & 1)