* added combos * minor adjustments, added combos * Add second encoder, add modifiers to encoders Added a skeleton for the possibily having a second encoder. Added 9 modifiers for the first rotary encoder: - None General navigation. Page up/down - SHIFT Fast navigation. Home/end - CTRL Vertical navigation. Up/down - CTRL+SHIFT Horizontal navigation. Left/right - ALT Audio volume control. - GUI Browser navigation(windows). Forward/backward - ALT+SHIFT Form navigation. Tab up/down - ALT+CTRL Media control. (Play|pause)/mute - HYPER Media navigation. Next/prev track Key codes are stored in `uint16_t encoder_actions[2][9]` * Add second encoder, add modifiers to encoders Added a skeleton for the possibily having a second encoder. Added 9 modifiers for the first rotary encoder: - None General navigation. Page up/down - SHIFT Fast navigation. Home/end - CTRL Vertical navigation. Up/down - CTRL+SHIFT Horizontal navigation. Left/right - ALT Audio volume control. - GUI Browser navigation(windows). Forward/backward - ALT+SHIFT Form navigation. Tab up/down - ALT+CTRL Media control. (Play|pause)/mute - HYPER Media navigation. Next/prev track Key codes are stored in `uint16_t encoder_actions[2][9]` * Clean up; added combos Combos: - CV: Copy - XC: Cut - ZV: Paste - QP: KC_SLEEP * Fix LEADER_DICTIONARY to be more useful * Add documentation * Minor fixes * Raise TAPPING_TERM * testing * Rearrange modifiers * Fix kc being stored in uint8 instead of uint16 * Update documentation * Clean up * Remove excess comments * Put encoder_actions in progmem
		
			
				
	
	
		
			56 lines
		
	
	
		
			2.0 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			56 lines
		
	
	
		
			2.0 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
| #include "tap_dances.h"
 | |
| void td_parenthesis (qk_tap_dance_state_t *state, void *user_data) {
 | |
|    if (state->count == 1) {
 | |
| //        SEND_STRING ("\(");
 | |
|         tap_code(KC_QUOT);
 | |
|         reset_tap_dance (state);
 | |
|    }
 | |
|    else if (state->count == 2) {
 | |
|         SEND_STRING("()" SS_TAP(X_LEFT));
 | |
|         reset_tap_dance (state);
 | |
|    }
 | |
|    else if (state->count == 3) {
 | |
|         SEND_STRING("[]" SS_TAP(X_LEFT));
 | |
|         reset_tap_dance (state);
 | |
|    }
 | |
|    else if (state->count == 4) {
 | |
|         SEND_STRING("{}" SS_TAP(X_LEFT));
 | |
|         reset_tap_dance (state);
 | |
|    }
 | |
|    else if (state->count >= 5) {
 | |
|         SEND_STRING("<>" SS_TAP(X_LEFT));
 | |
|         reset_tap_dance (state);
 | |
|    }
 | |
| }
 | |
| 
 | |
| void safe_reset(qk_tap_dance_state_t *state, void *user_data) {
 | |
|   if (state->count >= 3) {
 | |
|     // Reset the keyboard if you tap the key more than three times
 | |
|     reset_keyboard();
 | |
|     reset_tap_dance(state);
 | |
|   }
 | |
| }
 | |
| 
 | |
| qk_tap_dance_action_t tap_dance_actions[] = {
 | |
|   [TD_RESET] = ACTION_TAP_DANCE_FN(safe_reset),
 | |
|   [TD_NUM1] = ACTION_TAP_DANCE_DOUBLE(KC_1, KC_4),
 | |
|   [TD_NUM2] = ACTION_TAP_DANCE_DOUBLE(KC_2, KC_5),
 | |
|   [TD_NUM3] = ACTION_TAP_DANCE_DOUBLE(KC_3, KC_6),
 | |
|   [TD_QT1] = ACTION_TAP_DANCE_DOUBLE(KC_QUOT, MC_QT1),
 | |
|   [TD_QT2] = ACTION_TAP_DANCE_DOUBLE(LSFT(KC_QUOT), MC_QT2),
 | |
|   [TD_QT3] = ACTION_TAP_DANCE_DOUBLE(KC_GRV, MC_QT3),
 | |
|   
 | |
|   [TD_TMX] = ACTION_TAP_DANCE_DOUBLE(KC_T, TM_X),
 | |
|   [TD_EOL] = ACTION_TAP_DANCE_DOUBLE(KC_E, MC_EOL), // end of line
 | |
|   [TD_BOL] = ACTION_TAP_DANCE_DOUBLE(KC_A, MC_BOL), // beginning of line
 | |
|   [TD_NW]  = ACTION_TAP_DANCE_DOUBLE(KC_F, MC_NW),  // next word
 | |
|   [TD_PW]  = ACTION_TAP_DANCE_DOUBLE(KC_B, MC_PW),  // pevious word
 | |
|   [TD_DW]  = ACTION_TAP_DANCE_DOUBLE(KC_W, MC_DW),  // pevious word
 | |
| 
 | |
|   [TD_SPC] = ACTION_TAP_DANCE_FN(td_parenthesis),           // \(, (), [], {}, <>
 | |
|   [TD_PAR] = ACTION_TAP_DANCE_DOUBLE(KC_LPRN, MC_PAR),      // () 
 | |
|   [TD_SQR] = ACTION_TAP_DANCE_DOUBLE(KC_LBRC, MC_SQR),      // []
 | |
|   [TD_CUR] = ACTION_TAP_DANCE_DOUBLE(LSFT(KC_LCBR), MC_CUR),// {}
 | |
|   [TD_ABR] = ACTION_TAP_DANCE_DOUBLE(LSFT(KC_COMM), MC_ABR),// 
 | |
| };
 |