From d4bd9034239bac079567950aeca95192b954adba Mon Sep 17 00:00:00 2001 From: rootiest Date: Fri, 10 Apr 2026 14:19:09 -0400 Subject: [PATCH] fix(chatter): fix key chatter with stricter tap terms and debounce --- .../keychron/q5_max/ansi_encoder/keymaps/via/config.h | 10 ++++++++++ .../keychron/q5_max/ansi_encoder/keymaps/via/rules.mk | 2 ++ 2 files changed, 12 insertions(+) diff --git a/keyboards/keychron/q5_max/ansi_encoder/keymaps/via/config.h b/keyboards/keychron/q5_max/ansi_encoder/keymaps/via/config.h index 924e45b5ff..e9fd63dd8e 100644 --- a/keyboards/keychron/q5_max/ansi_encoder/keymaps/via/config.h +++ b/keyboards/keychron/q5_max/ansi_encoder/keymaps/via/config.h @@ -3,6 +3,16 @@ #pragma once +// Tight, strict combo window for a simultaneous 3-key press. +// This ensures the fallback combo only fires when intended. +#define COMBO_TERM 10 +#define COMBO_STRICT_TIMER + +// Use a more conservative debounce period (20ms is standard for Keychron) +// but since we switched to 'sym_defer_pk' in rules.mk, this will now +// require 20ms of STABILITY before a keypress is reported. +#define DEBOUNCE 20 + // Always resolve combo keycodes from BASE (layer 0) so the // COMM+DOT+SLSH fallback combo fires regardless of the active layer. #define COMBO_ONLY_FROM_LAYER 0 diff --git a/keyboards/keychron/q5_max/ansi_encoder/keymaps/via/rules.mk b/keyboards/keychron/q5_max/ansi_encoder/keymaps/via/rules.mk index 256b50f150..a2e60506ae 100644 --- a/keyboards/keychron/q5_max/ansi_encoder/keymaps/via/rules.mk +++ b/keyboards/keychron/q5_max/ansi_encoder/keymaps/via/rules.mk @@ -5,3 +5,5 @@ COMBO_ENABLE = yes CAPS_WORD_ENABLE = yes AUTOCORRECT_ENABLE = yes SRC += chord_unicode.c + +DEBOUNCE_TYPE = sym_defer_pk