aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJonathan Lucas <CommandLineDesign@gmail.com>2016-07-23 18:47:36 -0700
committerGitHub <noreply@github.com>2016-07-23 18:47:36 -0700
commitb5761df57b024c29c69b24552fe1d43c49ac049d (patch)
tree101b5d94f33e84513bc95be84830adff7086a9d5
parent4059a16118e3abbc9eab2241693c60a1f19811b5 (diff)
downloadqmk_firmware-b5761df57b024c29c69b24552fe1d43c49ac049d.tar.gz
qmk_firmware-b5761df57b024c29c69b24552fe1d43c49ac049d.zip
Create CMD-Preonic Keymap
This is very Alpha-Mode, and has not been tested or even Made yet.
-rw-r--r--keyboards/preonic/keymaps/CMD-Preonic/keymap.c322
1 files changed, 322 insertions, 0 deletions
diff --git a/keyboards/preonic/keymaps/CMD-Preonic/keymap.c b/keyboards/preonic/keymaps/CMD-Preonic/keymap.c
new file mode 100644
index 000000000..c7a5be121
--- /dev/null
+++ b/keyboards/preonic/keymaps/CMD-Preonic/keymap.c
@@ -0,0 +1,322 @@
1#include "preonic.h"
2#include "action_layer.h"
3#include "eeconfig.h"
4#ifdef AUDIO_ENABLE
5 #include "audio.h"
6#endif
7
8// Each layer gets a name for readability, which is then used in the keymap matrix below.
9// The underscores don't mean anything - you can have a layer called STUFF or any other name.
10// Layer names don't all need to be of the same length, obviously, and you can also skip them
11// entirely and just use numbers.
12#define _QWERTY 0
13#define _COLEMAK 1
14#define _DVORAK 2
15#define _GAME 3
16#define _NUMPAD 13
17#define _LOWER 14
18#define _RAISE 15
19#define _ADJUST 16
20
21// Macro name shortcuts
22#define QWERTY M(_QWERTY)
23#define COLEMAK M(_COLEMAK)
24#define DVORAK M(_DVORAK)
25#define GAME M(_GAME)
26#define NUMPAD M(_NUMPAD)
27#define LOWER M(_LOWER)
28#define RAISE M(_RAISE)
29#define M_BL 5
30
31// Fillers to make layering more clear
32#define _______ KC_TRNS
33#define XXXXXXX KC_NO
34
35const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
36
37/* Qwerty
38 * ,-----------------------------------------------------------------------------------.
39 * | Esc | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Bksp |
40 * |------+------+------+------+------+------+------+------+------+------+------+------|
41 * | Tab | Q | W | E | R | T | Y | U | I | O | P | \ |
42 * |------+------+------+------+------+------+------+------+------+------+------+------|
43 * | Esc | A | S | D | F | G | H | J | K | L | ; | " |
44 * |------+------+------+------+------+------+------+------+------+------+------+------|
45 * | Shift| Z | X | C | V | B | N | M | , | . | / |Enter |
46 * |------+------+------+------+------+------+------+------+------+------+------+------|
47 * | Brite| Ctrl | Alt | GUI |Lower | Space | Raise| - | = | [ | ] |
48 * `-----------------------------------------------------------------------------------'
49 */
50[_QWERTY] = {
51 {KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC},
52 {KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSLASH},
53 {LT(_RAISE, KC_ENT), KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT},
54 {KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT },
55 {M(M_BL), KC_LCTL, KC_LALT, KC_LGUI, LOWER, KC_SPC, KC_SPC, RAISE, KC_MINUS, KC_EQUAL, KC_LBRC, KC_RBRC}
56},
57
58/* Colemak
59 * ,-----------------------------------------------------------------------------------.
60 * | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Bksp |
61 * |------+------+------+------+------+------+------+------+------+------+------+------|
62 * | Tab | Q | W | F | P | G | J | L | U | Y | ; | Del |
63 * |------+------+------+------+------+-------------+------+------+------+------+------|
64 * | Esc | A | R | S | T | D | H | N | E | I | O | " |
65 * |------+------+------+------+------+------+------+------+------+------+------+------|
66 * | Shift| Z | X | C | V | B | K | M | , | . | / |Enter |
67 * |------+------+------+------+------+------+------+------+------+------+------+------|
68 * | Brite| Ctrl | Alt | GUI |Lower | Space | Raise| - | = | [ | ] |
69 * `-----------------------------------------------------------------------------------'
70 */
71[_COLEMAK] = {
72 {_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______},
73 {_______, KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, _______},
74 {_______, KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, KC_QUOT},
75 {_______, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMM, KC_DOT, KC_SLSH, _______},
76 {_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______}
77},
78
79/* Dvorak
80 * ,-----------------------------------------------------------------------------------.
81 * | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Bksp |
82 * |------+------+------+------+------+------+------+------+------+------+------+------|
83 * | Tab | " | , | . | P | Y | F | G | C | R | L | Del |
84 * |------+------+------+------+------+-------------+------+------+------+------+------|
85 * | Esc | A | O | E | U | I | D | H | T | N | S | / |
86 * |------+------+------+------+------+------|------+------+------+------+------+------|
87 * | Shift| ; | Q | J | K | X | B | M | W | V | Z |Enter |
88 * |------+------+------+------+------+------+------+------+------+------+------+------|
89 * | Brite| Ctrl | Alt | GUI |Lower | Space | Raise| - | = | [ | ] |
90 * `-----------------------------------------------------------------------------------'
91 */
92[_DVORAK] = {
93 {_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______},
94 {_______, KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y, KC_F, KC_G, KC_C, KC_R, KC_L, _______},
95 {_______, KC_A, KC_O, KC_E, KC_U, KC_I, KC_D, KC_H, KC_T, KC_N, KC_S, _______},
96 {_______, KC_SCLN, KC_Q, KC_J, KC_K, KC_X, KC_B, KC_M, KC_W, KC_V, KC_Z, _______},
97 {_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______}
98},
99
100/* GAME
101 * ,-----------------------------------------------------------------------------------.
102 * | Esc | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Bksp |
103 * |------+------+------+------+------+------+------+------+------+------+------+------|
104 * | Tab | Q | W | E | R | T | Y | U | I | O | P | \ |
105 * |------+------+------+------+------+------+------+------+------+------+------+------|
106 * | CAPS | A | S | D | F | G | H | J | K | L | ; | " |
107 * |------+------+------+------+------+------+------+------+------+------+------+------|
108 * | Shift| Z | X | C | V | B | N | M | , | . | / |Enter |
109 * |------+------+------+------+------+------+------+------+------+------+------+------|
110 * | Brite| Ctrl | Alt | XXX | Lower | Space | Raise| - | = | [ | ] |
111 * `-----------------------------------------------------------------------------------'
112 */
113[_GAME] = {
114 {KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC},
115 {KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSLASH},
116 {KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT},
117 {KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT },
118 {_______, _______, _______, XXXXXXX, _______, _______, _______, _______, _______, _______, _______, _______}
119},
120
121/* NUMPAD
122 * ,-----------------------------------------------------------------------------------.
123 * | Esc | / | * | - | 4 | 5 | 6 | 7 | 8 | 9 | | |
124 * |------+------+------+------+------+------+------+------+------+------+------+------|
125 * | 7 | 8 | 9 | + | R | T | Y | U | I | O | P | \ |
126 * |------+------+------+------+------+------+------+------+------+------+------+------|
127 * | 4 | 5 | 6 | + | F | G | H | J | K | L | ; | " |
128 * |------+------+------+------+------+------+------+------+------+------+------+------|
129 * | 1 | 2 | 3 | Enter| V | B | N | M | , | . | / |Enter |
130 * |------+------+------+------+------+------+------+------+------+------+------+------|
131 * | 0 | 0 | . | Enter| Lower| Space | Raise| - | = | [ | ] |
132 * `-----------------------------------------------------------------------------------'
133 */
134[_NUMPAD] = {
135 {KC_ESC, KC_KP_SLASH, KC_KP_ASTERISK, KC_KP_MINUS, _______, _______, _______, _______, _______, _______, _______, _______},
136 {KC_KP_7, KC_KP_8, KC_KP_9, KC_KP_PLUS, _______, _______, _______, _______, _______, _______, _______, _______},
137 {KC_KP4, KC_KP_5, KC_KP_6, KC_KP_PLUS, _______, _______, _______, _______, _______, _______, _______, _______},
138 {KC_KP_1, KC_KP_2, KC_KP_3, KC_KP_ENTER, _______, _______, _______, _______, _______, _______, _______, _______},
139 {KC_KP_0, KC_KP_0, KC_KP_DOT, KC_KP_ENTER, _______, _______, _______, _______, _______, _______, _______, _______},
140},
141/* Lower
142 * ,-----------------------------------------------------------------------------------.
143 * | ` | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | Del |
144 * |------+------+------+------+------+------+------+------+------+------+------+------|
145 * | Mute | BkSpc| Up | Del | Forwd| MBtn1| MUp| MBtn2| / | 7 | 8 | 9 |
146 * |------+------+------+------+------+------+------+------+------+------+------+------|
147 * | | Left | Down | Right| Refr MLeft| MDn |MRight| * | 4 | 5 | 6 |
148 * |------+------+------+------+------+------+------+------+------+------+------+------|
149 * | Vol+| Prev | Play | Next | Back | MWDn| MBtn3| MWUp | - | 1 | 2 | 3 |
150 * |------+------+------+------+------+------+------+------+------+------+------+------|
151 * | Vol- | Pause| Ins | Print| | | | + | Enter| 0 | . |
152 * `-----------------------------------------------------------------------------------'
153 */
154[_LOWER] = {
155 {KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_DEL},
156 {KC_MUTE, KC_BSPC, KC_UP, KC_DEL, KC_WWW_FORWARD, KC_MS_BTN1, KC_MS_UP, KC_MS_BTN2, KC_KP_SLASH, KC_KP_7, KC_KP_8, KC_KP_9},
157 {_______, KC_LEFT, KC_DOWN, KC_RIGHT, KC_WWW_REFRESH, KC_MS_LEFT, KC_MS_DOWN, KC_MS_RIGHT, KC_KP_ASTERISK, KC_KP4, KC_KP_5, KC_KP_6},
158 {KC_VOLU, KC_MPRV, KC_MPLY, KC_MNXT, KC_WWW_BACK, KC_MS_WH_DOWN, KC_MS_BTN3, KC_MS_WH_UP, KC_KP_MINUS, KC_KP_1, KC_KP_2, KC_KP_3},
159 {KC_VOLD, KC_PAUSE, KC_INS, KC_PSCREEN, _______, _______, _______, _______, KC_KP_PLUS, KC_KP_ENTER, KC_KP_0, KC_KP_DOT}
160},
161
162/* Raise
163 * ,-----------------------------------------------------------------------------------.
164 * | ~ | ! | @ | # | $ | % | ^ | & | * | ( | ) | |
165 * |------+------+------+------+------+------+------+------+------+------+------+------|
166 * | | Bksp | PgUp | Del | | | | PgUp | Up | PgDn | | |
167 * |------+------+------+------+------+------+------+------+------+------+------+------|
168 * | | Home | PgDn | End | | | Home | Left | Down | Right| ] | \ |
169 * |------+------+------+------+------+------+------+------+------+------+------+------|
170 * | | | | | | | | End | | | |Enter |
171 * |------+------+------+------+------+------+------+------+------+------+------+------|
172 * | | | | | | | | | | | |
173 * `-----------------------------------------------------------------------------------'
174 */
175[_RAISE] = {
176 {KC_GRV, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_BSPC},
177 {_______, KC_BSPC, KC_PGUP, KC_DEL, _______, _______, _______, KC_PGUP, KC_UP, _______, _______, _______},
178 {_______, KC_HOME, KC_PGDN, KC_END, _______, _______, KC_HOME, KC_LEFT, KC_DOWN, KC_RIGHT, _______, _______},
179 {_______, _______, _______, _______, _______, _______, _______, KC_END, _______, _______, _______, _______},
180 {_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______}
181},
182
183/* Adjust (Lower + Raise)
184 * ,-----------------------------------------------------------------------------------.
185 * | | |qwerty|ColMak|Dvorak| | | | | | | |
186 * |------+------+------+------+------+------+------+------+------+------+------+------|
187 * | | | |AGNorm|AGSwap| | | | | | | |
188 * |------+------+------+------+------+------+------+------+------+------+------+------|
189 * | | | |Aud On|AudOff|MidiOn|MdiOff| | | | | |
190 * |------+------+------+------+------+------+------+------+------+------+------+------|
191 * | |Voice-|Voice+|Mus On|MusOff| Sleep| Wake | Arrow| Game | | | |
192 * |------+------+------+------+------+------+------+------+------+------+------+------|
193 * | | | | | | Reset | | | | | |
194 * `-----------------------------------------------------------------------------------'
195 */
196[_ADJUST] = {
197 {_______, _______, QWERTY, COLEMAK, DVORAK, _______, _______, _______, _______, _______, _______, _______},
198 {_______, RESET, _______, AG_NORM, AG_SWAP, _______, _______, _______, _______, _______, _______, KC_DEL},
199 {_______, _______, _______, AU_ON, AU_OFF, MI_ON, MI_OFF, QWERTY, COLEMAK, DVORAK, _______, _______},
200 {_______, MUV_DE, MUV_IN, MU_ON, MU_OFF, KC_SYSTEM_SLEEP, KC_SYSTEM_WAKE, ARROW, GAME, _______, _______, _______},
201 {_______, _______, _______, _______, _______, RESET, RESET, _______, _______, _______, _______, _______}
202}
203
204
205};
206
207const uint16_t PROGMEM fn_actions[] = {
208
209};
210
211#ifdef AUDIO_ENABLE
212float start_up[][2] = {
213 {440.0*pow(2.0,(14)/12.0), 20},
214 {440.0*pow(2.0,(26)/12.0), 8},
215 {440.0*pow(2.0,(18)/12.0), 20},
216 {440.0*pow(2.0,(26)/12.0), 8}
217};
218
219float tone_qwerty[][2] = SONG(QWERTY_SOUND);
220float tone_dvorak[][2] = SONG(DVORAK_SOUND);
221float tone_colemak[][2] = SONG(COLEMAK_SOUND);
222
223float goodbye[][2] = SONG(GOODBYE_SOUND);
224#endif
225
226void persistant_default_layer_set(uint16_t default_layer) {
227 eeconfig_update_default_layer(default_layer);
228 default_layer_set(default_layer);
229}
230
231const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt)
232{
233 switch(id) {
234 case _QWERTY:
235 if (record->event.pressed) {
236 #ifdef AUDIO_ENABLE
237 PLAY_NOTE_ARRAY(tone_qwerty, false, 0);
238 #endif
239 persistant_default_layer_set(1UL<<_QWERTY);
240 }
241 break;
242 case _COLEMAK:
243 if (record->event.pressed) {
244 #ifdef AUDIO_ENABLE
245 PLAY_NOTE_ARRAY(tone_colemak, false, 0);
246 #endif
247 persistant_default_layer_set(1UL<<_COLEMAK);
248 }
249 break;
250 case _DVORAK:
251 if (record->event.pressed) {
252 #ifdef AUDIO_ENABLE
253 PLAY_NOTE_ARRAY(tone_dvorak, false, 0);
254 #endif
255 persistant_default_layer_set(1UL<<_DVORAK);
256 }
257 break;
258 case _GAME:
259 if (record->event.pressed) {
260 #ifdef AUDIO_ENABLE
261 PLAY_NOTE_ARRAY(tone_colemak, false, 0);
262 #endif
263 persistant_default_layer_set(1UL<<_GAME);
264 }
265 break;
266 case _NUMPAD:
267 if (record->event.pressed) {
268 #ifdef AUDIO_ENABLE
269 PLAY_NOTE_ARRAY(tone_dvorak, false, 0);
270 #endif
271 persistant_default_layer_set(1UL<<_NUMPAD);
272 }
273 break;
274 case _LOWER:
275 if (record->event.pressed) {
276 layer_on(_LOWER);
277 update_tri_layer(_LOWER, _RAISE, _ADJUST);
278 } else {
279 layer_off(_LOWER);
280 update_tri_layer(_LOWER, _RAISE, _ADJUST);
281 }
282 break;
283 case _RAISE:
284 if (record->event.pressed) {
285 layer_on(_RAISE);
286 update_tri_layer(_LOWER, _RAISE, _ADJUST);
287 } else {
288 layer_off(_RAISE);
289 update_tri_layer(_LOWER, _RAISE, _ADJUST);
290 }
291 break;
292 case M_BL:
293 if (record->event.pressed) {
294 register_code(KC_RSFT);
295 #ifdef BACKLIGHT_ENABLE
296 backlight_step();
297 #endif
298 } else {
299 unregister_code(KC_RSFT);
300 }
301 break;
302 }
303 return MACRO_NONE;
304};
305
306
307void matrix_init_user(void) {
308 #ifdef AUDIO_ENABLE
309 _delay_ms(20); // gets rid of tick
310 PLAY_NOTE_ARRAY(start_up, false, 0);
311 #endif
312}
313
314#ifdef AUDIO_ENABLE
315
316void play_goodbye_tone()
317{
318 PLAY_NOTE_ARRAY(goodbye, false, 0);
319 _delay_ms(150);
320}
321
322#endif