mirror of
				https://github.com/mfulz/qmk_firmware.git
				synced 2025-10-30 21:02:32 +01:00 
			
		
		
		
	Leader: remove qk_ prefix (#19304)
				
					
				
			This commit is contained in:
		
							parent
							
								
									49b81a9c2b
								
							
						
					
					
						commit
						e2117564c5
					
				| @ -93,18 +93,18 @@ While, this may be fine for most, if you want to specify the whole keycode (eg, | |||||||
| 
 | 
 | ||||||
| ## Customization  | ## Customization  | ||||||
| 
 | 
 | ||||||
| The Leader Key feature has some additional customization to how the Leader Key feature works. It has two functions that can be called at certain parts of the process. Namely `leader_start()` and `leader_end()`. | The Leader Key feature has some additional customization to how the Leader Key feature works. It has two functions that can be called at certain parts of the process. Namely `leader_start_user()` and `leader_end_user()`. | ||||||
| 
 | 
 | ||||||
| The `leader_start()` function is called when you tap the `QK_LEAD` key, and the `leader_end()` function is called when either the leader sequence is completed, or the leader timeout is hit.  | The `leader_start_user()` function is called when you tap the `QK_LEAD` key, and the `leader_end_user()` function is called when either the leader sequence is completed, or the leader timeout is hit.  | ||||||
| 
 | 
 | ||||||
| You can add these functions to your code (`keymap.c` usually) to add feedback to the Leader sequences (such as beeping or playing music). | You can add these functions to your code (`keymap.c` usually) to add feedback to the Leader sequences (such as beeping or playing music). | ||||||
| 
 | 
 | ||||||
| ```c | ```c | ||||||
| void leader_start(void) { | void leader_start_user(void) { | ||||||
|   // sequence started |   // sequence started | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| void leader_end(void) { | void leader_end_user(void) { | ||||||
|   // sequence ended (no success/failure detection) |   // sequence ended (no success/failure detection) | ||||||
| } | } | ||||||
| ``` | ``` | ||||||
| @ -139,13 +139,13 @@ void matrix_scan_user(void) { | |||||||
|   } |   } | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| void leader_start(void) { | void leader_start_user(void) { | ||||||
| #ifdef AUDIO_ENABLE | #ifdef AUDIO_ENABLE | ||||||
|     PLAY_SONG(leader_start); |     PLAY_SONG(leader_start); | ||||||
| #endif | #endif | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| void leader_end(void) { | void leader_end_user(void) { | ||||||
|   if (did_leader_succeed) { |   if (did_leader_succeed) { | ||||||
| #ifdef AUDIO_ENABLE | #ifdef AUDIO_ENABLE | ||||||
|     PLAY_SONG(leader_succeed); |     PLAY_SONG(leader_succeed); | ||||||
|  | |||||||
| @ -38,7 +38,7 @@ int ctl_state = 0; | |||||||
| void ctl_finished(qk_tap_dance_state_t *state, void *user_data) { | void ctl_finished(qk_tap_dance_state_t *state, void *user_data) { | ||||||
|     ctl_state = cur_dance(state); |     ctl_state = cur_dance(state); | ||||||
|     switch (ctl_state) { |     switch (ctl_state) { | ||||||
|         case SINGLE_TAP:    qk_leader_start(); break; |         case SINGLE_TAP:    leader_start(); break; | ||||||
|         case SINGLE_HOLD:   register_code(KC_LCTL); break; |         case SINGLE_HOLD:   register_code(KC_LCTL); break; | ||||||
|         case DOUBLE_TAP:    tap_code(KC_RCTL); break; |         case DOUBLE_TAP:    tap_code(KC_RCTL); break; | ||||||
|         case DOUBLE_HOLD:   register_code(KC_RCTL); break; |         case DOUBLE_HOLD:   register_code(KC_RCTL); break; | ||||||
|  | |||||||
| @ -708,11 +708,11 @@ void matrix_scan_user(void) | |||||||
|     } |     } | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| void leader_start(void) { | void leader_start_user(void) { | ||||||
|     isLeader = true; |     isLeader = true; | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| void leader_end(void) { | void leader_end_user(void) { | ||||||
|     isLeader = false; |     isLeader = false; | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
|  | |||||||
| @ -17,7 +17,7 @@ void none_lead_finished(qk_tap_dance_state_t *state, void *user_data) { | |||||||
|             break; |             break; | ||||||
| 
 | 
 | ||||||
|         case DOUBLE_TAP: |         case DOUBLE_TAP: | ||||||
|             qk_leader_start(); |             leader_start(); | ||||||
|             break; |             break; | ||||||
|     } |     } | ||||||
| } | } | ||||||
|  | |||||||
| @ -45,7 +45,7 @@ int ctl_state = 0; | |||||||
| void ctl_finished(qk_tap_dance_state_t *state, void *user_data) { | void ctl_finished(qk_tap_dance_state_t *state, void *user_data) { | ||||||
|     ctl_state = cur_dance(state); |     ctl_state = cur_dance(state); | ||||||
|     switch(ctl_state) { |     switch(ctl_state) { | ||||||
|         case SINGLE_TAP:    qk_leader_start(); break; |         case SINGLE_TAP:    leader_start(); break; | ||||||
|         case SINGLE_HOLD:   register_code(KC_LCTL); break; |         case SINGLE_HOLD:   register_code(KC_LCTL); break; | ||||||
|         case DOUBLE_TAP:    tap_code(KC_RCTL); break; |         case DOUBLE_TAP:    tap_code(KC_RCTL); break; | ||||||
|         case DOUBLE_HOLD:   register_code(KC_RCTL); break; |         case DOUBLE_HOLD:   register_code(KC_RCTL); break; | ||||||
|  | |||||||
| @ -43,7 +43,7 @@ int ctl_state = 0; | |||||||
| void ctl_finished(qk_tap_dance_state_t *state, void *user_data) { | void ctl_finished(qk_tap_dance_state_t *state, void *user_data) { | ||||||
|     ctl_state = cur_dance(state); |     ctl_state = cur_dance(state); | ||||||
|     switch (ctl_state) { |     switch (ctl_state) { | ||||||
|         case SINGLE_TAP:    qk_leader_start(); break; |         case SINGLE_TAP:    leader_start(); break; | ||||||
|         case SINGLE_HOLD:   register_code(KC_LCTL); break; |         case SINGLE_HOLD:   register_code(KC_LCTL); break; | ||||||
|         case DOUBLE_TAP:    tap_code(KC_RCTL); break; |         case DOUBLE_TAP:    tap_code(KC_RCTL); break; | ||||||
|         case DOUBLE_HOLD:   register_code(KC_RCTL); break; |         case DOUBLE_HOLD:   register_code(KC_RCTL); break; | ||||||
|  | |||||||
| @ -1397,13 +1397,13 @@ bool get_permissive_hold(uint16_t keycode, keyrecord_t* record) { | |||||||
|  * by playing sound at different stages of the leader chord |  * by playing sound at different stages of the leader chord | ||||||
|  */ |  */ | ||||||
| // Called when you tap the Leader key
 | // Called when you tap the Leader key
 | ||||||
| void leader_start(void) { | void leader_start_user(void) { | ||||||
| #ifdef AUDIO_ENABLE | #ifdef AUDIO_ENABLE | ||||||
|     PLAY_SONG(leader_started); |     PLAY_SONG(leader_started); | ||||||
| #endif | #endif | ||||||
| } | } | ||||||
| // Called when either the leader sequence is completed, or the leader timeout is hit
 | // Called when either the leader sequence is completed, or the leader timeout is hit
 | ||||||
| void leader_end(void) { | void leader_end_user(void) { | ||||||
|     if (did_leader_succeed) { |     if (did_leader_succeed) { | ||||||
| #ifdef AUDIO_ENABLE | #ifdef AUDIO_ENABLE | ||||||
|         PLAY_SONG(leader_succeed); |         PLAY_SONG(leader_succeed); | ||||||
|  | |||||||
| @ -187,7 +187,7 @@ void matrix_scan_user(void) { | |||||||
|     } |     } | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| void leader_end(void) { | void leader_end_user(void) { | ||||||
|     // Plays sound on if leader sequence found.
 |     // Plays sound on if leader sequence found.
 | ||||||
|     if (leader_found) { |     if (leader_found) { | ||||||
| #ifdef AUDIO_ENABLE | #ifdef AUDIO_ENABLE | ||||||
|  | |||||||
| @ -469,13 +469,13 @@ void matrix_scan_user(void) { | |||||||
|   } |   } | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| void leader_start(void) { | void leader_start_user(void) { | ||||||
| #ifdef AUDIO_ENABLE | #ifdef AUDIO_ENABLE | ||||||
|     PLAY_SONG(leader_start_song); |     PLAY_SONG(leader_start_song); | ||||||
| #endif | #endif | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| void leader_end(void) { | void leader_end_user(void) { | ||||||
|   if (did_leader_succeed) { |   if (did_leader_succeed) { | ||||||
| #ifdef AUDIO_ENABLE | #ifdef AUDIO_ENABLE | ||||||
|     PLAY_SONG(leader_succeed_song); |     PLAY_SONG(leader_succeed_song); | ||||||
|  | |||||||
| @ -197,7 +197,7 @@ void matrix_scan_user(void) { | |||||||
|     } |     } | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| void leader_end(void) { | void leader_end_user(void) { | ||||||
|     // Plays sound on if leader sequence found.
 |     // Plays sound on if leader sequence found.
 | ||||||
|     if (leader_found) { |     if (leader_found) { | ||||||
| #ifdef AUDIO_ENABLE | #ifdef AUDIO_ENABLE | ||||||
|  | |||||||
| @ -14,18 +14,16 @@ | |||||||
|  * along with this program.  If not, see <http://www.gnu.org/licenses/>.
 |  * along with this program.  If not, see <http://www.gnu.org/licenses/>.
 | ||||||
|  */ |  */ | ||||||
| 
 | 
 | ||||||
| #ifdef LEADER_ENABLE | #include "process_leader.h" | ||||||
|  | #include <string.h> | ||||||
| 
 | 
 | ||||||
| #    include "process_leader.h" | #ifndef LEADER_TIMEOUT | ||||||
| #    include <string.h> | #    define LEADER_TIMEOUT 300 | ||||||
|  | #endif | ||||||
| 
 | 
 | ||||||
| #    ifndef LEADER_TIMEOUT | __attribute__((weak)) void leader_start_user(void) {} | ||||||
| #        define LEADER_TIMEOUT 300 |  | ||||||
| #    endif |  | ||||||
| 
 | 
 | ||||||
| __attribute__((weak)) void leader_start(void) {} | __attribute__((weak)) void leader_end_user(void) {} | ||||||
| 
 |  | ||||||
| __attribute__((weak)) void leader_end(void) {} |  | ||||||
| 
 | 
 | ||||||
| // Leader key stuff
 | // Leader key stuff
 | ||||||
| bool     leading     = false; | bool     leading     = false; | ||||||
| @ -34,52 +32,54 @@ uint16_t leader_time = 0; | |||||||
| uint16_t leader_sequence[5]   = {0, 0, 0, 0, 0}; | uint16_t leader_sequence[5]   = {0, 0, 0, 0, 0}; | ||||||
| uint8_t  leader_sequence_size = 0; | uint8_t  leader_sequence_size = 0; | ||||||
| 
 | 
 | ||||||
| void qk_leader_start(void) { | void leader_start(void) { | ||||||
|     if (leading) { |     if (leading) { | ||||||
|         return; |         return; | ||||||
|     } |     } | ||||||
|     leader_start(); |     leader_start_user(); | ||||||
|     leading              = true; |     leading              = true; | ||||||
|     leader_time          = timer_read(); |     leader_time          = timer_read(); | ||||||
|     leader_sequence_size = 0; |     leader_sequence_size = 0; | ||||||
|     memset(leader_sequence, 0, sizeof(leader_sequence)); |     memset(leader_sequence, 0, sizeof(leader_sequence)); | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
|  | void leader_end(void) { | ||||||
|  |     leader_end_user(); | ||||||
|  | } | ||||||
|  | 
 | ||||||
| bool process_leader(uint16_t keycode, keyrecord_t *record) { | bool process_leader(uint16_t keycode, keyrecord_t *record) { | ||||||
|     // Leader key set-up
 |     // Leader key set-up
 | ||||||
|     if (record->event.pressed) { |     if (record->event.pressed) { | ||||||
|         if (leading) { |         if (leading) { | ||||||
| #    ifndef LEADER_NO_TIMEOUT | #ifndef LEADER_NO_TIMEOUT | ||||||
|             if (timer_elapsed(leader_time) < LEADER_TIMEOUT) |             if (timer_elapsed(leader_time) < LEADER_TIMEOUT) | ||||||
| #    endif // LEADER_NO_TIMEOUT
 | #endif // LEADER_NO_TIMEOUT
 | ||||||
|             { |             { | ||||||
| #    ifndef LEADER_KEY_STRICT_KEY_PROCESSING | #ifndef LEADER_KEY_STRICT_KEY_PROCESSING | ||||||
|                 if (IS_QK_MOD_TAP(keycode)) { |                 if (IS_QK_MOD_TAP(keycode)) { | ||||||
|                     keycode = QK_MOD_TAP_GET_TAP_KEYCODE(keycode); |                     keycode = QK_MOD_TAP_GET_TAP_KEYCODE(keycode); | ||||||
|                 } else if (IS_QK_LAYER_TAP(keycode)) { |                 } else if (IS_QK_LAYER_TAP(keycode)) { | ||||||
|                     keycode = QK_LAYER_TAP_GET_TAP_KEYCODE(keycode); |                     keycode = QK_LAYER_TAP_GET_TAP_KEYCODE(keycode); | ||||||
|                 } |                 } | ||||||
| #    endif // LEADER_KEY_STRICT_KEY_PROCESSING
 | #endif // LEADER_KEY_STRICT_KEY_PROCESSING
 | ||||||
|                 if (leader_sequence_size < ARRAY_SIZE(leader_sequence)) { |                 if (leader_sequence_size < ARRAY_SIZE(leader_sequence)) { | ||||||
|                     leader_sequence[leader_sequence_size] = keycode; |                     leader_sequence[leader_sequence_size] = keycode; | ||||||
|                     leader_sequence_size++; |                     leader_sequence_size++; | ||||||
|                 } else { |                 } else { | ||||||
|                     leading = false; |                     leading = false; | ||||||
|                     leader_end(); |                     leader_end_user(); | ||||||
|                     return true; |                     return true; | ||||||
|                 } |                 } | ||||||
| #    ifdef LEADER_PER_KEY_TIMING | #ifdef LEADER_PER_KEY_TIMING | ||||||
|                 leader_time = timer_read(); |                 leader_time = timer_read(); | ||||||
| #    endif | #endif | ||||||
|                 return false; |                 return false; | ||||||
|             } |             } | ||||||
|         } else { |         } else { | ||||||
|             if (keycode == QK_LEADER) { |             if (keycode == QK_LEADER) { | ||||||
|                 qk_leader_start(); |                 leader_start(); | ||||||
|             } |             } | ||||||
|         } |         } | ||||||
|     } |     } | ||||||
|     return true; |     return true; | ||||||
| } | } | ||||||
| 
 |  | ||||||
| #endif |  | ||||||
|  | |||||||
| @ -20,9 +20,11 @@ | |||||||
| 
 | 
 | ||||||
| bool process_leader(uint16_t keycode, keyrecord_t *record); | bool process_leader(uint16_t keycode, keyrecord_t *record); | ||||||
| 
 | 
 | ||||||
|  | void leader_start_user(void); | ||||||
|  | void leader_end_user(void); | ||||||
|  | 
 | ||||||
| void leader_start(void); | void leader_start(void); | ||||||
| void leader_end(void); | void leader_end(void); | ||||||
| void qk_leader_start(void); |  | ||||||
| 
 | 
 | ||||||
| #define SEQ_ONE_KEY(key) if (leader_sequence[0] == (key) && leader_sequence[1] == 0 && leader_sequence[2] == 0 && leader_sequence[3] == 0 && leader_sequence[4] == 0) | #define SEQ_ONE_KEY(key) if (leader_sequence[0] == (key) && leader_sequence[1] == 0 && leader_sequence[2] == 0 && leader_sequence[3] == 0 && leader_sequence[4] == 0) | ||||||
| #define SEQ_TWO_KEYS(key1, key2) if (leader_sequence[0] == (key1) && leader_sequence[1] == (key2) && leader_sequence[2] == 0 && leader_sequence[3] == 0 && leader_sequence[4] == 0) | #define SEQ_TWO_KEYS(key1, key2) if (leader_sequence[0] == (key1) && leader_sequence[1] == (key2) && leader_sequence[2] == 0 && leader_sequence[3] == 0 && leader_sequence[4] == 0) | ||||||
|  | |||||||
| @ -7,9 +7,9 @@ bool onMac = true; | |||||||
| LEADER_EXTERNS(); | LEADER_EXTERNS(); | ||||||
| #    ifdef RGBLIGHT_ENABLE | #    ifdef RGBLIGHT_ENABLE | ||||||
| 
 | 
 | ||||||
| void leader_start() { rgblight_setrgb_range(5, 100, 199, 10, 15); }; | void leader_start_user() { rgblight_setrgb_range(5, 100, 199, 10, 15); }; | ||||||
| 
 | 
 | ||||||
| void leader_end() { rgblight_setrgb_range(200, 200, 255, 10, 15); }; | void leader_end_user() { rgblight_setrgb_range(200, 200, 255, 10, 15); }; | ||||||
| #    endif | #    endif | ||||||
| 
 | 
 | ||||||
| void matrix_scan_user(void) { | void matrix_scan_user(void) { | ||||||
|  | |||||||
| @ -93,7 +93,7 @@ void matrix_scan_user(void) { | |||||||
| //  matrix_scan_keymap();
 | //  matrix_scan_keymap();
 | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| void leader_start(void) { | void leader_start_user(void) { | ||||||
| #ifdef RGBLIGHT_ENABLE | #ifdef RGBLIGHT_ENABLE | ||||||
|  rgblight_savebase(); |  rgblight_savebase(); | ||||||
|  rgblight_mode_noeeprom(1); |  rgblight_mode_noeeprom(1); | ||||||
| @ -101,7 +101,7 @@ void leader_start(void) { | |||||||
| #endif | #endif | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| void leader_end(void) { | void leader_end_user(void) { | ||||||
| // pick color depending of success /fail
 | // pick color depending of success /fail
 | ||||||
| // fade leader_start from 100 to 0
 | // fade leader_start from 100 to 0
 | ||||||
| // fade new color from  0 to 100 to 0
 | // fade new color from  0 to 100 to 0
 | ||||||
|  | |||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user
	 Ryan
						Ryan