LEADERKEY support, and added combo for DELETE
This commit is contained in:
parent
854f60be2b
commit
6afdbeb7d9
|
|
@ -27,18 +27,21 @@
|
|||
enum combo_events {
|
||||
UNDO,
|
||||
REDO,
|
||||
CAPSWORD
|
||||
//CAPSWORD,
|
||||
DELETE
|
||||
};
|
||||
|
||||
const uint16_t PROGMEM undo_combo[] = {KC_Z, KC_X, COMBO_END};
|
||||
// TODO - this doesn't work at all since I tuse the KC_SLSH for mouse keys. Need to change that before I can use this.
|
||||
const uint16_t PROGMEM redo_combo[] = {KC_DOT, KC_SLSH, COMBO_END};
|
||||
const uint16_t PROGMEM capsword_combo[] = {KC_X, KC_C, COMBO_END};
|
||||
const uint16_t PROGMEM delete_combo[] = {KC_X, KC_C, COMBO_END};
|
||||
//const uint16_t PROGMEM capsword_combo[] = {KC_X, KC_C, COMBO_END};
|
||||
|
||||
combo_t key_combos[COMBO_COUNT] = {
|
||||
[UNDO] = COMBO_ACTION(undo_combo),
|
||||
[REDO] = COMBO_ACTION(redo_combo),
|
||||
[CAPSWORD] = COMBO_ACTION(capsword_combo),
|
||||
[DELETE] = COMBO_ACTION(delete_combo),
|
||||
// [CAPSWORD] = COMBO_ACTION(capsword_combo),
|
||||
};
|
||||
|
||||
void process_combo_event(uint16_t combo_index, bool pressed) {
|
||||
|
|
@ -53,12 +56,17 @@ void process_combo_event(uint16_t combo_index, bool pressed) {
|
|||
tap_code16(LCTL(KC_Y));
|
||||
}
|
||||
break;
|
||||
case CAPSWORD:
|
||||
// NOTE: if you change this behavior, may want to update in process_records.c for capsword macro behavior
|
||||
case DELETE:
|
||||
if (pressed) {
|
||||
enable_caps_word();
|
||||
tap_code16(KC_DEL);
|
||||
}
|
||||
break;
|
||||
// case CAPSWORD:
|
||||
// // NOTE: if you change this behavior, may want to update in process_records.c for capsword macro behavior
|
||||
// if (pressed) {
|
||||
// enable_caps_word();
|
||||
// }
|
||||
// break;
|
||||
}
|
||||
}
|
||||
// END COMBOS
|
||||
|
|
@ -81,7 +89,7 @@ void process_combo_event(uint16_t combo_index, bool pressed) {
|
|||
K01, K02, K03, K04, K05, K06, K07, LT(_WINNAV,K08), K09, K0A, \
|
||||
LCTL_T(K11), LGUI_T(K12), LALT_T(K13), LSFT_T(K14), K15, K16, RSFT_T(K17), RALT_T(K18), RGUI_T(K19), RCTL_T(K1A), \
|
||||
K21, K22, K23, K24, K25, K26, K27, K28, K29, LT(_MOUSE, K2A), \
|
||||
KC_DEL, LT(_NAVIGATION,KC_ENT), LT(_FUNCTION,KC_TAB), LT(_FUNCTION,KC_BSPC), LT(_SYMBOLS,KC_SPACE), KC_QUOT \
|
||||
KC_LEAD, LT(_NAVIGATION,KC_ENT), LT(_FUNCTION,KC_TAB), LT(_FUNCTION,KC_BSPC), LT(_SYMBOLS,KC_SPACE), KC_QUOT \
|
||||
)
|
||||
|
||||
/* Re-pass though to allow templates to be used */
|
||||
|
|
@ -118,7 +126,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
|||
________________SYMBOLS_L1_________________, ________________SYMBOLS_R1_________________,
|
||||
________________SYMBOLS_L2_________________, ________________SYMBOLS_R2_________________,
|
||||
________________SYMBOLS_L3_________________, ________________SYMBOLS_R3_________________,
|
||||
_______, MO(_MEDIA), KC_TAB, KC_BSPC, _______, _______
|
||||
_______, MO(_MEDIA), KC_DEL, KC_BSPC, _______, _______
|
||||
),
|
||||
|
||||
[_FUNCTION] = LAYOUT_wrapper(
|
||||
|
|
|
|||
|
|
@ -91,6 +91,9 @@
|
|||
|
||||
#define TAP_CODE_DELAY 25
|
||||
|
||||
#define LEADER_TIMEOUT 500
|
||||
#define LEADER_PER_KEY_TIMING
|
||||
|
||||
#define TAPPING_FORCE_HOLD
|
||||
#define IGNORE_MOD_TAP_INTERRUPT
|
||||
|
||||
|
|
|
|||
|
|
@ -8,9 +8,10 @@ SWAP_HANDS_ENABLE= no # Allow swapping hands of keyboard
|
|||
MOUSEKEY_ENABLE = yes
|
||||
BACKLIGHT_ENABLE = no
|
||||
NKRO_ENABLE = no
|
||||
RAW_ENABLE = yes
|
||||
RAW_ENABLE = no
|
||||
CASEMODES_ENABLE = yes
|
||||
COMBO_ENABLE = yes
|
||||
LEADER_ENABLE = yes
|
||||
|
||||
# UNCOMMENT TO DISABLE MACROS
|
||||
# EXTRAFLAGS += -flto
|
||||
|
|
|
|||
|
|
@ -3,13 +3,117 @@
|
|||
userspace_config_t userspace_config;
|
||||
bool is_caps_lock_on;
|
||||
|
||||
|
||||
void handle_caps_lock_change(void) {
|
||||
#if defined(RGBLIGHT_ENABLE) // We only do this because we want the layer color to change
|
||||
layer_state_set_user(layer_state);
|
||||
#endif // RGBLIGHT_ENABLE
|
||||
}
|
||||
|
||||
// Leader key combos - TODO move into another file?
|
||||
#if defined(LEADER_ENABLE)
|
||||
LEADER_EXTERNS();
|
||||
|
||||
void matrix_scan_leader_key(void) {
|
||||
LEADER_DICTIONARY() {
|
||||
leading = false;
|
||||
leader_end();
|
||||
|
||||
SEQ_ONE_KEY(KC_Q) {
|
||||
// Anything you can do in a macro.
|
||||
SEND_STRING("QMK is awesome.");
|
||||
}
|
||||
|
||||
// Time shortcuts
|
||||
SEQ_TWO_KEYS(KC_H, KC_SLSH) {
|
||||
SEND_STRING("1:00");
|
||||
}
|
||||
SEQ_TWO_KEYS(KC_COMM, KC_SLSH) {
|
||||
SEND_STRING("2:00");
|
||||
}
|
||||
SEQ_TWO_KEYS(KC_DOT, KC_SLSH) {
|
||||
SEND_STRING("3:00");
|
||||
}
|
||||
SEQ_TWO_KEYS(KC_N, KC_SLSH) {
|
||||
SEND_STRING("4:00");
|
||||
}
|
||||
SEQ_TWO_KEYS(KC_E, KC_SLSH) {
|
||||
SEND_STRING("5:00");
|
||||
}
|
||||
SEQ_TWO_KEYS(KC_I, KC_SLSH) {
|
||||
SEND_STRING("6:00");
|
||||
}
|
||||
SEQ_TWO_KEYS(KC_L, KC_SLSH) {
|
||||
SEND_STRING("7:00");
|
||||
}
|
||||
SEQ_TWO_KEYS(KC_U, KC_SLSH) {
|
||||
SEND_STRING("8:00");
|
||||
}
|
||||
SEQ_TWO_KEYS(KC_Y, KC_SLSH) {
|
||||
SEND_STRING("9:00");
|
||||
}
|
||||
SEQ_THREE_KEYS(KC_H, KC_SLSH, KC_SLSH) {
|
||||
SEND_STRING("10:00");
|
||||
}
|
||||
SEQ_THREE_KEYS(KC_H, KC_H, KC_SLSH) {
|
||||
SEND_STRING("11:00");
|
||||
}
|
||||
SEQ_THREE_KEYS(KC_H, KC_COMM, KC_SLSH) {
|
||||
SEND_STRING("12:00");
|
||||
}
|
||||
SEQ_TWO_KEYS(KC_H, KC_DOT) {
|
||||
SEND_STRING("1:30");
|
||||
}
|
||||
SEQ_TWO_KEYS(KC_COMM, KC_DOT) {
|
||||
SEND_STRING("2:30");
|
||||
}
|
||||
SEQ_TWO_KEYS(KC_DOT, KC_DOT) {
|
||||
SEND_STRING("3:30");
|
||||
}
|
||||
SEQ_TWO_KEYS(KC_N, KC_DOT) {
|
||||
SEND_STRING("4:30");
|
||||
}
|
||||
SEQ_TWO_KEYS(KC_E, KC_DOT) {
|
||||
SEND_STRING("5:30");
|
||||
}
|
||||
SEQ_TWO_KEYS(KC_I, KC_DOT) {
|
||||
SEND_STRING("6:30");
|
||||
}
|
||||
SEQ_TWO_KEYS(KC_L, KC_DOT) {
|
||||
SEND_STRING("7:30");
|
||||
}
|
||||
SEQ_TWO_KEYS(KC_U, KC_DOT) {
|
||||
SEND_STRING("8:30");
|
||||
}
|
||||
SEQ_TWO_KEYS(KC_Y, KC_DOT) {
|
||||
SEND_STRING("9:30");
|
||||
}
|
||||
SEQ_THREE_KEYS(KC_H, KC_SLSH, KC_DOT) {
|
||||
SEND_STRING("10:30");
|
||||
}
|
||||
SEQ_THREE_KEYS(KC_H, KC_H, KC_DOT) {
|
||||
SEND_STRING("11:30");
|
||||
}
|
||||
SEQ_THREE_KEYS(KC_H, KC_COMM, KC_DOT) {
|
||||
SEND_STRING("12:30");
|
||||
}
|
||||
|
||||
//
|
||||
SEQ_TWO_KEYS(KC_D, KC_D) {
|
||||
SEND_STRING(SS_LCTL("a") SS_LCTL("c"));
|
||||
}
|
||||
SEQ_THREE_KEYS(KC_D, KC_D, KC_S) {
|
||||
SEND_STRING("https://start.duckduckgo.com\n");
|
||||
}
|
||||
SEQ_TWO_KEYS(KC_A, KC_S) {
|
||||
register_code(KC_LGUI);
|
||||
register_code(KC_S);
|
||||
unregister_code(KC_S);
|
||||
unregister_code(KC_LGUI);
|
||||
}
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
||||
__attribute__((weak)) void keyboard_pre_init_keymap(void) {}
|
||||
|
||||
void keyboard_pre_init_user(void) {
|
||||
|
|
@ -98,6 +202,10 @@ void matrix_scan_user(void) {
|
|||
matrix_scan_rgb_matrix();
|
||||
#endif
|
||||
|
||||
#if defined(LEADER_ENABLE)
|
||||
matrix_scan_leader_key();
|
||||
#endif
|
||||
|
||||
matrix_scan_keymap();
|
||||
}
|
||||
|
||||
|
|
@ -151,3 +259,4 @@ bool hasAllBitsInMask(uint8_t value, uint8_t mask) {
|
|||
|
||||
return (value & mask) == mask;
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue