diff options
Diffstat (limited to 'quantum/process_keycode')
| -rw-r--r-- | quantum/process_keycode/process_auto_shift.c | 20 | ||||
| -rw-r--r-- | quantum/process_keycode/process_auto_shift.h | 1 | ||||
| -rw-r--r-- | quantum/process_keycode/process_backlight.c | 29 | ||||
| -rw-r--r-- | quantum/process_keycode/process_leader.c | 5 | ||||
| -rw-r--r-- | quantum/process_keycode/process_leader.h | 7 | ||||
| -rw-r--r-- | quantum/process_keycode/process_rgb.c | 5 | 
6 files changed, 56 insertions, 11 deletions
| diff --git a/quantum/process_keycode/process_auto_shift.c b/quantum/process_keycode/process_auto_shift.c index bf359e994d..51b0efdb47 100644 --- a/quantum/process_keycode/process_auto_shift.c +++ b/quantum/process_keycode/process_auto_shift.c @@ -216,7 +216,18 @@ bool process_auto_shift(uint16_t keycode, keyrecord_t *record) {  #    endif          }      } +    if (get_auto_shifted_key(keycode, record)) { +        if (record->event.pressed) { +            return autoshift_press(keycode, now, record); +        } else { +            autoshift_end(keycode, now, false); +            return false; +        } +    } +    return true; +} +__attribute__((weak)) bool get_auto_shifted_key(uint16_t keycode, keyrecord_t *record) {      switch (keycode) {  #    ifndef NO_AUTO_SHIFT_ALPHA          case KC_A ... KC_Z: @@ -229,14 +240,9 @@ bool process_auto_shift(uint16_t keycode, keyrecord_t *record) {          case KC_MINUS ... KC_SLASH:          case KC_NONUS_BSLASH:  #    endif -            if (record->event.pressed) { -                return autoshift_press(keycode, now, record); -            } else { -                autoshift_end(keycode, now, false); -                return false; -            } +            return true;      } -    return true; +    return false;  }  #endif diff --git a/quantum/process_keycode/process_auto_shift.h b/quantum/process_keycode/process_auto_shift.h index 5b2718f11c..00a9ab036f 100644 --- a/quantum/process_keycode/process_auto_shift.h +++ b/quantum/process_keycode/process_auto_shift.h @@ -31,3 +31,4 @@ bool     get_autoshift_state(void);  uint16_t get_autoshift_timeout(void);  void     set_autoshift_timeout(uint16_t timeout);  void     autoshift_matrix_scan(void); +bool     get_auto_shifted_key(uint16_t keycode, keyrecord_t *record); diff --git a/quantum/process_keycode/process_backlight.c b/quantum/process_keycode/process_backlight.c index 4d12f6813a..8b70339a55 100644 --- a/quantum/process_keycode/process_backlight.c +++ b/quantum/process_keycode/process_backlight.c @@ -16,11 +16,35 @@  #include "process_backlight.h" -#include "backlight.h" +#ifdef LED_MATRIX_ENABLE +#    include "led_matrix.h" +#else +#    include "backlight.h" +#endif  bool process_backlight(uint16_t keycode, keyrecord_t *record) {      if (record->event.pressed) {          switch (keycode) { +#ifdef LED_MATRIX_ENABLE +            case BL_ON: +                led_matrix_enable(); +                return false; +            case BL_OFF: +                led_matrix_disable(); +                return false; +            case BL_DEC: +                led_matrix_decrease_val(); +                return false; +            case BL_INC: +                led_matrix_increase_val(); +                return false; +            case BL_TOGG: +                led_matrix_toggle(); +                return false; +            case BL_STEP: +                led_matrix_step(); +                return false; +#else              case BL_ON:                  backlight_level(BACKLIGHT_LEVELS);                  return false; @@ -39,10 +63,11 @@ bool process_backlight(uint16_t keycode, keyrecord_t *record) {              case BL_STEP:                  backlight_step();                  return false; -#ifdef BACKLIGHT_BREATHING +#    ifdef BACKLIGHT_BREATHING              case BL_BRTG:                  backlight_toggle_breathing();                  return false; +#    endif  #endif          }      } diff --git a/quantum/process_keycode/process_leader.c b/quantum/process_keycode/process_leader.c index 58a615d85a..cf63f25141 100644 --- a/quantum/process_keycode/process_leader.c +++ b/quantum/process_keycode/process_leader.c @@ -49,7 +49,10 @@ bool process_leader(uint16_t keycode, keyrecord_t *record) {      // Leader key set-up      if (record->event.pressed) {          if (leading) { -            if (timer_elapsed(leader_time) < LEADER_TIMEOUT) { +#    ifndef LEADER_NO_TIMEOUT +            if (timer_elapsed(leader_time) < LEADER_TIMEOUT) +#    endif  // LEADER_NO_TIMEOUT +            {  #    ifndef LEADER_KEY_STRICT_KEY_PROCESSING                  if ((keycode >= QK_MOD_TAP && keycode <= QK_MOD_TAP_MAX) || (keycode >= QK_LAYER_TAP && keycode <= QK_LAYER_TAP_MAX)) {                      keycode = keycode & 0xFF; diff --git a/quantum/process_keycode/process_leader.h b/quantum/process_keycode/process_leader.h index 9844f27a1b..f3fe14a432 100644 --- a/quantum/process_keycode/process_leader.h +++ b/quantum/process_keycode/process_leader.h @@ -35,4 +35,9 @@ void qk_leader_start(void);      extern uint16_t leader_time;        \      extern uint16_t leader_sequence[5]; \      extern uint8_t  leader_sequence_size -#define LEADER_DICTIONARY() if (leading && timer_elapsed(leader_time) > LEADER_TIMEOUT) + +#ifdef LEADER_NO_TIMEOUT +#    define LEADER_DICTIONARY() if (leading && leader_sequence_size > 0 && timer_elapsed(leader_time) > LEADER_TIMEOUT) +#else +#    define LEADER_DICTIONARY() if (leading && timer_elapsed(leader_time) > LEADER_TIMEOUT) +#endif diff --git a/quantum/process_keycode/process_rgb.c b/quantum/process_keycode/process_rgb.c index 5dd8e7809d..167c0c03c9 100644 --- a/quantum/process_keycode/process_rgb.c +++ b/quantum/process_keycode/process_rgb.c @@ -207,6 +207,11 @@ bool process_rgb(const uint16_t keycode, const keyrecord_t *record) {                  rgblight_mode(RGBLIGHT_MODE_RGB_TEST);  #endif                  return false; +            case RGB_MODE_TWINKLE: +#if defined(RGBLIGHT_ENABLE) && !defined(RGBLIGHT_DISABLE_KEYCODES) && defined(RGBLIGHT_EFFECT_TWINKLE) +                handleKeycodeRGBMode(RGBLIGHT_MODE_TWINKLE, RGBLIGHT_MODE_TWINKLE_end); +#endif +                return false;          }      } | 
