aboutsummaryrefslogtreecommitdiff
path: root/keyboards/planck/keymaps/circuit/keymap.c
diff options
context:
space:
mode:
Diffstat (limited to 'keyboards/planck/keymaps/circuit/keymap.c')
-rw-r--r--keyboards/planck/keymaps/circuit/keymap.c165
1 files changed, 83 insertions, 82 deletions
diff --git a/keyboards/planck/keymaps/circuit/keymap.c b/keyboards/planck/keymaps/circuit/keymap.c
index 3e94fe1f4..35f41c387 100644
--- a/keyboards/planck/keymaps/circuit/keymap.c
+++ b/keyboards/planck/keymaps/circuit/keymap.c
@@ -1,5 +1,6 @@
1// Layout picture at http://www.keyboard-layout-editor.com/#/gists/125febfad6960add078e6f14256539b6 1// Layout picture at http://www.keyboard-layout-editor.com/#/gists/125febfad6960add078e6f14256539b6
2 2
3#pragma message "You may need to add LAYOUT_planck_grid to your keymap layers - see default for an example"
3#include "planck.h" 4#include "planck.h"
4#include "action_layer.h" 5#include "action_layer.h"
5#ifdef AUDIO_ENABLE 6#ifdef AUDIO_ENABLE
@@ -21,21 +22,21 @@ extern keymap_config_t keymap_config;
21#define _FUNCTN 5 22#define _FUNCTN 5
22 23
23enum planck_keycodes { 24enum planck_keycodes {
24 QWERTY = SAFE_RANGE, 25 QWERTY = SAFE_RANGE,
25 DVORAK, 26 DVORAK,
26 NUMBER, 27 NUMBER,
27 ACTION 28 ACTION
28}; 29};
29 30
30// Key code names 31// Key code names
31#define SFT_ENT FUNC(0) // Tap for enter, hold for right shift 32#define SFT_ENT FUNC(0) // Tap for enter, hold for right shift
32#define LOCK FUNC(1) 33#define LOCK FUNC(1)
33#define KC_PSTE KC_PASTE 34#define KC_PSTE KC_PASTE
34#define _______ KC_TRNS 35#define _______ KC_TRNS
35#define XXXXXXX KC_NO 36#define XXXXXXX KC_NO
36 37
37#ifdef TAP_DANCE_ENABLE 38#ifdef TAP_DANCE_ENABLE
38#define SFT_CAP TD(0) // Left shift, double tap for caps 39#define SFT_CAP TD(0) // Left shift, double tap for caps
39#endif 40#endif
40#ifndef TAP_DANCE_ENABLE 41#ifndef TAP_DANCE_ENABLE
41#define SFT_CAP KC_LSFT // Regular left shift 42#define SFT_CAP KC_LSFT // Regular left shift
@@ -44,14 +45,14 @@ enum planck_keycodes {
44// Tap Dance Definitions 45// Tap Dance Definitions
45#ifdef TAP_DANCE_ENABLE 46#ifdef TAP_DANCE_ENABLE
46qk_tap_dance_action_t tap_dance_actions[] = { 47qk_tap_dance_action_t tap_dance_actions[] = {
47 [0] = ACTION_TAP_DANCE_DOUBLE(KC_LSFT, KC_CAPS) 48 [0] = ACTION_TAP_DANCE_DOUBLE(KC_LSFT, KC_CAPS)
48}; 49};
49#endif 50#endif
50 51
51// Function definitions 52// Function definitions
52const uint16_t PROGMEM fn_actions[] = { 53const uint16_t PROGMEM fn_actions[] = {
53 [0] = ACTION_MODS_TAP_KEY(MOD_RSFT, KC_ENT), 54 [0] = ACTION_MODS_TAP_KEY(MOD_RSFT, KC_ENT),
54 [1] = ACTION_LAYER_TOGGLE(_LOCKED) 55 [1] = ACTION_LAYER_TOGGLE(_LOCKED)
55}; 56};
56 57
57// Layout definitions 58// Layout definitions
@@ -69,10 +70,10 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
69 * `-----------------------------------------------------------------------------------' 70 * `-----------------------------------------------------------------------------------'
70 */ 71 */
71[_QWERTY] = { 72[_QWERTY] = {
72 {KC_ESC, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC}, 73 {KC_ESC, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC},
73 {KC_TAB, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT}, 74 {KC_TAB, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT},
74 {SFT_CAP, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_UP, SFT_ENT}, 75 {SFT_CAP, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_UP, SFT_ENT},
75 {KC_LCTL, KC_LALT, KC_LGUI, KC_VOLD, ACTION, KC_SPC, KC_SPC, NUMBER, KC_VOLU, KC_LEFT, KC_DOWN, KC_RGHT} 76 {KC_LCTL, KC_LALT, KC_LGUI, KC_VOLD, ACTION, KC_SPC, KC_SPC, NUMBER, KC_VOLU, KC_LEFT, KC_DOWN, KC_RGHT}
76}, 77},
77 78
78/* DVORAK 79/* DVORAK
@@ -87,10 +88,10 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
87 * `-----------------------------------------------------------------------------------' 88 * `-----------------------------------------------------------------------------------'
88 */ 89 */
89[_DVORAK] = { 90[_DVORAK] = {
90 {_______, KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y, KC_F, KC_G, KC_C, KC_R, KC_L, _______}, 91 {_______, KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y, KC_F, KC_G, KC_C, KC_R, KC_L, _______},
91 {_______, KC_A, KC_O, KC_E, KC_U, KC_I, KC_D, KC_H, KC_T, KC_N, KC_S, KC_Z }, 92 {_______, KC_A, KC_O, KC_E, KC_U, KC_I, KC_D, KC_H, KC_T, KC_N, KC_S, KC_Z },
92 {_______, KC_SCLN, KC_Q, KC_J, KC_K, KC_X, KC_B, KC_M, KC_W, KC_V, _______, _______}, 93 {_______, KC_SCLN, KC_Q, KC_J, KC_K, KC_X, KC_B, KC_M, KC_W, KC_V, _______, _______},
93 {_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______} 94 {_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______}
94}, 95},
95 96
96/* LOCK 97/* LOCK
@@ -105,10 +106,10 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
105 * `-----------------------------------------------------------------------------------' 106 * `-----------------------------------------------------------------------------------'
106 */ 107 */
107[_LOCKED] = { 108[_LOCKED] = {
108 {_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______}, 109 {_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______},
109 {_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______}, 110 {_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______},
110 {KC_LSFT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______}, 111 {KC_LSFT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______},
111 {_______, _______, XXXXXXX, _______, _______, _______, _______, _______, _______, _______, _______, _______} 112 {_______, _______, XXXXXXX, _______, _______, _______, _______, _______, _______, _______, _______, _______}
112}, 113},
113 114
114/* NUMBERS 115/* NUMBERS
@@ -123,10 +124,10 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
123 * `-----------------------------------------------------------------------------------' 124 * `-----------------------------------------------------------------------------------'
124 */ 125 */
125[_NUMBER] = { 126[_NUMBER] = {
126 {_______, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, _______}, 127 {_______, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, _______},
127 {_______, KC_TILD, XXXXXXX, XXXXXXX, XXXXXXX, KC_PIPE, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_QUES, KC_SLSH}, 128 {_______, KC_TILD, XXXXXXX, XXXXXXX, XXXXXXX, KC_PIPE, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_QUES, KC_SLSH},
128 {_______, KC_GRV, XXXXXXX, XXXXXXX, XXXXXXX, KC_BSLS, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, _______, _______}, 129 {_______, KC_GRV, XXXXXXX, XXXXXXX, XXXXXXX, KC_BSLS, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, _______, _______},
129 {_______, _______, _______, _______, _______, XXXXXXX, XXXXXXX, _______, _______, _______, _______, _______} 130 {_______, _______, _______, _______, _______, XXXXXXX, XXXXXXX, _______, _______, _______, _______, _______}
130}, 131},
131 132
132/* ACTIONS 133/* ACTIONS
@@ -141,10 +142,10 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
141 * `-----------------------------------------------------------------------------------' 142 * `-----------------------------------------------------------------------------------'
142 */ 143 */
143[_ACTION] = { 144[_ACTION] = {
144 {_______, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_DEL }, 145 {_______, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_DEL },
145 {_______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX}, 146 {_______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX},
146 {KC_CAPS, KC_UNDO, KC_CUT, KC_COPY, KC_PSTE, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_PGUP, KC_ENT }, 147 {KC_CAPS, KC_UNDO, KC_CUT, KC_COPY, KC_PSTE, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_PGUP, KC_ENT },
147 {_______, _______, _______, KC_MUTE, _______, XXXXXXX, XXXXXXX, _______, XXXXXXX, KC_HOME, KC_PGDN, KC_END } 148 {_______, _______, _______, KC_MUTE, _______, XXXXXXX, XXXXXXX, _______, XXXXXXX, KC_HOME, KC_PGDN, KC_END }
148}, 149},
149 150
150/* FUNCTIONS 151/* FUNCTIONS
@@ -159,10 +160,10 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
159 * `-----------------------------------------------------------------------------------' 160 * `-----------------------------------------------------------------------------------'
160 */ 161 */
161[_FUNCTN] = { 162[_FUNCTN] = {
162 {KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12 }, 163 {KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12 },
163 {KC_F13, KC_F14, KC_F15, KC_F16, KC_F17, KC_F18, KC_F19, KC_F20, KC_F21, KC_F22, KC_F23, KC_F24 }, 164 {KC_F13, KC_F14, KC_F15, KC_F16, KC_F17, KC_F18, KC_F19, KC_F20, KC_F21, KC_F22, KC_F23, KC_F24 },
164 {XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, QWERTY, DVORAK, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX}, 165 {XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, QWERTY, DVORAK, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX},
165 {RESET, XXXXXXX, LOCK, XXXXXXX, _______, XXXXXXX, XXXXXXX, _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX} 166 {RESET, XXXXXXX, LOCK, XXXXXXX, _______, XXXXXXX, XXXXXXX, _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX}
166} 167}
167 168
168}; 169};
@@ -177,56 +178,56 @@ float tone_goodbye[][2] = SONG(GOODBYE_SOUND);
177 178
178 179
179bool process_record_user(uint16_t keycode, keyrecord_t *record) { 180bool process_record_user(uint16_t keycode, keyrecord_t *record) {
180 switch (keycode) { 181 switch (keycode) {
181 case QWERTY: 182 case QWERTY:
182 if (record->event.pressed) { 183 if (record->event.pressed) {
183 if (IS_LAYER_ON(_DVORAK)) { 184 if (IS_LAYER_ON(_DVORAK)) {
184#ifdef AUDIO_ENABLE 185#ifdef AUDIO_ENABLE
185 PLAY_SONG(tone_qwerty); 186 PLAY_SONG(tone_qwerty);
186#endif 187#endif
187 layer_off(_DVORAK); 188 layer_off(_DVORAK);
188 } 189 }
189 } 190 }
190 return false; 191 return false;
191 break; 192 break;
192 case DVORAK: 193 case DVORAK:
193 if (record->event.pressed) { 194 if (record->event.pressed) {
194 if (!IS_LAYER_ON(_DVORAK)) { 195 if (!IS_LAYER_ON(_DVORAK)) {
195#ifdef AUDIO_ENABLE 196#ifdef AUDIO_ENABLE
196 PLAY_SONG(tone_dvorak); 197 PLAY_SONG(tone_dvorak);
197#endif 198#endif
198 layer_on(_DVORAK); 199 layer_on(_DVORAK);
199 } 200 }
200 } 201 }
201 return false; 202 return false;
202 break; 203 break;
203 case NUMBER: 204 case NUMBER:
204 if (record->event.pressed) { 205 if (record->event.pressed) {
205 layer_on(_NUMBER); 206 layer_on(_NUMBER);
206 update_tri_layer(_NUMBER, _ACTION, _FUNCTN); 207 update_tri_layer(_NUMBER, _ACTION, _FUNCTN);
207 } else { 208 } else {
208 layer_off(_NUMBER); 209 layer_off(_NUMBER);
209 update_tri_layer(_NUMBER, _ACTION, _FUNCTN); 210 update_tri_layer(_NUMBER, _ACTION, _FUNCTN);
210 } 211 }
211 return false; 212 return false;
212 break; 213 break;
213 case ACTION: 214 case ACTION:
214 if (record->event.pressed) { 215 if (record->event.pressed) {
215 layer_on(_ACTION); 216 layer_on(_ACTION);
216 update_tri_layer(_NUMBER, _ACTION, _FUNCTN); 217 update_tri_layer(_NUMBER, _ACTION, _FUNCTN);
217 } else { 218 } else {
218 layer_off(_ACTION); 219 layer_off(_ACTION);
219 update_tri_layer(_NUMBER, _ACTION, _FUNCTN); 220 update_tri_layer(_NUMBER, _ACTION, _FUNCTN);
220 } 221 }
221 return false; 222 return false;
222 break; 223 break;
223 } 224 }
224 return true; 225 return true;
225} 226}
226 227
227void matrix_init_user(void) { 228void matrix_init_user(void) {
228#ifdef AUDIO_ENABLE 229#ifdef AUDIO_ENABLE
229 startup_user(); 230 startup_user();
230#endif 231#endif
231} 232}
232 233
@@ -234,25 +235,25 @@ void matrix_init_user(void) {
234 235
235void startup_user() 236void startup_user()
236{ 237{
237 _delay_ms(20); // gets rid of tick 238 _delay_ms(20); // gets rid of tick
238 PLAY_SONG(tone_startup); 239 PLAY_SONG(tone_startup);
239} 240}
240 241
241void shutdown_user() 242void shutdown_user()
242{ 243{
243 PLAY_SONG(tone_goodbye); 244 PLAY_SONG(tone_goodbye);
244 _delay_ms(150); 245 _delay_ms(150);
245 stop_all_notes(); 246 stop_all_notes();
246} 247}
247 248
248void music_on_user(void) 249void music_on_user(void)
249{ 250{
250 music_scale_user(); 251 music_scale_user();
251} 252}
252 253
253void music_scale_user(void) 254void music_scale_user(void)
254{ 255{
255 PLAY_SONG(music_scale); 256 PLAY_SONG(music_scale);
256} 257}
257 258
258#endif 259#endif