aboutsummaryrefslogtreecommitdiff
path: root/keyboard/preonic/keymaps/default/keymap.c
diff options
context:
space:
mode:
Diffstat (limited to 'keyboard/preonic/keymaps/default/keymap.c')
-rw-r--r--keyboard/preonic/keymaps/default/keymap.c260
1 files changed, 227 insertions, 33 deletions
diff --git a/keyboard/preonic/keymaps/default/keymap.c b/keyboard/preonic/keymaps/default/keymap.c
index 3da69c215..c52d8472f 100644
--- a/keyboard/preonic/keymaps/default/keymap.c
+++ b/keyboard/preonic/keymaps/default/keymap.c
@@ -1,9 +1,7 @@
1// This is the canonical layout file for the Quantum project. If you want to add another keyboard,
2// this is the style you want to emulate.
3
4#include "preonic.h" 1#include "preonic.h"
5#ifdef BACKLIGHT_ENABLE 2#include "action_layer.h"
6 #include "backlight.h" 3#ifdef AUDIO_ENABLE
4 #include "audio.h"
7#endif 5#endif
8 6
9// Each layer gets a name for readability, which is then used in the keymap matrix below. 7// Each layer gets a name for readability, which is then used in the keymap matrix below.
@@ -15,42 +13,150 @@
15#define _DV 2 13#define _DV 2
16#define _LW 3 14#define _LW 3
17#define _RS 4 15#define _RS 4
16#define _AD 5
17
18// Macro name shortcuts
19#define QWERTY M(_QW)
20#define COLEMAK M(_CM)
21#define DVORAK M(_DV)
22#define LOWER M(_LW)
23#define RAISE M(_RS)
24#define M_BL 5
25#ifdef AUDIO_ENABLE
26 #define AUD_OFF M(6)
27 #define AUD_ON M(7)
28#endif
29
30// Fillers to make layering more clear
31#define _______ KC_TRNS
32#define XXXXXXX KC_NO
18 33
19const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { 34const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
20[_QW] = { /* Qwerty */ 35
36/* Qwerty
37 * ,-----------------------------------------------------------------------------------.
38 * | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Bksp |
39 * |------+------+------+------+------+------+------+------+------+------+------+------|
40 * | Tab | Q | W | E | R | T | Y | U | I | O | P | Del |
41 * |------+------+------+------+------+-------------+------+------+------+------+------|
42 * | Esc | A | S | D | F | G | H | J | K | L | ; | " |
43 * |------+------+------+------+------+------|------+------+------+------+------+------|
44 * | Shift| Z | X | C | V | B | N | M | , | . | / |Enter |
45 * |------+------+------+------+------+------+------+------+------+------+------+------|
46 * | Brite| Ctrl | Alt | GUI |Lower | Space |Raise | Left | Down | Up |Right |
47 * `-----------------------------------------------------------------------------------'
48 */
49[_QW] = {
21 {KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC}, 50 {KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC},
22 {KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC}, 51 {KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_DEL},
23 {KC_ESC, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT}, 52 {KC_ESC, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT},
24 {KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT }, 53 {KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT },
25 {M(0), KC_LCTL, KC_LALT, KC_LGUI, MO(_LW), KC_SPC, KC_SPC, MO(_RS), KC_LEFT, KC_DOWN, KC_UP, KC_RGHT} 54 {M(M_BL), KC_LCTL, KC_LALT, KC_LGUI, LOWER, KC_SPC, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT}
26}, 55},
27[_CM] = { /* Colemak */ 56
57/* Colemak
58 * ,-----------------------------------------------------------------------------------.
59 * | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Bksp |
60 * |------+------+------+------+------+------+------+------+------+------+------+------|
61 * | Tab | Q | W | F | P | G | J | L | U | Y | ; | Del |
62 * |------+------+------+------+------+-------------+------+------+------+------+------|
63 * | Esc | A | R | S | T | D | H | N | E | I | O | " |
64 * |------+------+------+------+------+------|------+------+------+------+------+------|
65 * | Shift| Z | X | C | V | B | K | M | , | . | / |Enter |
66 * |------+------+------+------+------+------+------+------+------+------+------+------|
67 * | Brite| Ctrl | Alt | GUI |Lower | Space |Raise | Left | Down | Up |Right |
68 * `-----------------------------------------------------------------------------------'
69 */
70[_CM] = {
28 {KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC}, 71 {KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC},
29 {KC_TAB, KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_BSPC}, 72 {KC_TAB, KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_DEL},
30 {KC_ESC, KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, KC_QUOT}, 73 {KC_ESC, KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, KC_QUOT},
31 {KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT }, 74 {KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT },
32 {M(0), KC_LCTL, KC_LALT, KC_LGUI, MO(_LW), KC_SPC, KC_SPC, MO(_RS), KC_LEFT, KC_DOWN, KC_UP, KC_RGHT} 75 {M(M_BL), KC_LCTL, KC_LALT, KC_LGUI, LOWER, KC_SPC, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT}
33}, 76},
34[_DV] = { /* Dvorak */ 77
78/* Dvorak
79 * ,-----------------------------------------------------------------------------------.
80 * | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Bksp |
81 * |------+------+------+------+------+------+------+------+------+------+------+------|
82 * | Tab | " | , | . | P | Y | F | G | C | R | L | Del |
83 * |------+------+------+------+------+-------------+------+------+------+------+------|
84 * | Esc | A | O | E | U | I | D | H | T | N | S | / |
85 * |------+------+------+------+------+------|------+------+------+------+------+------|
86 * | Shift| ; | Q | J | K | X | B | M | W | V | Z |Enter |
87 * |------+------+------+------+------+------+------+------+------+------+------+------|
88 * | Brite| Ctrl | Alt | GUI |Lower | Space |Raise | Left | Down | Up |Right |
89 * `-----------------------------------------------------------------------------------'
90 */
91[_DV] = {
35 {KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC}, 92 {KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC},
36 {KC_TAB, KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y, KC_F, KC_G, KC_C, KC_R, KC_L, KC_BSPC}, 93 {KC_TAB, KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y, KC_F, KC_G, KC_C, KC_R, KC_L, KC_DEL},
37 {KC_ESC, KC_A, KC_O, KC_E, KC_U, KC_I, KC_D, KC_H, KC_T, KC_N, KC_S, KC_SLSH}, 94 {KC_ESC, KC_A, KC_O, KC_E, KC_U, KC_I, KC_D, KC_H, KC_T, KC_N, KC_S, KC_SLSH},
38 {KC_LSFT, KC_SCLN, KC_Q, KC_J, KC_K, KC_X, KC_B, KC_M, KC_W, KC_V, KC_Z, KC_ENT }, 95 {KC_LSFT, KC_SCLN, KC_Q, KC_J, KC_K, KC_X, KC_B, KC_M, KC_W, KC_V, KC_Z, KC_ENT },
39 {M(0), KC_LCTL, KC_LALT, KC_LGUI, MO(_LW), KC_SPC, KC_SPC, MO(_RS), KC_LEFT, KC_DOWN, KC_UP, KC_RGHT} 96 {M(M_BL), KC_LCTL, KC_LALT, KC_LGUI, LOWER, KC_SPC, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT}
40}, 97},
41[_RS] = { /* RAISE */ 98
42 {KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC}, 99/* Lower
43 {KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC}, 100 * ,-----------------------------------------------------------------------------------.
44 {KC_TRNS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS}, 101 * | ~ | ! | @ | # | $ | % | ^ | & | * | ( | ) | Bksp |
45 {KC_TRNS, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, DF(_QW), DF(_CM), DF(_DV), RESET, KC_TRNS}, 102 * |------+------+------+------+------+-------------+------+------+------+------+------|
46 {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY} 103 * | ~ | ! | @ | # | $ | % | ^ | & | * | ( | ) | Del |
104 * |------+------+------+------+------+-------------+------+------+------+------+------|
105 * | Del | F1 | F2 | F3 | F4 | F5 | F6 | _ | + | { | } | | |
106 * |------+------+------+------+------+------|------+------+------+------+------+------|
107 * | | F7 | F8 | F9 | F10 | F11 | F12 | | | | |Enter |
108 * |------+------+------+------+------+------+------+------+------+------+------+------|
109 * | | | | | | | | Next | Vol- | Vol+ | Play |
110 * `-----------------------------------------------------------------------------------'
111 */
112[_LW] = {
113 {KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_BSPC},
114 {KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_DEL},
115 {KC_DEL, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE},
116 {_______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, _______, _______, _______},
117 {_______, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY}
47}, 118},
48[_LW] = { /* LOWER */ 119
120/* Raise
121 * ,-----------------------------------------------------------------------------------.
122 * | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Bksp |
123 * |------+------+------+------+------+------+------+------+------+------+------+------|
124 * | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Del |
125 * |------+------+------+------+------+-------------+------+------+------+------+------|
126 * | Del | F1 | F2 | F3 | F4 | F5 | F6 | - | = | [ | ] | \ |
127 * |------+------+------+------+------+------|------+------+------+------+------+------|
128 * | | F7 | F8 | F9 | F10 | F11 | F12 | | | | |Enter |
129 * |------+------+------+------+------+------+------+------+------+------+------+------|
130 * | | | | | | | | Next | Vol- | Vol+ | Play |
131 * `-----------------------------------------------------------------------------------'
132 */
133[_RS] = {
49 {KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC}, 134 {KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC},
50 {KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_BSPC}, 135 {KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_DEL},
51 {KC_TRNS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE}, 136 {KC_DEL, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS},
52 {KC_TRNS, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, DF(_QW), DF(_CM), DF(_DV), RESET, KC_TRNS}, 137 {_______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, _______, _______, _______},
53 {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY} 138 {_______, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY}
139},
140
141/* Adjust (Lower + Raise)
142 * ,-----------------------------------------------------------------------------------.
143 * | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | F11 | F12 |
144 * |------+------+------+------+------+------+------+------+------+------+------+------|
145 * | | Reset| | | | | | | | | | Del |
146 * |------+------+------+------+------+-------------+------+------+------+------+------|
147 * | | | |Audoff|Aud on| | |Qwerty|Colemk|Dvorak| | |
148 * |------+------+------+------+------+------|------+------+------+------+------+------|
149 * | | | | | | | | | | | | |
150 * |------+------+------+------+------+------+------+------+------+------+------+------|
151 * | | | | | | | | | | | |
152 * `-----------------------------------------------------------------------------------'
153 */
154[_AD] = {
155 {KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12},
156 {_______, RESET, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_DEL},
157 {_______, _______, _______, AUD_ON, AUD_OFF, _______, _______, QWERTY, COLEMAK, DVORAK, _______, _______},
158 {_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______},
159 {_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______}
54} 160}
55}; 161};
56 162
@@ -58,28 +164,116 @@ const uint16_t PROGMEM fn_actions[] = {
58 164
59}; 165};
60 166
167#ifdef AUDIO_ENABLE
61float start_up[][2] = { 168float start_up[][2] = {
62 {440.0*pow(2.0,(67)/12.0), 4}, 169 {440.0*pow(2.0,(55)/12.0), 12},
170 {0, 2},
171 {440.0*pow(2.0,(67)/12.0), 8},
63 {440.0*pow(2.0,(64)/12.0), 8}, 172 {440.0*pow(2.0,(64)/12.0), 8},
64 {440.0*pow(2.0,(55)/12.0), 8}, 173 {440.0*pow(2.0,(55)/12.0), 8},
174 {440.0*pow(2.0,(67)/12.0), 12},
175 {0, 2},
176 {440.0*pow(2.0,(67)/12.0), 12}
177};
178
179float tone_qw[][2] = {
180 {440.0*pow(2.0,(59)/12.0), 8},
65 {440.0*pow(2.0,(60)/12.0), 8}, 181 {440.0*pow(2.0,(60)/12.0), 8},
66 {440.0*pow(2.0,(64)/12.0), 10}, 182 {0, 4},
183 {440.0*pow(2.0,(67)/12.0), 16}
67}; 184};
68 185
186float tone_cm[][2] = {
187 {440.0*pow(2.0,(59)/12.0), 8},
188 {440.0*pow(2.0,(60)/12.0), 8},
189 {0, 4},
190 {440.0*pow(2.0,(67)/12.0), 12},
191 {0, 4},
192 {440.0*pow(2.0,(71)/12.0), 12}
193};
194
195float tone_dv[][2] = {
196 {440.0*pow(2.0,(59)/12.0), 8},
197 {440.0*pow(2.0,(60)/12.0), 8},
198 {0, 4},
199 {440.0*pow(2.0,(67)/12.0), 8},
200 {0, 4},
201 {440.0*pow(2.0,(69)/12.0), 8},
202 {0, 4},
203 {440.0*pow(2.0,(67)/12.0), 8}
204};
205#endif
206
207
69const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) 208const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt)
70{ 209{
71 // MACRODOWN only works in this function 210 // MACRODOWN only works in this function
72 switch(id) { 211 switch(id) {
73 case 0: 212 case _QW:
213 if (record->event.pressed) {
214 #ifdef AUDIO_ENABLE
215 play_notes(&tone_qw, 4, false);
216 #endif
217 default_layer_set(1UL<<_QW);
218 }
219 break;
220 case _CM:
221 if (record->event.pressed) {
222 #ifdef AUDIO_ENABLE
223 play_notes(&tone_cm, 6, false);
224 #endif
225 default_layer_set(1UL<<_CM);
226 }
227 break;
228 case _DV:
229 if (record->event.pressed) {
230 #ifdef AUDIO_ENABLE
231 play_notes(&tone_dv, 8, false);
232 #endif
233 default_layer_set(1UL<<_DV);
234 }
235 break;
236 case _LW:
237 if (record->event.pressed) {
238 layer_on(_LW);
239 update_tri_layer(_LW, _RS, _AD);
240 } else {
241 layer_off(_LW);
242 update_tri_layer(_LW, _RS, _AD);
243 }
244 break;
245 case _RS:
246 if (record->event.pressed) {
247 layer_on(_RS);
248 update_tri_layer(_LW, _RS, _AD);
249 } else {
250 layer_off(_RS);
251 update_tri_layer(_LW, _RS, _AD);
252 }
253 break;
254 case M_BL:
74 if (record->event.pressed) { 255 if (record->event.pressed) {
75 register_code(KC_RSFT); 256 register_code(KC_RSFT);
76 #ifdef BACKLIGHT_ENABLE 257 #ifdef BACKLIGHT_ENABLE
77 backlight_step(); 258 backlight_step();
78 #endif 259 #endif
79 audio_toggle();
80 } else { 260 } else {
81 unregister_code(KC_RSFT); 261 unregister_code(KC_RSFT);
82 play_notes(&start_up, 5, false); 262 }
263 break;
264 case 6:
265 if (record->event.pressed) {
266 #ifdef AUDIO_ENABLE
267 audio_off();
268 #endif
269 }
270 break;
271 case 7:
272 if (record->event.pressed) {
273 #ifdef AUDIO_ENABLE
274 audio_on();
275 play_notes(&start_up, 7, false);
276 #endif
83 } 277 }
84 break; 278 break;
85 } 279 }
@@ -87,8 +281,8 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt)
87}; 281};
88 282
89void matrix_init_user(void) { 283void matrix_init_user(void) {
90#ifdef AUDIO_ENABLE 284 #ifdef AUDIO_ENABLE
91 init_notes(); 285 init_notes();
92 play_notes(&start_up, 5, false); 286 play_notes(&start_up, 7, false);
93#endif 287 #endif
94} 288}