diff --git a/colemak_dh_modified/corne/config.h b/colemak_dh_modified/corne/config.h index 2ee0ac8..b24b2e6 100644 --- a/colemak_dh_modified/corne/config.h +++ b/colemak_dh_modified/corne/config.h @@ -26,3 +26,4 @@ along with this program. If not, see . #define NO_AUTO_SHIFT_SYMBOLS #define RETRO_SHIFT 500 #define PERMISSIVE_HOLD +#define DYNAMIC_MACRO_NO_NESTING diff --git a/colemak_dh_modified/corne/keymap.c b/colemak_dh_modified/corne/keymap.c index 7ef7463..2b81334 100644 --- a/colemak_dh_modified/corne/keymap.c +++ b/colemak_dh_modified/corne/keymap.c @@ -2,6 +2,20 @@ enum custom_keycodes { CTL_SPC = SAFE_RANGE, + LS, + NVIM, + VI, + RM, + GREP, + DOAS, + TMUX, + TMUX_C, + TMUX_N, + TMUX_S, + TMUX_X, + TMUX_SERVER, + SHIFT_COPY, + SHIFT_PASTE }; bool get_custom_auto_shifted_key(uint16_t keycode, keyrecord_t *record) { @@ -25,6 +39,92 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { } } return false; + case LS: + if (record->event.pressed) { + SEND_STRING("ls -la\n"); + } + return false; + case RM: + if (record->event.pressed) { + SEND_STRING("rm -rfi "); + } + return false; + case VI: + if (record->event.pressed) { + SEND_STRING("vi "); + } + return false; + case DOAS: + if (record->event.pressed) { + SEND_STRING("doas "); + } + return false; + case GREP: + if (record->event.pressed) { + SEND_STRING("grep -r "); + } + return false; + case TMUX: + if (record->event.pressed) { + SEND_STRING("tmux attach -t \t\t"); + } + return false; + case TMUX_C: + if (record->event.pressed) { + register_code(KC_LCTL); + SEND_STRING(" "); + unregister_code(KC_LCTL); + SEND_STRING("c\n"); + } + return false; + case TMUX_X: + if (record->event.pressed) { + register_code(KC_LCTL); + SEND_STRING(" "); + unregister_code(KC_LCTL); + SEND_STRING("xy"); + } + return false; + case TMUX_N: + if (record->event.pressed) { + register_code(KC_LCTL); + SEND_STRING(" "); + unregister_code(KC_LCTL); + SEND_STRING("n\n"); + } + return false; + case TMUX_S: + if (record->event.pressed) { + register_code(KC_LCTL); + SEND_STRING(" "); + unregister_code(KC_LCTL); + SEND_STRING("S\n"); + } + return false; + case TMUX_SERVER: + if (record->event.pressed) { + register_code(KC_LCTL); + SEND_STRING("a"); + unregister_code(KC_LCTL); + } + return false; + case SHIFT_COPY: + if (record->event.pressed) { + register_code(KC_LCTL); + register_code(KC_LSFT); + SEND_STRING("c"); + unregister_code(KC_LSFT); + unregister_code(KC_LCTL); + } + case SHIFT_PASTE: + if (record->event.pressed) { + register_code(KC_LCTL); + register_code(KC_LSFT); + SEND_STRING("v"); + unregister_code(KC_LSFT); + unregister_code(KC_LCTL); + } + return false; } return true; } @@ -41,7 +141,9 @@ uint16_t get_tapping_term(uint16_t keycode, keyrecord_t *record) { case LT(2, KC_E): case LT(4, KC_I): case MT(MOD_RSFT, KC_O): - return TAPPING_TERM + 75; + case MT(MOD_RCTL, KC_H): + case MT(MOD_LCTL, KC_D): + return TAPPING_TERM + 65; default: return TAPPING_TERM; } @@ -49,38 +151,44 @@ uint16_t get_tapping_term(uint16_t keycode, keyrecord_t *record) { const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [0] = LAYOUT_split_3x6_3( - LALT_T(KC_TAB), MT(MOD_LALT,KC_Q), KC_W, KC_F, KC_P, KC_B, KC_J, KC_L, KC_U, KC_Y, MT(MOD_RALT,KC_SCLN), KC_BSPC, + LALT_T(KC_TAB), MT(MOD_LALT,KC_Q), KC_W, KC_F, KC_P, KC_B, KC_J, KC_L, KC_U, KC_Y, MT(MOD_RALT,KC_SCLN), KC_BSPC, LCTL_T(KC_ESC), MT(MOD_LSFT,KC_A), LT(4,KC_R), LT(2,KC_S), LT(1,KC_T), LT(3,KC_G), LT(3,KC_M), LT(1,KC_N), LT(2,KC_E), LT(4,KC_I), MT(MOD_RSFT,KC_O), RCTL_T(KC_QUOT), - SC_LSPO, KC_Z, KC_X, KC_C, KC_D, KC_V, KC_K, KC_H, KC_COMM, KC_DOT, KC_SLSH, SC_RSPC, - KC_BSPC, KC_SPC, CTL_SPC, RALT_T(KC_TAB), KC_ENT, KC_BSPC + SC_LSPO, KC_Z, KC_X, LT(5,KC_C), MT(MOD_LCTL, KC_D), KC_V, KC_K, MT(MOD_RCTL, KC_H), LT(5,KC_COMM), KC_DOT, KC_SLSH, SC_RSPC, + DM_REC1, KC_SPC, CTL_SPC, RALT_T(KC_TAB), KC_ENT, DM_PLY1 ), [1] = LAYOUT_split_3x6_3( - LALT_T(KC_TAB), KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_BSPC, + LALT_T(KC_TAB), KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_DEL, LCTL_T(KC_ESC), KC_NO, KC_AMPR, KC_ASTR, KC_CIRC, CW_TOGG, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS, KC_GRV, KC_LSFT, KC_NO, KC_NO, KC_NO, C(KC_L), KC_NO, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE, KC_TILD, - TO(0), KC_SPC, CTL_SPC, RALT_T(KC_TAB), LT(3,KC_ENT), TO(1) + DM_REC1, KC_SPC, CTL_SPC, RALT_T(KC_TAB), LT(3,KC_ENT), DM_PLY1 ), [2] = LAYOUT_split_3x6_3( - LALT_T(KC_TAB), KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_CIRC, KC_7, KC_8, KC_9, KC_0, KC_BSPC, - LCTL_T(KC_ESC), KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_COMM, KC_4, KC_5, KC_6, KC_MINS, KC_EQL, SC_LSPO, - KC_NO, KC_NO, KC_DEL, KC_F11, KC_F12, KC_DOT, KC_1, KC_2, KC_3, KC_SLSH, KC_ASTR, - TO(0), KC_SPC, CTL_SPC, KC_RSFT, LT(3,KC_ENT), TO(2) + LALT_T(KC_TAB), KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_CIRC, KC_7, KC_8, KC_9, KC_0, KC_BSPC, + LCTL_T(KC_ESC), KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_COMM, KC_4, KC_5, KC_6, KC_MINS, KC_EQL, + SC_LSPO, KC_NO, KC_NO, KC_DEL, KC_F11, KC_F12, KC_DOT, KC_1, KC_2, KC_3, KC_SLSH, KC_ASTR, + DM_REC1, KC_SPC, CTL_SPC, KC_RSFT, LT(3,KC_ENT), DM_PLY1 ), [3] = LAYOUT_split_3x6_3( KC_MUTE, KC_MPRV, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY, KC_MS_D, KC_MS_R, KC_WH_R, KC_NO, KC_NO, KC_ACL0, LCTL_T(KC_ESC), KC_NO, KC_NO, KC_BTN3, KC_BTN1, KC_BTN2, KC_NO, KC_WH_U, KC_WH_D, KC_NO, OSL(4), KC_ACL1, KC_LSFT, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_MS_U, KC_MS_L, KC_WH_L, KC_NO, KC_NO, KC_ACL2, - TO(0), KC_SPC, CTL_SPC, KC_NO, KC_NO, TO(3) + DM_REC1, KC_SPC, CTL_SPC, KC_NO, KC_NO, DM_PLY1 ), [4] = LAYOUT_split_3x6_3( - RGB_TOG, RGB_M_B, RGB_M_P, RGB_VAD, RGB_VAI, KC_NO, KC_DOWN, KC_RGHT, KC_PGUP, KC_HOME, AS_TOGG, TO(0), + RGB_TOG, RGB_M_B, RGB_M_P, RGB_VAD, RGB_VAI, KC_NO, KC_DOWN, KC_RGHT, KC_PGUP, KC_HOME, AS_TOGG, KC_BSPC, LCTL_T(KC_ESC), RGB_M_R, RGB_M_SW, RGB_HUD, RGB_HUI, RGB_M_TW, KC_NO, KC_NO, KC_NO, KC_NO, KC_PSCR, RCTL_T(KC_QUOT), - KC_LSFT, RGB_M_G, KC_NO, RGB_SAD, RGB_SAI, KC_NO, KC_UP, KC_LEFT, KC_PGDN, KC_END, KC_NO, KC_NO, - TO(0), KC_SPC, CTL_SPC, KC_LGUI, KC_ENT, TO(4) + KC_LSFT, RGB_M_G, RGB_SAD, RGB_SAI, KC_LCTL, KC_NO, KC_UP, KC_LEFT, KC_PGDN, KC_END, KC_NO, KC_NO, + DM_REC1, KC_SPC, CTL_SPC, KC_LGUI, KC_ENT, DM_PLY1 + ), + [5] = LAYOUT_split_3x6_3( + KC_NO, KC_NO, KC_NO, KC_NO, SHIFT_PASTE, KC_NO, KC_NO, LS, KC_NO, KC_NO, SHIFT_COPY, KC_NO, + KC_NO, TMUX_SERVER, RM, TMUX_S, TMUX, GREP, KC_NO, TMUX_N, KC_NO, KC_NO, KC_NO, KC_NO, + KC_NO, KC_NO, TMUX_X, TMUX_C, DOAS, VI, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, + DM_REC1, KC_SPC, CTL_SPC, RALT_T(KC_TAB), LT(3,KC_ENT), DM_PLY1 ), }; diff --git a/colemak_dh_modified/corne/rules.mk b/colemak_dh_modified/corne/rules.mk index 79abbac..0431491 100644 --- a/colemak_dh_modified/corne/rules.mk +++ b/colemak_dh_modified/corne/rules.mk @@ -23,3 +23,5 @@ UNICODE_ENABLE = yes NKRO_ENABLE = yes AUTO_SHIFT_ENABLE = yes CAPS_WORD_ENABLE = yes +DYNAMIC_MACRO_ENABLE = yes +SEND_STRING_ENABLE = yes