Refactor Leader key feature (#19632)
Co-authored-by: Drashna Jaelre <drashna@live.com>
This commit is contained in:
		
							parent
							
								
									d10350cd2c
								
							
						
					
					
						commit
						bbf7a20b33
					
				
					 77 changed files with 2457 additions and 1968 deletions
				
			
		| 
						 | 
				
			
			@ -240,7 +240,6 @@ uint16_t muse_tempo     = 50;
 | 
			
		|||
 | 
			
		||||
// Used by Leader key chords
 | 
			
		||||
bool did_leader_succeed;
 | 
			
		||||
LEADER_EXTERNS();
 | 
			
		||||
 | 
			
		||||
// Tap-Dance stuffs, initializing functions that are coded further below
 | 
			
		||||
td_state_t cur_dance(tap_dance_state_t* state);
 | 
			
		||||
| 
						 | 
				
			
			@ -1404,6 +1403,81 @@ void leader_start_user(void) {
 | 
			
		|||
}
 | 
			
		||||
// Called when either the leader sequence is completed, or the leader timeout is hit
 | 
			
		||||
void leader_end_user(void) {
 | 
			
		||||
    did_leader_succeed = false;
 | 
			
		||||
 | 
			
		||||
    if (leader_sequence_one_key(KC_E)) {
 | 
			
		||||
        SEND_STRING(SS_LCTL(SS_LSFT("t")));
 | 
			
		||||
        did_leader_succeed = true;
 | 
			
		||||
    }
 | 
			
		||||
    if (leader_sequence_one_key(KC_C)) {
 | 
			
		||||
        SEND_STRING(SS_LGUI("r") SS_DELAY(250) "calc\n");
 | 
			
		||||
        did_leader_succeed = true;
 | 
			
		||||
    }
 | 
			
		||||
    else if (leader_sequence_one_key(KC_V)) {
 | 
			
		||||
        SEND_STRING(SS_LCTL("v"));
 | 
			
		||||
        did_leader_succeed = true;
 | 
			
		||||
    }
 | 
			
		||||
    else if (leader_sequence_two_keys(KC_E, KC_D)) {
 | 
			
		||||
        SEND_STRING(SS_LGUI("r") "cmd\n" SS_LCTL("c"));
 | 
			
		||||
        did_leader_succeed = true;
 | 
			
		||||
    }
 | 
			
		||||
    else if (leader_sequence_two_keys(KC_A, KC_C)) {
 | 
			
		||||
        SEND_STRING(SS_LCTL("a") SS_LCTL("c"));
 | 
			
		||||
        did_leader_succeed = true;
 | 
			
		||||
    }
 | 
			
		||||
    else if (leader_sequence_three_keys(KC_C, KC_A, KC_T)) {
 | 
			
		||||
        send_unicode_string("😸");
 | 
			
		||||
        did_leader_succeed = true;
 | 
			
		||||
    }
 | 
			
		||||
    else if (leader_sequence_three_keys(KC_B, KC_A, KC_T)) {
 | 
			
		||||
        send_unicode_string("🦇");
 | 
			
		||||
        did_leader_succeed = true;
 | 
			
		||||
    }
 | 
			
		||||
    else if (leader_sequence_three_keys(KC_D, KC_O, KC_G)) {
 | 
			
		||||
        send_unicode_string("🐶");
 | 
			
		||||
        did_leader_succeed = true;
 | 
			
		||||
    }
 | 
			
		||||
    else if (leader_sequence_five_keys(KC_S, KC_M, KC_I, KC_L, KC_E)) {
 | 
			
		||||
        send_unicode_string("🙂");
 | 
			
		||||
        did_leader_succeed = true;
 | 
			
		||||
    }
 | 
			
		||||
    else if (leader_sequence_four_keys(KC_H, KC_A, KC_P, KC_Y)) {
 | 
			
		||||
        send_unicode_string("🙂");
 | 
			
		||||
        did_leader_succeed = true;
 | 
			
		||||
    }
 | 
			
		||||
    else if (leader_sequence_five_keys(KC_H, KC_A, KC_P, KC_P, KC_Y)) {
 | 
			
		||||
        send_unicode_string("🙂");
 | 
			
		||||
        did_leader_succeed = true;
 | 
			
		||||
    }
 | 
			
		||||
    else if (leader_sequence_three_keys(KC_S, KC_A, KC_D)) {
 | 
			
		||||
        send_unicode_string("🙁");
 | 
			
		||||
        did_leader_succeed = true;
 | 
			
		||||
    }
 | 
			
		||||
    else if (leader_sequence_three_keys(KC_Y, KC_E, KC_S)) {
 | 
			
		||||
        send_unicode_string("👍");
 | 
			
		||||
        did_leader_succeed = true;
 | 
			
		||||
    }
 | 
			
		||||
    else if (leader_sequence_two_keys(KC_N, KC_O)) {
 | 
			
		||||
        send_unicode_string("👎");
 | 
			
		||||
        did_leader_succeed = true;
 | 
			
		||||
    }
 | 
			
		||||
    else if (leader_sequence_three_keys(KC_W, KC_O, KC_W)) {
 | 
			
		||||
        send_unicode_string("🤯");
 | 
			
		||||
        did_leader_succeed = true;
 | 
			
		||||
    }
 | 
			
		||||
    else if (leader_sequence_three_keys(KC_P, KC_O, KC_O)) {
 | 
			
		||||
        send_unicode_string("💩");
 | 
			
		||||
        did_leader_succeed = true;
 | 
			
		||||
    }
 | 
			
		||||
    else if (leader_sequence_four_keys(KC_P, KC_O, KC_O, KC_P)) {
 | 
			
		||||
        send_unicode_string("💩");
 | 
			
		||||
        did_leader_succeed = true;
 | 
			
		||||
    }
 | 
			
		||||
    else if (leader_sequence_four_keys(KC_B, KC_O, KC_A, KC_T)) {
 | 
			
		||||
        send_unicode_string("⛵");
 | 
			
		||||
        did_leader_succeed = true;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    if (did_leader_succeed) {
 | 
			
		||||
#ifdef AUDIO_ENABLE
 | 
			
		||||
        PLAY_SONG(leader_succeed);
 | 
			
		||||
| 
						 | 
				
			
			@ -1758,84 +1832,6 @@ void matrix_scan_user(void) {
 | 
			
		|||
            is_alt_tab_active = false;
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
    // Monitor and perform leader-key chords
 | 
			
		||||
    LEADER_DICTIONARY() {
 | 
			
		||||
        did_leader_succeed = leading = false;
 | 
			
		||||
 | 
			
		||||
        SEQ_ONE_KEY(KC_E) {
 | 
			
		||||
            SEND_STRING(SS_LCTL(SS_LSFT("t")));
 | 
			
		||||
            did_leader_succeed = true;
 | 
			
		||||
        }
 | 
			
		||||
        SEQ_ONE_KEY(KC_C) {
 | 
			
		||||
            SEND_STRING(SS_LGUI("r") SS_DELAY(250) "calc\n");
 | 
			
		||||
            did_leader_succeed = true;
 | 
			
		||||
        }
 | 
			
		||||
        else SEQ_ONE_KEY(KC_V) {
 | 
			
		||||
            SEND_STRING(SS_LCTL("v"));
 | 
			
		||||
            did_leader_succeed = true;
 | 
			
		||||
        }
 | 
			
		||||
        else SEQ_TWO_KEYS(KC_E, KC_D) {
 | 
			
		||||
            SEND_STRING(SS_LGUI("r") "cmd\n" SS_LCTL("c"));
 | 
			
		||||
            did_leader_succeed = true;
 | 
			
		||||
        }
 | 
			
		||||
        else SEQ_TWO_KEYS(KC_A, KC_C) {
 | 
			
		||||
            SEND_STRING(SS_LCTL("a") SS_LCTL("c"));
 | 
			
		||||
            did_leader_succeed = true;
 | 
			
		||||
        }
 | 
			
		||||
        else SEQ_THREE_KEYS(KC_C, KC_A, KC_T) {
 | 
			
		||||
            send_unicode_string("😸");
 | 
			
		||||
            did_leader_succeed = true;
 | 
			
		||||
        }
 | 
			
		||||
        else SEQ_THREE_KEYS(KC_B, KC_A, KC_T) {
 | 
			
		||||
            send_unicode_string("🦇");
 | 
			
		||||
            did_leader_succeed = true;
 | 
			
		||||
        }
 | 
			
		||||
        else SEQ_THREE_KEYS(KC_D, KC_O, KC_G) {
 | 
			
		||||
            send_unicode_string("🐶");
 | 
			
		||||
            did_leader_succeed = true;
 | 
			
		||||
        }
 | 
			
		||||
        else SEQ_FIVE_KEYS(KC_S, KC_M, KC_I, KC_L, KC_E) {
 | 
			
		||||
            send_unicode_string("🙂");
 | 
			
		||||
            did_leader_succeed = true;
 | 
			
		||||
        }
 | 
			
		||||
        else SEQ_FOUR_KEYS(KC_H, KC_A, KC_P, KC_Y) {
 | 
			
		||||
            send_unicode_string("🙂");
 | 
			
		||||
            did_leader_succeed = true;
 | 
			
		||||
        }
 | 
			
		||||
        else SEQ_FIVE_KEYS(KC_H, KC_A, KC_P, KC_P, KC_Y) {
 | 
			
		||||
            send_unicode_string("🙂");
 | 
			
		||||
            did_leader_succeed = true;
 | 
			
		||||
        }
 | 
			
		||||
        else SEQ_THREE_KEYS(KC_S, KC_A, KC_D) {
 | 
			
		||||
            send_unicode_string("🙁");
 | 
			
		||||
            did_leader_succeed = true;
 | 
			
		||||
        }
 | 
			
		||||
        else SEQ_THREE_KEYS(KC_Y, KC_E, KC_S) {
 | 
			
		||||
            send_unicode_string("👍");
 | 
			
		||||
            did_leader_succeed = true;
 | 
			
		||||
        }
 | 
			
		||||
        else SEQ_TWO_KEYS(KC_N, KC_O) {
 | 
			
		||||
            send_unicode_string("👎");
 | 
			
		||||
            did_leader_succeed = true;
 | 
			
		||||
        }
 | 
			
		||||
        else SEQ_THREE_KEYS(KC_W, KC_O, KC_W) {
 | 
			
		||||
            send_unicode_string("🤯");
 | 
			
		||||
            did_leader_succeed = true;
 | 
			
		||||
        }
 | 
			
		||||
        else SEQ_THREE_KEYS(KC_P, KC_O, KC_O) {
 | 
			
		||||
            send_unicode_string("💩");
 | 
			
		||||
            did_leader_succeed = true;
 | 
			
		||||
        }
 | 
			
		||||
        else SEQ_FOUR_KEYS(KC_P, KC_O, KC_O, KC_P) {
 | 
			
		||||
            send_unicode_string("💩");
 | 
			
		||||
            did_leader_succeed = true;
 | 
			
		||||
        }
 | 
			
		||||
        else SEQ_FOUR_KEYS(KC_B, KC_O, KC_A, KC_T) {
 | 
			
		||||
            send_unicode_string("⛵");
 | 
			
		||||
            did_leader_succeed = true;
 | 
			
		||||
        }
 | 
			
		||||
        leader_end();
 | 
			
		||||
    }
 | 
			
		||||
    // Run the wake-up RGB animation if performing wake-up
 | 
			
		||||
    if (do_wake_animation) {
 | 
			
		||||
        rgb_wakeup_sequence();
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue