aboutsummaryrefslogtreecommitdiff
path: root/keyboards/helix/rev1/keymaps/default/keymap.c
diff options
context:
space:
mode:
Diffstat (limited to 'keyboards/helix/rev1/keymaps/default/keymap.c')
-rw-r--r--keyboards/helix/rev1/keymaps/default/keymap.c349
1 files changed, 349 insertions, 0 deletions
diff --git a/keyboards/helix/rev1/keymaps/default/keymap.c b/keyboards/helix/rev1/keymaps/default/keymap.c
new file mode 100644
index 000000000..d7cf34053
--- /dev/null
+++ b/keyboards/helix/rev1/keymaps/default/keymap.c
@@ -0,0 +1,349 @@
1#include "helix.h"
2#include "action_layer.h"
3#include "eeconfig.h"
4
5extern keymap_config_t keymap_config;
6
7// Each layer gets a name for readability, which is then used in the keymap matrix below.
8// The underscores don't mean anything - you can have a layer called STUFF or any other name.
9// Layer names don't all need to be of the same length, obviously, and you can also skip them
10// entirely and just use numbers.
11#define _QWERTY 0
12#define _COLEMAK 1
13#define _DVORAK 2
14#define _LOWER 3
15#define _RAISE 4
16#define _ADJUST 16
17
18enum custom_keycodes {
19 QWERTY = SAFE_RANGE,
20 COLEMAK,
21 DVORAK,
22 LOWER,
23 RAISE,
24 ADJUST,
25};
26
27// Fillers to make layering more clear
28#define _______ KC_TRNS
29#define XXXXXXX KC_NO
30
31#if HELIX_ROWS == 5
32const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
33
34 /* Qwerty
35 * ,-----------------------------------------------------------------------------------.
36 * | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Bksp |
37 * |------+------+------+------+------+------+------+------+------+------+------+------|
38 * | Tab | Q | W | E | R | T | Y | U | I | O | P | Del |
39 * |------+------+------+------+------+-------------+------+------+------+------+------|
40 * | Esc | A | S | D | F | G | H | J | K | L | ; | " |
41 * |------+------+------+------+------+------|------+------+------+------+------+------|
42 * | Shift| Z | X | C | V | B | N | M | , | . | / |Enter |
43 * |------+------+------+------+------+------+------+------+------+------+------+------|
44 * |Adjust| Ctrl | Alt | GUI |Lower |Space |Space |Raise | Left | Down | Up |Right |
45 * `-----------------------------------------------------------------------------------'
46 */
47 [_QWERTY] = KEYMAP( \
48 KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC, \
49 KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_DEL, \
50 KC_ESC, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, \
51 KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT , \
52 ADJUST, KC_LCTL, KC_LALT, KC_LGUI, LOWER, KC_SPC, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT \
53 ),
54
55 /* Colemak
56 * ,-----------------------------------------------------------------------------------.
57 * | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Bksp |
58 * |------+------+------+------+------+------+------+------+------+------+------+------|
59 * | Tab | Q | W | F | P | G | J | L | U | Y | ; | Del |
60 * |------+------+------+------+------+-------------+------+------+------+------+------|
61 * | Esc | A | R | S | T | D | H | N | E | I | O | " |
62 * |------+------+------+------+------+------|------+------+------+------+------+------|
63 * | Shift| Z | X | C | V | B | K | M | , | . | / |Enter |
64 * |------+------+------+------+------+------+------+------+------+------+------+------|
65 * |Adjust| Ctrl | Alt | GUI |Lower |Space |Space |Raise | Left | Down | Up |Right |
66 * `-----------------------------------------------------------------------------------'
67 */
68 [_COLEMAK] = KEYMAP( \
69 KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC, \
70 KC_TAB, KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_DEL, \
71 KC_ESC, KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, KC_QUOT, \
72 KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT , \
73 ADJUST, KC_LCTL, KC_LALT, KC_LGUI, LOWER, KC_SPC, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT \
74 ),
75
76 /* Dvorak
77 * ,-----------------------------------------------------------------------------------.
78 * | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Bksp |
79 * |------+------+------+------+------+------+------+------+------+------+------+------|
80 * | Tab | " | , | . | P | Y | F | G | C | R | L | Del |
81 * |------+------+------+------+------+-------------+------+------+------+------+------|
82 * | Esc | A | O | E | U | I | D | H | T | N | S | / |
83 * |------+------+------+------+------+------|------+------+------+------+------+------|
84 * | Shift| ; | Q | J | K | X | B | M | W | V | Z |Enter |
85 * |------+------+------+------+------+------+------+------+------+------+------+------|
86 * |Adjust| Ctrl | Alt | GUI |Lower |Space |Space |Raise | Left | Down | Up |Right |
87 * `-----------------------------------------------------------------------------------'
88 */
89 [_DVORAK] = KEYMAP( \
90 KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC, \
91 KC_TAB, KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y, KC_F, KC_G, KC_C, KC_R, KC_L, KC_DEL, \
92 KC_ESC, KC_A, KC_O, KC_E, KC_U, KC_I, KC_D, KC_H, KC_T, KC_N, KC_S, KC_SLSH, \
93 KC_LSFT, KC_SCLN, KC_Q, KC_J, KC_K, KC_X, KC_B, KC_M, KC_W, KC_V, KC_Z, KC_ENT , \
94 ADJUST, KC_LCTL, KC_LALT, KC_LGUI, LOWER, KC_SPC, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT \
95 ),
96
97 /* Lower
98 * ,-----------------------------------------------------------------------------------.
99 * | ~ | ! | @ | # | $ | % | ^ | & | * | ( | ) | Bksp |
100 * |------+------+------+------+------+-------------+------+------+------+------+------|
101 * | ~ | ! | @ | # | $ | % | ^ | & | * | ( | ) | Del |
102 * |------+------+------+------+------+-------------+------+------+------+------+------|
103 * | Del | F1 | F2 | F3 | F4 | F5 | F6 | _ | + | | \ | | |
104 * |------+------+------+------+------+------|------+------+------+------+------+------|
105 * | | F7 | F8 | F9 | F10 | F11 | F12 |ISO ~ |ISO | | | |Enter |
106 * |------+------+------+------+------+------+------+------+------+------+------+------|
107 * | | | | | | | | Next | Vol- | Vol+ | Play |
108 * `-----------------------------------------------------------------------------------'
109 */
110 [_LOWER] = KEYMAP( \
111 KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_BSPC, \
112 KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_DEL, \
113 KC_DEL, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE, \
114 _______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12,S(KC_NUHS),S(KC_NUBS),_______, _______, _______, \
115 _______, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY \
116 ),
117
118 /* Raise
119 * ,-----------------------------------------------------------------------------------.
120 * | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Bksp |
121 * |------+------+------+------+------+-------------+------+------+------+------+------|
122 * | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Del |
123 * |------+------+------+------+------+-------------+------+------+------+------+------|
124 * | Del | F1 | F2 | F3 | F4 | F5 | F6 | - | = | [ | ] | \ |
125 * |------+------+------+------+------+------|------+------+------+------+------+------|
126 * | | F7 | F8 | F9 | F10 | F11 | F12 |ISO # |ISO / | | |Enter |
127 * |------+------+------+------+------+------+------+------+------+------+------+------|
128 * | | | | | | | | Next | Vol- | Vol+ | Play |
129 * `-----------------------------------------------------------------------------------'
130 */
131 [_RAISE] = KEYMAP( \
132 KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC, \
133 KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_DEL, \
134 KC_DEL, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS, \
135 _______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_NUHS, KC_NUBS, _______, _______, _______, \
136 _______, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY \
137 ),
138
139 /* Adjust (Lower + Raise)
140 * ,-----------------------------------------------------------------------------------.
141 * | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | F11 | F12 |
142 * |------+------+------+------+------+------+------+------+------+------+------+------|
143 * | | Reset| | | | | | | | | | Del |
144 * |------+------+------+------+------+-------------+------+------+------+------+------|
145 * | | | |Aud on|Audoff|AGnorm|AGswap|Qwerty|Colemk|Dvorak| | |
146 * |------+------+------+------+------+------|------+------+------+------+------+------|
147 * | | | | | | | | | | | | |
148 * |------+------+------+------+------+------+------+------+------+------+------+------|
149 * | | | | | | | | | | | |
150 * `-----------------------------------------------------------------------------------'
151 */
152 [_ADJUST] = KEYMAP( \
153 KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, \
154 _______, RESET, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_DEL, \
155 _______, _______, _______, AU_ON, AU_OFF, AG_NORM, AG_SWAP, QWERTY, COLEMAK, DVORAK, _______, _______, \
156 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \
157 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ \
158 )
159};
160
161#elif HELIX_ROWS == 4
162
163const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
164
165 /* Qwerty
166 * ,-----------------------------------------------------------------------------------.
167 * | Tab | Q | W | E | R | T | Y | U | I | O | P | Bksp |
168 * |------+------+------+------+------+-------------+------+------+------+------+------|
169 * | Esc | A | S | D | F | G | H | J | K | L | ; | " |
170 * |------+------+------+------+------+------|------+------+------+------+------+------|
171 * | Shift| Z | X | C | V | B | N | M | , | . | / |Enter |
172 * |------+------+------+------+------+------+------+------+------+------+------+------|
173 * |Adjust| Ctrl | Alt | GUI |Lower |Space |Space |Raise | Left | Down | Up |Right |
174 * `-----------------------------------------------------------------------------------'
175 */
176
177 [_QWERTY] = KEYMAP( \
178 KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_DEL, \
179 KC_ESC, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, \
180 KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT , \
181 ADJUST, KC_LCTL, KC_LALT, KC_LGUI, LOWER, KC_SPC, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT \
182 ),
183
184 /* Colemak
185 * ,-----------------------------------------------------------------------------------.
186 * | Tab | Q | W | F | P | G | J | L | U | Y | ; | Bksp |
187 * |------+------+------+------+------+-------------+------+------+------+------+------|
188 * | Esc | A | R | S | T | D | H | N | E | I | O | " |
189 * |------+------+------+------+------+------|------+------+------+------+------+------|
190 * | Shift| Z | X | C | V | B | K | M | , | . | / |Enter |
191 * |------+------+------+------+------+------+------+------+------+------+------+------|
192 * |Adjust| Ctrl | Alt | GUI |Lower |Space |Space |Raise | Left | Down | Up |Right |
193 * `-----------------------------------------------------------------------------------'
194 */
195 [_COLEMAK] = KEYMAP( \
196 KC_TAB, KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_BSPC, \
197 KC_ESC, KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, KC_QUOT, \
198 KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT , \
199 ADJUST, KC_LCTL, KC_LALT, KC_LGUI, LOWER, KC_SPC, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT \
200 ),
201
202 /* Dvorak
203 * ,-----------------------------------------------------------------------------------.
204 * | Tab | " | , | . | P | Y | F | G | C | R | L | Bksp |
205 * |------+------+------+------+------+-------------+------+------+------+------+------|
206 * | Esc | A | O | E | U | I | D | H | T | N | S | / |
207 * |------+------+------+------+------+------|------+------+------+------+------+------|
208 * | Shift| ; | Q | J | K | X | B | M | W | V | Z |Enter |
209 * |------+------+------+------+------+------+------+------+------+------+------+------|
210 * |Adjust| Ctrl | Alt | GUI |Lower |Space |Space |Raise | Left | Down | Up |Right |
211 * `-----------------------------------------------------------------------------------'
212 */
213 [_DVORAK] = KEYMAP( \
214 KC_TAB, KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y, KC_F, KC_G, KC_C, KC_R, KC_L, KC_BSPC, \
215 KC_ESC, KC_A, KC_O, KC_E, KC_U, KC_I, KC_D, KC_H, KC_T, KC_N, KC_S, KC_SLSH, \
216 KC_LSFT, KC_SCLN, KC_Q, KC_J, KC_K, KC_X, KC_B, KC_M, KC_W, KC_V, KC_Z, KC_ENT , \
217 ADJUST, KC_LCTL, KC_LALT, KC_LGUI, LOWER, KC_SPC, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT \
218 ),
219
220 /* Lower
221 * ,-----------------------------------------------------------------------------------.
222 * | ~ | ! | @ | # | $ | % | ^ | & | * | ( | ) | Bksp |
223 * |------+------+------+------+------+-------------+------+------+------+------+------|
224 * | Del | F1 | F2 | F3 | F4 | F5 | F6 | _ | + | | \ | | |
225 * |------+------+------+------+------+------|------+------+------+------+------+------|
226 * | | F7 | F8 | F9 | F10 | F11 | F12 |ISO ~ |ISO | | | |Enter |
227 * |------+------+------+------+------+------+------+------+------+------+------+------|
228 * | | | | | | | | Next | Vol- | Vol+ | Play |
229 * `-----------------------------------------------------------------------------------'
230 */
231 [_LOWER] = KEYMAP( \
232 KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_BSPC, \
233 KC_DEL, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE, \
234 _______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12,S(KC_NUHS),S(KC_NUBS),_______, _______, _______, \
235 _______, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY \
236 ),
237
238 /* Raise
239 * ,-----------------------------------------------------------------------------------.
240 * | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Bksp |
241 * |------+------+------+------+------+-------------+------+------+------+------+------|
242 * | Del | F1 | F2 | F3 | F4 | F5 | F6 | - | = | [ | ] | \ |
243 * |------+------+------+------+------+------|------+------+------+------+------+------|
244 * | | F7 | F8 | F9 | F10 | F11 | F12 |ISO # |ISO / | | |Enter |
245 * |------+------+------+------+------+------+------+------+------+------+------+------|
246 * | | | | | | | | Next | Vol- | Vol+ | Play |
247 * `-----------------------------------------------------------------------------------'
248 */
249 [_RAISE] = KEYMAP( \
250 KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC, \
251 KC_DEL, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS, \
252 _______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_NUHS, KC_NUBS, _______, _______, _______, \
253 _______, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY \
254 ),
255
256 /* Adjust (Lower + Raise)
257 * ,-----------------------------------------------------------------------------------.
258 * | | Reset| | | | | | | | | | Del |
259 * |------+------+------+------+------+-------------+------+------+------+------+------|
260 * | | | |Aud on|Audoff|AGnorm|AGswap|Qwerty|Colemk|Dvorak| | |
261 * |------+------+------+------+------+------|------+------+------+------+------+------|
262 * | | | | | | | | | | | | |
263 * |------+------+------+------+------+------+------+------+------+------+------+------|
264 * | | | | | | | | | | | |
265 * `-----------------------------------------------------------------------------------'
266 */
267 [_ADJUST] = KEYMAP( \
268 _______, RESET, _______, M_SAMPLE, _______, _______, _______, _______, _______, _______, _______, KC_DEL, \
269 _______, _______, _______, AU_ON, AU_OFF, AG_NORM, AG_SWAP, QWERTY, COLEMAK, DVORAK, _______, _______, \
270 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \
271 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ \
272 )
273};
274
275#else
276#error "undefined keymaps"
277#endif
278
279#ifdef AUDIO_ENABLE
280float tone_qwerty[][2] = SONG(QWERTY_SOUND);
281float tone_dvorak[][2] = SONG(DVORAK_SOUND);
282float tone_colemak[][2] = SONG(COLEMAK_SOUND);
283#endif
284
285void persistent_default_layer_set(uint16_t default_layer) {
286 eeconfig_update_default_layer(default_layer);
287 default_layer_set(default_layer);
288}
289
290bool process_record_user(uint16_t keycode, keyrecord_t *record) {
291 switch (keycode) {
292 case QWERTY:
293 if (record->event.pressed) {
294 #ifdef AUDIO_ENABLE
295 PLAY_SONG(tone_qwerty);
296 #endif
297 persistent_default_layer_set(1UL<<_QWERTY);
298 }
299 return false;
300 break;
301 case COLEMAK:
302 if (record->event.pressed) {
303 #ifdef AUDIO_ENABLE
304 PLAY_SONG(tone_colemak);
305 #endif
306 persistent_default_layer_set(1UL<<_COLEMAK);
307 }
308 return false;
309 break;
310 case DVORAK:
311 if (record->event.pressed) {
312 #ifdef AUDIO_ENABLE
313 PLAY_SONG(tone_dvorak);
314 #endif
315 persistent_default_layer_set(1UL<<_DVORAK);
316 }
317 return false;
318 break;
319 case LOWER:
320 if (record->event.pressed) {
321 layer_on(_LOWER);
322 update_tri_layer(_LOWER, _RAISE, _ADJUST);
323 } else {
324 layer_off(_LOWER);
325 update_tri_layer(_LOWER, _RAISE, _ADJUST);
326 }
327 return false;
328 break;
329 case RAISE:
330 if (record->event.pressed) {
331 layer_on(_RAISE);
332 update_tri_layer(_LOWER, _RAISE, _ADJUST);
333 } else {
334 layer_off(_RAISE);
335 update_tri_layer(_LOWER, _RAISE, _ADJUST);
336 }
337 return false;
338 break;
339 case ADJUST:
340 if (record->event.pressed) {
341 layer_on(_ADJUST);
342 } else {
343 layer_off(_ADJUST);
344 }
345 return false;
346 break;
347 }
348 return true;
349}