diff options
author | Ryan <fauxpark@gmail.com> | 2023-02-13 03:19:02 +1100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-02-13 03:19:02 +1100 |
commit | bbf7a20b33de2d203518687cb5cd1aa85005ea27 (patch) | |
tree | ee1a5c412a02021d085c81a26321c3424eca7022 /users/kuchosauronad0 | |
parent | d10350cd2ceb2b9d80522cdec3ea908118f7fd35 (diff) |
Refactor Leader key feature (#19632)
Co-authored-by: Drashna Jaelre <drashna@live.com>
Diffstat (limited to 'users/kuchosauronad0')
-rw-r--r-- | users/kuchosauronad0/leader.c | 116 | ||||
-rw-r--r-- | users/kuchosauronad0/leader_user.c | 113 | ||||
-rw-r--r-- | users/kuchosauronad0/leader_user.h (renamed from users/kuchosauronad0/leader.h) | 2 | ||||
-rw-r--r-- | users/kuchosauronad0/readme.md | 4 | ||||
-rw-r--r-- | users/kuchosauronad0/rgblight_user.c | 2 | ||||
-rw-r--r-- | users/kuchosauronad0/rules.mk | 2 |
6 files changed, 118 insertions, 121 deletions
diff --git a/users/kuchosauronad0/leader.c b/users/kuchosauronad0/leader.c deleted file mode 100644 index e8935ec401..0000000000 --- a/users/kuchosauronad0/leader.c +++ /dev/null @@ -1,116 +0,0 @@ -#include "leader.h" -#ifdef RGBLIGHT_ENABLE -extern rgblight_config_t rgblight_config; -#endif -bool leader_succeed; - -LEADER_EXTERNS(); - -void matrix_scan_user(void) { - static bool has_ran_yet; - if (!has_ran_yet) { - has_ran_yet = true; - startup_user(); - } -#ifdef TAP_DANCE_ENABLE // Run Diablo 3 macro checking code. -// run_diablo_macro_check(); -#endif -#ifdef RGBLIGHT_ENABLE - matrix_scan_rgb(); -#endif - LEADER_DICTIONARY() { - leader_succeed = leading = false; - - SEQ_ONE_KEY(KC_W) { - // vim/tmux: Use in command mode in vim: write to file, switch tmux pane in the current session window and repeat the last command - SEND_STRING(":w" SS_TAP(X_ENTER)); - tmux_pane_switch_repeat(); - leader_succeed = true; - } else - SEQ_ONE_KEY(KC_T) { - // Send the Tmux Prefix - tmux_prefix(); - leader_succeed = true; - } else - SEQ_ONE_KEY(KC_A) { - // tmux: Send the prefix and press 'right' arrow - tmux_prefix(); - tap_code(KC_RIGHT); - leader_succeed = true; - } else - SEQ_TWO_KEYS(KC_T, KC_T) { - // tmux: Send the prefix to a nested session - tmux_prefix(); - tmux_prefix(); - leader_succeed = true; - } else - SEQ_TWO_KEYS(KC_T, KC_R) { - // tmux: Switch pane and repeat last action - tmux_pane_switch_repeat(); - leader_succeed = true; - } else - SEQ_TWO_KEYS(KC_V, KC_Z){ - // vim: Zoom pane - tap_code16(LCTL(KC_W)); - tap_code16(LSFT(KC_BSLS)); - leader_succeed = true; - } else - SEQ_TWO_KEYS(KC_V, KC_R) { - // vim: Substitute and place cursor - SEND_STRING(":%s///g" SS_TAP(X_LEFT)); - tap_code(KC_LEFT); - tap_code(KC_LEFT); - leader_succeed = true; - } else - SEQ_TWO_KEYS(KC_V, KC_T) { - // vim: move current pane to new tab - tap_code16(LCTL(KC_W)); - tap_code16(LSFT(KC_T)); - leader_succeed = true; - } else - SEQ_ONE_KEY(KC_R){ - // Toggle RGB Layer indicator - tap_code16(KC_RGB_T); - leader_succeed = true; - } else - SEQ_ONE_KEY(KC_SPC){ - // One Shot Unicode layer -//TODO tap_code16(OS_UNI); - leader_succeed = true; - } else - SEQ_TWO_KEYS(KC_SPC, KC_SPC){ - // Toggle _MODS - tap_code16(TG_MODS); - leader_succeed = true; - } else - SEQ_THREE_KEYS(KC_BSPC, KC_BSPC, KC_BSPC){ - // Reset the keyboard - reset_keyboard(); - leader_succeed = true; - } - leader_end(); - } -// matrix_scan_keymap(); -} - -void leader_start_user(void) { -#ifdef RGBLIGHT_ENABLE - rgblight_savebase(); - rgblight_mode_noeeprom(1); - rgblight_sethsv_noeeprom(HSV_GOLDENROD); -#endif -} - -void leader_end_user(void) { -// pick color depending of success /fail -// fade leader_start from 100 to 0 -// fade new color from 0 to 100 to 0 -// fade old color from 0 to 100 -#ifdef RGBLIGHT_ENABLE - if (leader_succeed) { - fadeflash_leds(HSV_GREEN); - } else { - fadeflash_leds(HSV_RED); - } -#endif -} diff --git a/users/kuchosauronad0/leader_user.c b/users/kuchosauronad0/leader_user.c new file mode 100644 index 0000000000..fd356021a6 --- /dev/null +++ b/users/kuchosauronad0/leader_user.c @@ -0,0 +1,113 @@ +#include "leader_user.h" +#ifdef RGBLIGHT_ENABLE +extern rgblight_config_t rgblight_config; +#endif +bool leader_succeed; + +void matrix_scan_user(void) { + static bool has_ran_yet; + if (!has_ran_yet) { + has_ran_yet = true; + startup_user(); + } +#ifdef TAP_DANCE_ENABLE // Run Diablo 3 macro checking code. +// run_diablo_macro_check(); +#endif +#ifdef RGBLIGHT_ENABLE + matrix_scan_rgb(); +#endif + +// matrix_scan_keymap(); +} + +void leader_start_user(void) { +#ifdef RGBLIGHT_ENABLE + rgblight_savebase(); + rgblight_mode_noeeprom(1); + rgblight_sethsv_noeeprom(HSV_GOLDENROD); +#endif +} + +void leader_end_user(void) { + leader_succeed = false; + + if (leader_sequence_one_key(KC_W)) { + // vim/tmux: Use in command mode in vim: write to file, switch tmux pane in the current session window and repeat the last command + SEND_STRING(":w" SS_TAP(X_ENTER)); + tmux_pane_switch_repeat(); + leader_succeed = true; + } else + if (leader_sequence_one_key(KC_T)) { + // Send the Tmux Prefix + tmux_prefix(); + leader_succeed = true; + } else + if (leader_sequence_one_key(KC_A)) { + // tmux: Send the prefix and press 'right' arrow + tmux_prefix(); + tap_code(KC_RIGHT); + leader_succeed = true; + } else + if (leader_sequence_two_keys(KC_T, KC_T)) { + // tmux: Send the prefix to a nested session + tmux_prefix(); + tmux_prefix(); + leader_succeed = true; + } else + if (leader_sequence_two_keys(KC_T, KC_R)) { + // tmux: Switch pane and repeat last action + tmux_pane_switch_repeat(); + leader_succeed = true; + } else + if (leader_sequence_two_keys(KC_V, KC_Z)){ + // vim: Zoom pane + tap_code16(LCTL(KC_W)); + tap_code16(LSFT(KC_BSLS)); + leader_succeed = true; + } else + if (leader_sequence_two_keys(KC_V, KC_R)) { + // vim: Substitute and place cursor + SEND_STRING(":%s///g" SS_TAP(X_LEFT)); + tap_code(KC_LEFT); + tap_code(KC_LEFT); + leader_succeed = true; + } else + if (leader_sequence_two_keys(KC_V, KC_T)) { + // vim: move current pane to new tab + tap_code16(LCTL(KC_W)); + tap_code16(LSFT(KC_T)); + leader_succeed = true; + } else + if (leader_sequence_one_key(KC_R)){ + // Toggle RGB Layer indicator + tap_code16(KC_RGB_T); + leader_succeed = true; + } else + if (leader_sequence_one_key(KC_SPC)){ + // One Shot Unicode layer +//TODO tap_code16(OS_UNI); + leader_succeed = true; + } else + if (leader_sequence_two_keys(KC_SPC, KC_SPC)){ + // Toggle _MODS + tap_code16(TG_MODS); + leader_succeed = true; + } else + if (leader_sequence_three_keys(KC_BSPC, KC_BSPC, KC_BSPC)){ + // Reset the keyboard + reset_keyboard(); + leader_succeed = true; + } + +// pick color depending of success /fail +// fade leader_start from 100 to 0 +// fade new color from 0 to 100 to 0 +// fade old color from 0 to 100 +#ifdef RGBLIGHT_ENABLE + if (leader_succeed) { + fadeflash_leds(HSV_GREEN); + } else { + fadeflash_leds(HSV_RED); + } +#endif +} diff --git a/users/kuchosauronad0/leader.h b/users/kuchosauronad0/leader_user.h index ed904f3063..d68dc80c13 100644 --- a/users/kuchosauronad0/leader.h +++ b/users/kuchosauronad0/leader_user.h @@ -1,6 +1,6 @@ #pragma once #include "kuchosauronad0.h" -#include "leader.h" +#include "leader_user.h" void matrix_scan_user(void); diff --git a/users/kuchosauronad0/readme.md b/users/kuchosauronad0/readme.md index b577eedb70..88cc4cd374 100644 --- a/users/kuchosauronad0/readme.md +++ b/users/kuchosauronad0/readme.md @@ -38,7 +38,7 @@ TODO: Make use of `TD_SPC` and `TD_QT{1..3}` ## [Leader Key](#leader-key) To enable set `LEADER_ENABLE = yes` in file *rules.mk* -|LEADER_DICTIONARY()|program| description | +|Leader sequence|program| description | |---|---|---| | W |vim/tmux| save file, switch pane and repeat last command | | T |tmux| send default prefix | @@ -50,7 +50,7 @@ To enable set `LEADER_ENABLE = yes` in file *rules.mk* |V + T|vim | move current split to its own tab| |3x Backspace|keyboard| Reset Keyboard | -`LEADER_DICTIONARY()` is defined in *leader.c* +Leader sequences are defined in *leader_user.c* ## [Combo Keys](#combo-keys) To enable set `COMBO_ENABLE = yes` in file *rules.mk*. diff --git a/users/kuchosauronad0/rgblight_user.c b/users/kuchosauronad0/rgblight_user.c index 77a8ac6df8..1b5c29cfb0 100644 --- a/users/kuchosauronad0/rgblight_user.c +++ b/users/kuchosauronad0/rgblight_user.c @@ -145,7 +145,7 @@ void rgblight_fade_helper(bool direction){ void fadeflash_leds(uint8_t hue, uint8_t sat, uint8_t val){ // indicate success / fail of a leader sequence // fade out, set new hue and saturation, fade in, fade out, set old color, fade in - // this is used in leader.c + // this is used in leader_user.c // TODO: come up with a better name maybe rgblight_fade_helper(false); rgblight_sethsv_noeeprom(hue, sat, 0); diff --git a/users/kuchosauronad0/rules.mk b/users/kuchosauronad0/rules.mk index dfab85703c..a65fe9d258 100644 --- a/users/kuchosauronad0/rules.mk +++ b/users/kuchosauronad0/rules.mk @@ -21,7 +21,7 @@ ifeq ($(strip $(COMBO_ENABLE)), yes) endif ifeq ($(strip $(LEADER_ENABLE)), yes) - SRC += leader.c + SRC += leader_user.c endif ifneq ("$(wildcard $(USER_PATH)/secrets.c)","") |