aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorroguepullrequest <roguepullrequest@users.noreply.github.com>2019-04-17 20:39:50 -0500
committerDrashna Jaelre <drashna@live.com>2019-04-17 18:39:50 -0700
commit8bdbac14a36f8da5da3175006cff5eb3a3d60c1d (patch)
tree29791647ce5c18e34564f3fc249b9c196528c968
parent01f4b67ef03e0fe403ae6a17defe23bed6ec6e55 (diff)
downloadqmk_firmware-8bdbac14a36f8da5da3175006cff5eb3a3d60c1d.tar.gz
qmk_firmware-8bdbac14a36f8da5da3175006cff5eb3a3d60c1d.zip
[Keymap] Roguepullrequest Planck layout update (#5640)
* First publish of roguepullreqest programmer dvorak planck layout * Removed junk line * Update keyboards/planck/keymaps/roguepullrequest/keymap.c Co-Authored-By: roguepullrequest <roguepullrequest@users.noreply.github.com> * Update keyboards/planck/keymaps/roguepullrequest/keymap.c Co-Authored-By: roguepullrequest <roguepullrequest@users.noreply.github.com> * Update keyboards/planck/keymaps/roguepullrequest/keymap.c Co-Authored-By: roguepullrequest <roguepullrequest@users.noreply.github.com> * Update keyboards/planck/keymaps/roguepullrequest/keymap.c Co-Authored-By: roguepullrequest <roguepullrequest@users.noreply.github.com> * Removed layer songs Removed layer songs for cleanliness. Will use them later. * Update keyboards/planck/keymaps/roguepullrequest/readme.md Co-Authored-By: roguepullrequest <roguepullrequest@users.noreply.github.com> * Made basic LSHIFT framework but is not working. Listed other tapdances. * Got LSHIFT to work * Added working RSHIFT * Added working TD_S * Cleaned up LEFT and RIGHT [ { ] } on the UPPER layer. * Cleaned up layout. * Reenabled audio space is not needed right now.
-rw-r--r--keyboards/planck/keymaps/roguepullrequest/keymap.c87
1 files changed, 77 insertions, 10 deletions
diff --git a/keyboards/planck/keymaps/roguepullrequest/keymap.c b/keyboards/planck/keymaps/roguepullrequest/keymap.c
index 64d9cfb2b..51c740dc4 100644
--- a/keyboards/planck/keymaps/roguepullrequest/keymap.c
+++ b/keyboards/planck/keymaps/roguepullrequest/keymap.c
@@ -24,14 +24,18 @@ enum {
24// Tap dance enums 24// Tap dance enums
25enum { 25enum {
26 X_AT_FUN = 0, 26 X_AT_FUN = 0,
27 SH_M_LPAREN, 27 RSHIFT,
28 SH_M_RPAREN 28 LSHIFT,
29 TD_S
29}; 30};
30 31
31int cur_dance (qk_tap_dance_state_t *state); 32int cur_dance (qk_tap_dance_state_t *state);
32 33
33void x_finished (qk_tap_dance_state_t *state, void *user_data); 34void x_finished (qk_tap_dance_state_t *state, void *user_data);
34void x_reset (qk_tap_dance_state_t *state, void *user_data); 35void x_reset (qk_tap_dance_state_t *state, void *user_data);
36void lshift_finished (qk_tap_dance_state_t *state, void *user_data);
37void lshift_reset(qk_tap_dance_state_t *state, void *user_data);
38
35 39
36bool is_alt_tab_active = false; 40bool is_alt_tab_active = false;
37uint16_t alt_tab_timer = 0; 41uint16_t alt_tab_timer = 0;
@@ -102,17 +106,18 @@ void matrix_scan_user(void) {
102 106
103const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { 107const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
104 108
105/* Programmer Dvorak */ 109
110 /* Programmer Dvorak */
106 [_PDVORAK] = LAYOUT_planck_grid( 111 [_PDVORAK] = LAYOUT_planck_grid(
107 KC_GESC, KC_SCOLON, KC_COMMA, KC_DOT, KC_P, KC_Y, KC_F, KC_G, KC_C, KC_R, KC_L, KC_BSPC, 112 KC_GESC, KC_SCOLON, KC_COMMA, KC_DOT, KC_P, KC_Y, KC_F, KC_G, KC_C, KC_R, KC_L, KC_BSPC,
108 KC_LAST, KC_A, KC_O, KC_E, KC_U, KC_I, KC_D, KC_H, KC_T, KC_N, KC_S, KC_SLASH, 113 KC_LAST, KC_A, KC_O, KC_E, KC_U, KC_I, KC_D, KC_H, KC_T, KC_N, TD(TD_S), KC_SLASH,
109 KC_LSPO, KC_QUOT, KC_Q, KC_J, KC_K, KC_X, KC_B, KC_M, KC_W, KC_V, KC_Z, KC_RSPC, 114 TD(LSHIFT), KC_QUOT, KC_Q, KC_J, KC_K, KC_X, KC_B, KC_M, KC_W, KC_V, KC_Z, TD(RSHIFT),
110 TD(X_AT_FUN), KC_LEFT, KC_DOWN, KC_UP, KC_RIGHT, ALT_TAB, KC_SPACE, KC_ENTER, MT(MOD_LCTL | MOD_LSFT, KC_LGUI), KC_PGUP, KC_PGDN, LT(_LOWER, KC_PLUS) 115 TD(X_AT_FUN), KC_LEFT, KC_DOWN, KC_UP, KC_RIGHT, ALT_TAB, KC_SPACE, KC_ENTER, MT(MOD_LCTL | MOD_LSFT, KC_LGUI), KC_PGUP, KC_PGDN, LT(_LOWER, KC_PLUS)
111 ), 116 ),
112 117
113 [_UPPER] = LAYOUT_planck_grid( 118 [_UPPER] = LAYOUT_planck_grid(
114 KC_GRAVE, KC_AMPR, KC_PERC, KC_LBRC, KC_LCBR, KC_EQL, KC_ASTR, KC_RCBR, KC_RBRC, KC_EXLM, KC_HASH, KC_TRNS, 119 KC_GRAVE, KC_AMPR, KC_PERC, KC_NO, KC_NO, KC_EQL, KC_ASTR, KC_NO, KC_NO, KC_EXLM, KC_HASH, KC_TRNS,
115 KC_PLUS, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_MINUS, KC_BSLASH, 120 KC_PLUS, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_BSLASH,
116 KC_TRNS, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, 121 KC_TRNS, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO,
117 KC_TRNS, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_TRNS 122 KC_TRNS, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_TRNS
118 ), 123 ),
@@ -145,6 +150,10 @@ int cur_dance (qk_tap_dance_state_t *state) {
145 if (state->interrupted || !state->pressed) return DOUBLE_TAP; 150 if (state->interrupted || !state->pressed) return DOUBLE_TAP;
146 else return DOUBLE_HOLD; 151 else return DOUBLE_HOLD;
147 } 152 }
153 else if (state->count == 3) {
154 if (state->interrupted || !state->pressed)return TRIPLE_TAP;
155 else return TRIPLE_HOLD;
156 }
148 else return 8; // magic number that i dont believe works. 157 else return 8; // magic number that i dont believe works.
149} 158}
150 159
@@ -164,6 +173,35 @@ void x_finished (qk_tap_dance_state_t *state, void *user_data) {
164 case DOUBLE_HOLD: reset_keyboard(); break; 173 case DOUBLE_HOLD: reset_keyboard(); break;
165 } 174 }
166} 175}
176
177void lshift_finished (qk_tap_dance_state_t *state, void *user_data) {
178 xtap_state.state = cur_dance(state);
179 switch (xtap_state.state) {
180 case SINGLE_TAP: register_code16(KC_LSFT); register_code16(KC_9); break;
181 case SINGLE_HOLD: register_code16(KC_LSFT); break;
182 case DOUBLE_TAP: register_code16(KC_LBRC); break;
183 case TRIPLE_TAP: register_code16(KC_LSFT); register_code16(KC_LBRC); break;
184 }
185}
186void s_finished (qk_tap_dance_state_t *state, void *user_data) {
187 xtap_state.state = cur_dance(state);
188 switch (xtap_state.state) {
189 case SINGLE_TAP: register_code16(KC_S); break;
190 case DOUBLE_TAP: register_code16(KC_MINUS); break;
191 case TRIPLE_TAP: register_code16(KC_LSFT); register_code16(KC_MINUS); break;
192 }
193}
194
195void rshift_finished (qk_tap_dance_state_t *state, void *user_data) {
196 xtap_state.state = cur_dance(state);
197 switch (xtap_state.state) {
198 case SINGLE_TAP: register_code16(KC_LSFT); register_code16(KC_0); break;
199 case SINGLE_HOLD: register_code16(KC_RSFT); break;
200 case DOUBLE_TAP: register_code16(KC_RBRC); break;
201 case TRIPLE_TAP: register_code16(KC_LSFT); register_code16(KC_RBRC); break;
202 }
203}
204
167// forgetting keypresses 205// forgetting keypresses
168 206
169void x_reset (qk_tap_dance_state_t *state, void *user_data) { 207void x_reset (qk_tap_dance_state_t *state, void *user_data) {
@@ -175,9 +213,38 @@ void x_reset (qk_tap_dance_state_t *state, void *user_data) {
175 } 213 }
176 xtap_state.state = 0; 214 xtap_state.state = 0;
177} 215}
216void lshift_reset (qk_tap_dance_state_t *state, void *user_data) {
217 switch (xtap_state.state) {
218 case SINGLE_TAP: unregister_code16(KC_9); unregister_code16(KC_LSFT); break;
219 case SINGLE_HOLD: unregister_code16(KC_LSFT); break;
220 case DOUBLE_TAP: unregister_code16(KC_LBRC); break;
221 case TRIPLE_TAP: unregister_code16(KC_LBRC); unregister_code16(KC_LSFT); break;
222 }
223 xtap_state.state = 0;
224}
178 225
226void rshift_reset (qk_tap_dance_state_t *state, void *user_data) {
227 switch (xtap_state.state) {
228 case SINGLE_TAP: unregister_code16(KC_0); unregister_code16(KC_LSFT); break;
229 case SINGLE_HOLD: unregister_code16(KC_RSFT); break;
230 case DOUBLE_TAP: unregister_code16(KC_RBRC); break;
231 case TRIPLE_TAP: unregister_code16(KC_RBRC); unregister_code16(KC_LSFT); break;
232 }
233 xtap_state.state = 0;
234}
235void s_reset (qk_tap_dance_state_t *state, void *user_data) {
236 switch (xtap_state.state) {
237 case SINGLE_TAP: unregister_code16(KC_S); break;
238 case DOUBLE_TAP: unregister_code16(KC_MINUS); break;
239 case TRIPLE_TAP: unregister_code16(KC_MINUS); unregister_code16(KC_LSFT); break;
240 }
241 xtap_state.state = 0;
242}
179qk_tap_dance_action_t tap_dance_actions[] = { 243qk_tap_dance_action_t tap_dance_actions[] = {
180 [X_AT_FUN] = ACTION_TAP_DANCE_FN_ADVANCED(NULL, x_finished, x_reset) 244 [X_AT_FUN] = ACTION_TAP_DANCE_FN_ADVANCED(NULL, x_finished, x_reset),
245 [LSHIFT] = ACTION_TAP_DANCE_FN_ADVANCED(NULL, lshift_finished, lshift_reset),
246 [RSHIFT] = ACTION_TAP_DANCE_FN_ADVANCED(NULL, rshift_finished, rshift_reset),
247 [TD_S] = ACTION_TAP_DANCE_FN_ADVANCED(NULL, s_finished, s_reset),
181}; 248};
182 249
183void shutdown_user(void) { clear_keyboard(); } 250void shutdown_user(void) { clear_keyboard(); }