qmk-dactyl-manuform-a/users/kuchosauronad0/leader.c

78 lines
1.7 KiB
C

#include "leader.h"
LEADER_EXTERNS();
void matrix_scan_user(void){
static bool has_ran_yet;
if (!has_ran_yet) {
has_ran_yet = true;
startup_user();
}
#ifdef TAP_DANCE_ENABLE // Run Diablo 3 macro checking code.
// run_diablo_macro_check();
#endif // TAP_DANCE_ENABLE
#ifdef RGBLIGHT_ENABLE
matrix_scan_rgb();
#endif // RGBLIGHT_ENABLE
LEADER_DICTIONARY() {
leading = false;
leader_end();
SEQ_ONE_KEY(KC_W) {
// vim/tmux: Use in command mode in vim: write to file, switch tmux pane in the current session window and repeat the last command
SEND_STRING(":w" SS_TAP(X_ENTER));
tmux_pane_switch_repeat();
}
SEQ_ONE_KEY(KC_T) {
// Send the Tmux Prefix
tmux_prefix();
}
SEQ_ONE_KEY(KC_A) {
// tmux: Send the prefix and press 'right' arrow
tmux_prefix();
tap_code(KC_RIGHT);
}
SEQ_TWO_KEYS(KC_T, KC_T) {
// tmux: Send the prefix to a nested session
tmux_prefix();
tmux_prefix();
}
SEQ_TWO_KEYS(KC_T, KC_R) {
// tmux: Switch pane and repeat last action
tmux_pane_switch_repeat();
}
SEQ_TWO_KEYS(KC_V, KC_Z){
// vim: Zoom pane
tap_code16(LCTL(KC_W));
tap_code16(LSFT(KC_BSLS));
}
SEQ_TWO_KEYS(KC_V, KC_R) {
// vim: Substitute and place cursor
SEND_STRING(":%s///g" SS_TAP(X_LEFT));
tap_code(KC_LEFT);
tap_code(KC_LEFT);
}
SEQ_TWO_KEYS(KC_V, KC_T) {
// vim: move current pane to new tab
tap_code16(LCTL(KC_W));
tap_code16(LSFT(KC_T));
}
SEQ_THREE_KEYS(KC_BSPC, KC_BSPC, KC_BSPC){
// Reset the keyboard
reset_keyboard();
}
}
matrix_scan_keymap();
}