From bbf7a20b33de2d203518687cb5cd1aa85005ea27 Mon Sep 17 00:00:00 2001 From: Ryan Date: Mon, 13 Feb 2023 03:19:02 +1100 Subject: Refactor Leader key feature (#19632) Co-authored-by: Drashna Jaelre --- users/danielo515/danielo515.c | 171 +++++++++++++++++++++++++----------------- 1 file changed, 104 insertions(+), 67 deletions(-) (limited to 'users/danielo515/danielo515.c') diff --git a/users/danielo515/danielo515.c b/users/danielo515/danielo515.c index 1c7718f1d2..aa33f55d66 100644 --- a/users/danielo515/danielo515.c +++ b/users/danielo515/danielo515.c @@ -4,84 +4,121 @@ bool onMac = true; //**************** LEADER *********************// #ifdef LEADER_ENABLE -LEADER_EXTERNS(); +void leader_start_user(vodi) { # ifdef RGBLIGHT_ENABLE - -void leader_start_user(void) { rgblight_setrgb_range(5, 100, 199, 10, 15); }; - -void leader_end_user(void) { rgblight_setrgb_range(200, 200, 255, 10, 15); }; + rgblight_setrgb_range(5, 100, 199, 10, 15); # endif +} -void matrix_scan_user(void) { - if (leading && leader_sequence_size > 0 && timer_elapsed(leader_time) > LEADER_TIMEOUT) { - leading = false; - SEQ_ONE_KEY(KC_T) { SEND_STRING("``" SS_TAP(X_LEFT)); } - // Triple ticks - SEQ_TWO_KEYS(KC_T, KC_T) { SEND_STRING("```" SS_TAP(X_ENTER) SS_TAP(X_ENTER) "```" SS_TAP(X_UP)); } - // ==== International spanish accent vowels ==== - SEQ_ONE_KEY(KC_A) { SEND_STRING(SS_LALT("e") "a"); } - SEQ_ONE_KEY(KC_E) { SEND_STRING(SS_LALT("e") "e"); } - SEQ_ONE_KEY(KC_I) { SEND_STRING(SS_LALT("e") "i"); } - SEQ_ONE_KEY(KC_O) { SEND_STRING(SS_LALT("e") "o"); } - SEQ_ONE_KEY(KC_U) { SEND_STRING(SS_LALT("e") "u"); } - SEQ_ONE_KEY(KC_N) { SEND_STRING(SS_LALT("n") "n"); } - // ==== MACROS === - SEQ_ONE_KEY(KC_G) { SEND_STRING(" | grep "); } - SEQ_ONE_KEY(KC_K) { onMac ? SEND_STRING(SS_LCTL(" ")) : SEND_STRING(SS_LCTL("f")); } - // vim delete all - SEQ_TWO_KEYS(KC_D, KC_G) { - if (onMac) { - SEND_STRING(SS_LGUI("a") SS_TAP(X_D)); - } else { - SEND_STRING(SS_LCTL("a") SS_TAP(X_D)); - } +void leader_end_user() { + if (leader_sequence_one_key(KC_T)) { + SEND_STRING("``" SS_TAP(X_LEFT)); + } + // Triple ticks + if (leader_sequence_two_keys(KC_T, KC_T)) { + SEND_STRING("```" SS_TAP(X_ENTER) SS_TAP(X_ENTER) "```" SS_TAP(X_UP)); + } + // ==== International spanish accent vowels ==== + if (leader_sequence_one_key(KC_A)) { + SEND_STRING(SS_LALT("e") "a"); + } + if (leader_sequence_one_key(KC_E)) { + SEND_STRING(SS_LALT("e") "e"); + } + if (leader_sequence_one_key(KC_I)) { + SEND_STRING(SS_LALT("e") "i"); + } + if (leader_sequence_one_key(KC_O)) { + SEND_STRING(SS_LALT("e") "o"); + } + if (leader_sequence_one_key(KC_U)) { + SEND_STRING(SS_LALT("e") "u"); + } + if (leader_sequence_one_key(KC_N)) { + SEND_STRING(SS_LALT("n") "n"); + } + // ==== MACROS === + if (leader_sequence_one_key(KC_G)) { + SEND_STRING(" | grep "); + } + if (leader_sequence_one_key(KC_K)) { + onMac ? SEND_STRING(SS_LCTL(" ")) : SEND_STRING(SS_LCTL("f")); + } + // vim delete all + if (leader_sequence_two_keys(KC_D, KC_G)) { + if (onMac) { + SEND_STRING(SS_LGUI("a") SS_TAP(X_D)); + } else { + SEND_STRING(SS_LCTL("a") SS_TAP(X_D)); } - // tripe delete! - SEQ_ONE_KEY(KC_BACKSPACE) { SEND_STRING(SS_TAP(X_BACKSPACE) SS_TAP(X_BACKSPACE) SS_TAP(X_BACKSPACE)); } - SEQ_TWO_KEYS(KC_P, KC_G) { SEND_STRING("ps -ef | grep "); } - SEQ_TWO_KEYS(KC_J, KC_A) { SEND_STRING("() => {}" SS_TAP(X_LEFT) SS_TAP(X_LEFT) SS_TAP(X_LEFT) SS_TAP(X_LEFT) SS_TAP(X_LEFT) SS_TAP(X_LEFT) SS_TAP(X_LEFT)); } - // this is a pain to type - SEQ_TWO_KEYS(KC_S, KC_S) { SEND_STRING("~/.ssh/ "); } - SEQ_TWO_KEYS(KC_F, KC_T) { SEND_STRING("feat():" SS_TAP(X_LEFT) SS_TAP(X_LEFT)); } - // ### LAYER CHANGE - SEQ_ONE_KEY(KC_1) { layer_on(1); } - // control enter, because yes - SEQ_ONE_KEY(KC_H) { SEND_STRING(SS_DOWN(X_LCTL) SS_TAP(X_ENTER) SS_UP(X_LCTL)); } - // paste all - SEQ_ONE_KEY(KC_P) { - if (onMac) { - SEND_STRING(SS_LGUI("a") SS_LGUI("v")); - } else { - SEND_STRING(SS_LCTL("a") SS_LCTL("v")); - } + } + // tripe delete! + if (leader_sequence_one_key(KC_BACKSPACE)) { + SEND_STRING(SS_TAP(X_BACKSPACE) SS_TAP(X_BACKSPACE) SS_TAP(X_BACKSPACE)); + } + if (leader_sequence_two_keys(KC_P, KC_G)) { + SEND_STRING("ps -ef | grep "); + } + if (leader_sequence_two_keys(KC_J, KC_A)) { + SEND_STRING("() => {}" SS_TAP(X_LEFT) SS_TAP(X_LEFT) SS_TAP(X_LEFT) SS_TAP(X_LEFT) SS_TAP(X_LEFT) SS_TAP(X_LEFT) SS_TAP(X_LEFT)); + } + // this is a pain to type + if (leader_sequence_two_keys(KC_S, KC_S)) { + SEND_STRING("~/.ssh/ "); + } + if (leader_sequence_two_keys(KC_F, KC_T)) { + SEND_STRING("feat():" SS_TAP(X_LEFT) SS_TAP(X_LEFT)); + } + // ### LAYER CHANGE + if (leader_sequence_one_key(KC_1)) { + layer_on(1); + } + // control enter, because yes + if (leader_sequence_one_key(KC_H)) { + SEND_STRING(SS_DOWN(X_LCTL) SS_TAP(X_ENTER) SS_UP(X_LCTL)); + } + // paste all + if (leader_sequence_one_key(KC_P)) { + if (onMac) { + SEND_STRING(SS_LGUI("a") SS_LGUI("v")); + } else { + SEND_STRING(SS_LCTL("a") SS_LCTL("v")); } - SEQ_THREE_KEYS(KC_M, KC_A, KC_C) { - onMac = true; + } + if (leader_sequence_three_keys(KC_M, KC_A, KC_C)) { + onMac = true; # ifdef RGBLIGHT_ENABLE - rgblight_setrgb(255, 255, 255); + rgblight_setrgb(255, 255, 255); # endif - } - SEQ_THREE_KEYS(KC_W, KC_I, KC_N) { - onMac = false; + } + if (leader_sequence_three_keys(KC_W, KC_I, KC_N)) { + onMac = false; # ifdef RGBLIGHT_ENABLE - rgblight_setrgb(255, 255, 0); + rgblight_setrgb(255, 255, 0); # endif + } + /* Copy all */ + if (leader_sequence_one_key(KC_Y)) { + if (onMac) { + SEND_STRING(SS_LGUI("a") SS_LGUI("c")); + } else { + SEND_STRING(SS_LCTL("a") SS_LCTL("c")); } - /* Copy all */ - SEQ_ONE_KEY(KC_Y) { - if (onMac) { - SEND_STRING(SS_LGUI("a") SS_LGUI("c")); - } else { - SEND_STRING(SS_LCTL("a") SS_LCTL("c")); - } - } - // emoji bar - SEQ_TWO_KEYS(KC_E, KC_E) { SEND_STRING(SS_DOWN(X_LGUI) SS_LCTL(" ") SS_UP(X_LGUI)); } - - SEQ_TWO_KEYS(KC_F, KC_F) { SEND_STRING("ps -ef | grep "); } - SEQ_TWO_KEYS(KC_H, KC_T) { SEND_STRING("https://"); } + } + // emoji bar + if (leader_sequence_two_keys(KC_E, KC_E)) { + SEND_STRING(SS_DOWN(X_LGUI) SS_LCTL(" ") SS_UP(X_LGUI)); + } - leader_end(); + if (leader_sequence_two_keys(KC_F, KC_F)) { + SEND_STRING("ps -ef | grep "); } + if (leader_sequence_two_keys(KC_H, KC_T)) { + SEND_STRING("https://"); + } + +# ifdef RGBLIGHT_ENABLE + rgblight_setrgb_range(200, 200, 255, 10, 15); +# endif } #endif // LEADER -- cgit v1.2.3