diff options
| -rw-r--r-- | keyboards/lets_split/keymaps/zer09/keymap.c | 24 | ||||
| -rw-r--r-- | users/zer09/config.h | 4 | ||||
| -rw-r--r-- | users/zer09/tap_dance.c | 27 | ||||
| -rw-r--r-- | users/zer09/zer09.h | 10 |
4 files changed, 57 insertions, 8 deletions
diff --git a/keyboards/lets_split/keymaps/zer09/keymap.c b/keyboards/lets_split/keymaps/zer09/keymap.c index 8d0eaf141..cb6744433 100644 --- a/keyboards/lets_split/keymaps/zer09/keymap.c +++ b/keyboards/lets_split/keymaps/zer09/keymap.c | |||
| @@ -9,8 +9,15 @@ extern keymap_config_t keymap_config; | |||
| 9 | TD(DA_UPLY), MO(_VL), KC_TAB, KC_BSPACE, KC_ESC, /**/KC_INS, KC_HOME, KC_PGUP, MO(_VL), TD(DA_UPLY), \ | 9 | TD(DA_UPLY), MO(_VL), KC_TAB, KC_BSPACE, KC_ESC, /**/KC_INS, KC_HOME, KC_PGUP, MO(_VL), TD(DA_UPLY), \ |
| 10 | TD(DA_DWLY), TD(DA_LCTL), KC_SPC, TD(DA_LSPR), LSFT_T(KC_CAPS),/**/SFT_T(KC_CAPS), TD(DA_RALT), KC_ENT, TD(DA_RCTL), TD(DA_DWLY)) | 10 | TD(DA_DWLY), TD(DA_LCTL), KC_SPC, TD(DA_LSPR), LSFT_T(KC_CAPS),/**/SFT_T(KC_CAPS), TD(DA_RALT), KC_ENT, TD(DA_RCTL), TD(DA_DWLY)) |
| 11 | 11 | ||
| 12 | #define _GMLayer LAYOUT( \ | ||
| 13 | KC_QUOTE, KC_COMMA, KC_DOT, KC_P, KC_Y, /**/KC_F, KC_G, KC_C, KC_R, KC_L, \ | ||
| 14 | KC_A, KC_O, KC_E, KC_U, KC_I, /**/KC_D, KC_H, ALT_T(KC_T), SFT_T(KC_N), CTL_T(KC_S), \ | ||
| 15 | KC_SCOLON, KC_Q, KC_J, KC_K, KC_X, /**/KC_B, KC_M, KC_W, KC_V, KC_Z, \ | ||
| 16 | TD(DA_UPLY), MO(_VL), KC_TAB, KC_BSPACE, KC_ESC, /**/KC_INS, KC_HOME, KC_PGUP, MO(_VL), TD(DA_UPLY), \ | ||
| 17 | TD(DA_DWLY), TD(DA_LCTL), KC_SPC, TD(DA_LSPR), LSFT_T(KC_CAPS),/**/SFT_T(KC_CAPS), TD(DA_RALT), KC_ENT, TD(DA_RCTL), TD(DA_DWLY)) | ||
| 18 | |||
| 12 | #define _upLayer LAYOUT( \ | 19 | #define _upLayer LAYOUT( \ |
| 13 | KC_4, KC_5, KC_6, _______, _______,/**/ _______, KC_RBRC, _______, _______, _______, \ | 20 | KC_4, KC_5, KC_6, KC_YREG, _______,/**/ _______, KC_RBRC, _______, _______, _______, \ |
| 14 | LCTL_T(KC_1), LSFT_T(KC_2), LALT_T(KC_3), _______, _______,/**/ KC_LBRC, KC_BSLS, _______, _______, _______, \ | 21 | LCTL_T(KC_1), LSFT_T(KC_2), LALT_T(KC_3), _______, _______,/**/ KC_LBRC, KC_BSLS, _______, _______, _______, \ |
| 15 | KC_7, KC_8, KC_9, KC_0, KC_GRV, /**/ KC_SLSH, _______, _______, _______, _______, \ | 22 | KC_7, KC_8, KC_9, KC_0, KC_GRV, /**/ KC_SLSH, _______, _______, _______, _______, \ |
| 16 | _______, _______, _______, _______, _______,/**/ KC_DEL, KC_END, KC_PGDN, _______, _______, \ | 23 | _______, _______, _______, _______, _______,/**/ KC_DEL, KC_END, KC_PGDN, _______, _______, \ |
| @@ -35,4 +42,17 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { | |||
| 35 | [_UL] = _upLayer, | 42 | [_UL] = _upLayer, |
| 36 | [_DL] = _downLayer, | 43 | [_DL] = _downLayer, |
| 37 | [_VL] = _upLayer, | 44 | [_VL] = _upLayer, |
| 38 | [_AL] = _astdLayer}; | 45 | [_AL] = _astdLayer, |
| 46 | [_GM] = _GMLayer}; | ||
| 47 | |||
| 48 | bool process_record_keymap(uint16_t keycode, keyrecord_t *record) { | ||
| 49 | if (record->event.pressed) { | ||
| 50 | switch (keycode) { | ||
| 51 | case YREG: | ||
| 52 | SEND_STRING("\"0p"); | ||
| 53 | return false; | ||
| 54 | } | ||
| 55 | } | ||
| 56 | |||
| 57 | return true; | ||
| 58 | } | ||
diff --git a/users/zer09/config.h b/users/zer09/config.h index 4cb65c258..c5ab32f8d 100644 --- a/users/zer09/config.h +++ b/users/zer09/config.h | |||
| @@ -16,13 +16,13 @@ | |||
| 16 | #define FORCE_NKRO | 16 | #define FORCE_NKRO |
| 17 | 17 | ||
| 18 | #ifndef TAPPING_TOGGLE | 18 | #ifndef TAPPING_TOGGLE |
| 19 | #define TAPPING_TOGGLE 1 | 19 | #define TAPPING_TOGGLE 1 |
| 20 | #endif | 20 | #endif |
| 21 | 21 | ||
| 22 | #ifdef TAPPING_TERM | 22 | #ifdef TAPPING_TERM |
| 23 | #undef TAPPING_TERM | 23 | #undef TAPPING_TERM |
| 24 | #endif | 24 | #endif |
| 25 | #define TAPPING_TERM 120 | 25 | #define TAPPING_TERM 95 |
| 26 | 26 | ||
| 27 | // Disable action_get_macro and fn_actions, since we don't use these | 27 | // Disable action_get_macro and fn_actions, since we don't use these |
| 28 | // and it saves on space in the firmware. | 28 | // and it saves on space in the firmware. |
diff --git a/users/zer09/tap_dance.c b/users/zer09/tap_dance.c index a23705ad8..e99b26cca 100644 --- a/users/zer09/tap_dance.c +++ b/users/zer09/tap_dance.c | |||
| @@ -17,15 +17,27 @@ qk_tap_dance_action_t tap_dance_actions[] = { | |||
| 17 | }; | 17 | }; |
| 18 | 18 | ||
| 19 | volatile uint8_t active_layer = _BL; | 19 | volatile uint8_t active_layer = _BL; |
| 20 | volatile uint8_t gm_layer_act = false; | ||
| 20 | static tap upltap_state = {.state = 0}; | 21 | static tap upltap_state = {.state = 0}; |
| 21 | static tap dwltap_state = {.state = 0}; | 22 | static tap dwltap_state = {.state = 0}; |
| 22 | static tap lsprtap_state = {.state = 0}; | 23 | static tap lsprtap_state = {.state = 0}; |
| 23 | static tap ralttap_state = {.state = 0}; | 24 | static tap ralttap_state = {.state = 0}; |
| 24 | 25 | ||
| 25 | void layer_switcher_tap(uint8_t new_layer) { | 26 | void layer_switcher_tap(uint8_t new_layer) { |
| 26 | layer_off(active_layer); | 27 | if (gm_layer_act == true) { |
| 27 | layer_on(new_layer); | 28 | layer_off(active_layer); |
| 28 | active_layer = new_layer; | 29 | if (new_layer == _BL) { |
| 30 | layer_on(_GM); | ||
| 31 | active_layer = _GM; | ||
| 32 | } else { | ||
| 33 | layer_on(new_layer); | ||
| 34 | active_layer = new_layer; | ||
| 35 | } | ||
| 36 | } else { | ||
| 37 | layer_off(active_layer); | ||
| 38 | layer_on(new_layer); | ||
| 39 | active_layer = new_layer; | ||
| 40 | } | ||
| 29 | } | 41 | } |
| 30 | 42 | ||
| 31 | int cur_dance(qk_tap_dance_state_t *state) { | 43 | int cur_dance(qk_tap_dance_state_t *state) { |
| @@ -162,6 +174,14 @@ void dance_dwly_finished(qk_tap_dance_state_t *state, void *user_data) { | |||
| 162 | case DOUBLE_HOLD: | 174 | case DOUBLE_HOLD: |
| 163 | layer_switcher_tap(_AL); | 175 | layer_switcher_tap(_AL); |
| 164 | break; | 176 | break; |
| 177 | case TRIPLE_TAP: | ||
| 178 | if (gm_layer_act == true) { | ||
| 179 | gm_layer_act = false; | ||
| 180 | layer_switcher_tap(_BL); | ||
| 181 | } else { | ||
| 182 | gm_layer_act = true; | ||
| 183 | layer_switcher_tap(_GM); | ||
| 184 | } | ||
| 165 | default: | 185 | default: |
| 166 | layer_switcher_tap(_BL); | 186 | layer_switcher_tap(_BL); |
| 167 | break; | 187 | break; |
| @@ -174,6 +194,7 @@ void dance_dwly_reset(qk_tap_dance_state_t *state, void *user_data) { | |||
| 174 | break; | 194 | break; |
| 175 | case SINGLE_HOLD: | 195 | case SINGLE_HOLD: |
| 176 | case DOUBLE_HOLD: | 196 | case DOUBLE_HOLD: |
| 197 | case TRIPLE_TAP: | ||
| 177 | default: | 198 | default: |
| 178 | layer_switcher_tap(_BL); | 199 | layer_switcher_tap(_BL); |
| 179 | break; | 200 | break; |
diff --git a/users/zer09/zer09.h b/users/zer09/zer09.h index 75c1d3cad..acac8ab09 100644 --- a/users/zer09/zer09.h +++ b/users/zer09/zer09.h | |||
| @@ -3,16 +3,24 @@ | |||
| 3 | 3 | ||
| 4 | #include "quantum.h" | 4 | #include "quantum.h" |
| 5 | 5 | ||
| 6 | enum custom_keycodes { CK_SAFE = SAFE_RANGE, RGUP, RGDWN, NEWPLACEHOLDER }; | 6 | enum custom_keycodes { |
| 7 | CK_SAFE = SAFE_RANGE, | ||
| 8 | RGUP, | ||
| 9 | RGDWN, | ||
| 10 | YREG, | ||
| 11 | NEW_SAFE_RANGE | ||
| 12 | }; | ||
| 7 | 13 | ||
| 8 | #define _______ KC_TRNS | 14 | #define _______ KC_TRNS |
| 9 | #define KC_RGUP RGUP | 15 | #define KC_RGUP RGUP |
| 10 | #define KC_RGDWN RGDWN | 16 | #define KC_RGDWN RGDWN |
| 17 | #define KC_YREG YREG | ||
| 11 | 18 | ||
| 12 | #define _BL 0 // The base layer | 19 | #define _BL 0 // The base layer |
| 13 | #define _UL 1 // The up layer | 20 | #define _UL 1 // The up layer |
| 14 | #define _DL 2 // The down layer | 21 | #define _DL 2 // The down layer |
| 15 | #define _VL 3 // The shifted up layer | 22 | #define _VL 3 // The shifted up layer |
| 16 | #define _AL 4 // The assorted layer | 23 | #define _AL 4 // The assorted layer |
| 24 | #define _GM 5 | ||
| 17 | 25 | ||
| 18 | #endif | 26 | #endif |
