aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--keyboards/lets_split/keymaps/zer09/keymap.c24
-rw-r--r--users/zer09/config.h4
-rw-r--r--users/zer09/tap_dance.c27
-rw-r--r--users/zer09/zer09.h10
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
48bool 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
19volatile uint8_t active_layer = _BL; 19volatile uint8_t active_layer = _BL;
20volatile uint8_t gm_layer_act = false;
20static tap upltap_state = {.state = 0}; 21static tap upltap_state = {.state = 0};
21static tap dwltap_state = {.state = 0}; 22static tap dwltap_state = {.state = 0};
22static tap lsprtap_state = {.state = 0}; 23static tap lsprtap_state = {.state = 0};
23static tap ralttap_state = {.state = 0}; 24static tap ralttap_state = {.state = 0};
24 25
25void layer_switcher_tap(uint8_t new_layer) { 26void 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
31int cur_dance(qk_tap_dance_state_t *state) { 43int 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
6enum custom_keycodes { CK_SAFE = SAFE_RANGE, RGUP, RGDWN, NEWPLACEHOLDER }; 6enum 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