mirror of
https://github.com/Keychron/qmk_firmware.git
synced 2024-12-28 20:18:49 +06:00
cbabc8dbe6
* Replace Tapping Force Hold feature with Quick Tap Term * Replace keyboard level TAPPING_FORCE_HOLD with QUICK_TAP_TERM 0 * Deprecate force hold in info_config.json * Before and after quick tap term unit tests * Quick tap unit tests iteration * Keymap config.h correction * Remove TAPPING_FORCE_HOLD_PER_KEY macros that were missed * Add two more test cases for quick tap * Replace TAPPING_FORCE_HOLD with QUICK_TAP_TERM in configs #2 * Replace TAPPING_FORCE_HOLD_PER_KEY with QUICK_TAP_TERM_PER_KEY in configs #2 * Add function declaration for get_quick_tap_term Co-authored-by: Stefan Kerkmann <karlk90@pm.me>
151 lines
5.3 KiB
C
151 lines
5.3 KiB
C
/* Copyright 2020 Jonathan Rascher
|
|
*
|
|
* This program is free software: you can redistribute it and/or modify
|
|
* it under the terms of the GNU General Public License as published by
|
|
* the Free Software Foundation, either version 2 of the License, or
|
|
* (at your option) any later version.
|
|
*
|
|
* This program is distributed in the hope that it will be useful,
|
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
* GNU General Public License for more details.
|
|
*
|
|
* You should have received a copy of the GNU General Public License
|
|
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|
*/
|
|
|
|
/* Enable NKRO by default. All my devices support this, and it enables me to
|
|
* dispense with the NK_TOGG key, thus saving firmware space by not compiling
|
|
* magic keycode support.
|
|
*/
|
|
#define FORCE_NKRO
|
|
|
|
/* Wait between tap_code register and unregister to fix flaky media keys. */
|
|
#undef TAP_CODE_DELAY
|
|
|
|
#define TAP_CODE_DELAY 20
|
|
|
|
/* Treat mod-tap keys as holds even if the mod-tap key and the key being
|
|
* modified are both released within TAPPING_TERM. This assumes the mod-tap key
|
|
* isn't usually pressed in quick succession with other tapped keys, which is
|
|
* good when the tap keycode is something like KC_ESC rather than a letter.
|
|
*/
|
|
#define PERMISSIVE_HOLD
|
|
|
|
/* Turn off key repeat support of the tap keycode for tap-hold keys, enabling
|
|
* holds to work correctly in quick succession after taps.
|
|
*/
|
|
#define QUICK_TAP_TERM 0
|
|
|
|
#if defined(OLED_ENABLE)
|
|
/* The built-in OLED timeout wakes the OLED screen every time the buffer is
|
|
* updated, even if no user activity has occurred recently. This prevents the
|
|
* OLED from ever turning off during a continuously running animation. To avoid
|
|
* this, we disable the default timeout and implement our own in
|
|
* oled_task_user.
|
|
*/
|
|
# undef OLED_TIMEOUT
|
|
# define OLED_DISABLE_TIMEOUT
|
|
|
|
# if defined(SPLIT_KEYBOARD)
|
|
/* Sync OLED on/off state between halves of split keyboards. */
|
|
# define SPLIT_OLED_ENABLE
|
|
# endif
|
|
#endif
|
|
|
|
#if defined(RGB_MATRIX_ENABLE)
|
|
/* Turn off per-key RGB when the host goes to sleep. */
|
|
# define RGB_DISABLE_WHEN_USB_SUSPENDED
|
|
|
|
/* Keep per-key RGB increments consistent across keyboards. */
|
|
# undef RGB_MATRIX_HUE_STEP
|
|
# undef RGB_MATRIX_SAT_STEP
|
|
# undef RGB_MATRIX_VAL_STEP
|
|
# undef RGB_MATRIX_SPD_STEP
|
|
|
|
# define RGB_MATRIX_HUE_STEP 8
|
|
# define RGB_MATRIX_SAT_STEP 17
|
|
# define RGB_MATRIX_VAL_STEP 17
|
|
# define RGB_MATRIX_SPD_STEP 17
|
|
|
|
/* Enable specific per-key animation modes. */
|
|
# define ENABLE_RGB_MATRIX_ALPHAS_MODS
|
|
# define ENABLE_RGB_MATRIX_BAND_PINWHEEL_SAT
|
|
# define ENABLE_RGB_MATRIX_BAND_PINWHEEL_VAL
|
|
# define ENABLE_RGB_MATRIX_BAND_SAT
|
|
# define ENABLE_RGB_MATRIX_BAND_SPIRAL_SAT
|
|
# define ENABLE_RGB_MATRIX_BAND_SPIRAL_VAL
|
|
# define ENABLE_RGB_MATRIX_BAND_VAL
|
|
# define ENABLE_RGB_MATRIX_BREATHING
|
|
# define ENABLE_RGB_MATRIX_CYCLE_ALL
|
|
# define ENABLE_RGB_MATRIX_CYCLE_LEFT_RIGHT
|
|
# define ENABLE_RGB_MATRIX_CYCLE_OUT_IN
|
|
# define ENABLE_RGB_MATRIX_CYCLE_OUT_IN_DUAL
|
|
# define ENABLE_RGB_MATRIX_CYCLE_PINWHEEL
|
|
# define ENABLE_RGB_MATRIX_CYCLE_SPIRAL
|
|
# define ENABLE_RGB_MATRIX_CYCLE_UP_DOWN
|
|
# define ENABLE_RGB_MATRIX_DUAL_BEACON
|
|
# define ENABLE_RGB_MATRIX_GRADIENT_LEFT_RIGHT
|
|
# define ENABLE_RGB_MATRIX_GRADIENT_UP_DOWN
|
|
# define ENABLE_RGB_MATRIX_HUE_BREATHING
|
|
# define ENABLE_RGB_MATRIX_HUE_PENDULUM
|
|
# define ENABLE_RGB_MATRIX_HUE_WAVE
|
|
# define ENABLE_RGB_MATRIX_JELLYBEAN_RAINDROPS
|
|
# define ENABLE_RGB_MATRIX_PIXEL_FRACTAL
|
|
# define ENABLE_RGB_MATRIX_PIXEL_RAIN
|
|
# define ENABLE_RGB_MATRIX_RAINBOW_BEACON
|
|
# define ENABLE_RGB_MATRIX_RAINBOW_MOVING_CHEVRON
|
|
# define ENABLE_RGB_MATRIX_RAINBOW_PINWHEELS
|
|
# define ENABLE_RGB_MATRIX_RAINDROPS
|
|
|
|
/* Enable additional per-key animation modes that require a copy of the
|
|
* framebuffer (with accompanying storage cost).
|
|
*/
|
|
# define RGB_MATRIX_FRAMEBUFFER_EFFECTS
|
|
# define ENABLE_RGB_MATRIX_DIGITAL_RAIN
|
|
# define ENABLE_RGB_MATRIX_TYPING_HEATMAP
|
|
#endif
|
|
|
|
#if defined(RGBLIGHT_ENABLE)
|
|
/* Turn off RGB underglow when the host goes to sleep. */
|
|
# define RGBLIGHT_SLEEP
|
|
|
|
/* Keep RGB underglow level increments consistent across keyboards. */
|
|
# undef RGBLIGHT_HUE_STEP
|
|
# undef RGBLIGHT_SAT_STEP
|
|
# undef RGBLIGHT_VAL_STEP
|
|
|
|
# define RGBLIGHT_HUE_STEP 8
|
|
# define RGBLIGHT_SAT_STEP 17
|
|
# define RGBLIGHT_VAL_STEP 17
|
|
|
|
/* Enable specific underglow animation modes. (Skip TWINKLE because it seems to
|
|
* be broken on ARM: https://github.com/qmk/qmk_firmware/issues/15345.)
|
|
*/
|
|
# define RGBLIGHT_EFFECT_ALTERNATING
|
|
# define RGBLIGHT_EFFECT_BREATHING
|
|
# define RGBLIGHT_EFFECT_CHRISTMAS
|
|
# define RGBLIGHT_EFFECT_KNIGHT
|
|
# define RGBLIGHT_EFFECT_RAINBOW_MOOD
|
|
# define RGBLIGHT_EFFECT_RAINBOW_SWIRL
|
|
# define RGBLIGHT_EFFECT_RGB_TEST
|
|
# define RGBLIGHT_EFFECT_SNAKE
|
|
# define RGBLIGHT_EFFECT_STATIC_GRADIENT
|
|
#endif
|
|
|
|
#if defined(BACKLIGHT_ENABLE)
|
|
/* Enable backlight breathing across the board. */
|
|
# define BACKLIGHT_BREATHING
|
|
|
|
/* Keep backlight level increments consistent across keyboards. */
|
|
# undef BACKLIGHT_LEVELS
|
|
|
|
# define BACKLIGHT_LEVELS 7
|
|
#endif
|
|
|
|
/* Turn off unused config options to reduce firmware size. */
|
|
#define LAYER_STATE_8BIT
|
|
#define NO_ACTION_ONESHOT
|
|
#undef LOCKING_RESYNC_ENABLE
|
|
#undef LOCKING_SUPPORT_ENABLE
|