summaryrefslogtreecommitdiff
path: root/keyboards/crkbd/keymaps/devdev/keymap.c
diff options
context:
space:
mode:
Diffstat (limited to 'keyboards/crkbd/keymaps/devdev/keymap.c')
-rw-r--r--keyboards/crkbd/keymaps/devdev/keymap.c396
1 files changed, 0 insertions, 396 deletions
diff --git a/keyboards/crkbd/keymaps/devdev/keymap.c b/keyboards/crkbd/keymaps/devdev/keymap.c
deleted file mode 100644
index 0327101157..0000000000
--- a/keyboards/crkbd/keymaps/devdev/keymap.c
+++ /dev/null
@@ -1,396 +0,0 @@
1/* Copyright 2020 Dane Evans
2 *
3 * This program is free software: you can redistribute it and/or modify
4 * it under the terms of the GNU General Public License as published by
5 * the Free Software Foundation, either version 2 of the License, or
6 * (at your option) any later version.
7 *
8 * This program is distributed in the hope that it will be useful,
9 * but WITHOUT ANY WARRANTY; without even the implied warranty of
10 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11 * GNU General Public License for more details.
12 *
13 * You should have received a copy of the GNU General Public License
14 * along with this program. If not, see <http://www.gnu.org/licenses/>.
15 */
16
17// CRKBD
18
19#include QMK_KEYBOARD_H
20
21
22char layer_state_str[24];
23
24
25 enum userspace_layers {
26 _DEFAULTS = 0,
27 _COLEMAK = 0,
28 _COLEMAKDH,
29 _QWERTY,
30 _NUM,
31 _SYM,
32 _COMMAND,
33 _NUMPAD,
34 _SWITCH,
35 _MOVE,
36
37};
38
39const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
40
41 // colemak
42 [_COLEMAK] = LAYOUT(
43 //,-----------------------------------------------------. ,-----------------------------------------------------.
44 LT(_NUMPAD,KC_TAB), KC_Q, KC_W, KC_F, KC_P, KC_G, LT(_SWITCH,KC_J), KC_L, KC_U, KC_Y, KC_SCLN, KC_BSPC,
45 //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------|
46 KC_LSFT, KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I,LT(_NUMPAD,KC_O),KC_QUOT,
47 //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------|
48 KC_LCTL, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT,
49 //|--------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------|
50 KC_LGUI, MO(_NUM), KC_SPC, KC_ENT, MO(_SYM), KC_LALT
51 //`--------------------------' `--------------------------'
52 ),
53
54 // colemak DH
55 [_COLEMAKDH] = LAYOUT(
56 //,-----------------------------------------------------. ,-----------------------------------------------------.
57 LT(_NUMPAD,KC_TAB), KC_Q, KC_W, KC_F, KC_P, KC_B, LT(_SWITCH,KC_J), KC_L, KC_U, KC_Y, KC_SCLN, KC_BSPC,
58 //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------|
59 KC_LSFT, KC_A, KC_R, KC_S, KC_T, KC_G, KC_M, KC_N, KC_E, KC_I,LT(_NUMPAD,KC_O),KC_QUOT,
60 //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------|
61 KC_LCTL, KC_Z, KC_X, KC_C, KC_D, KC_V, KC_K, KC_H, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT,
62 //|--------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------|
63 KC_LGUI, MO(_NUM), KC_SPC, KC_ENT, MO(_SYM), KC_LALT
64 //`--------------------------' `--------------------------'
65 ),
66
67 // qwerty
68 [_QWERTY] = LAYOUT(
69 //,-----------------------------------------------------. ,-----------------------------------------------------.
70 KC_TRNS, KC_Q, KC_W, KC_E, KC_R, KC_T, LT(_SWITCH,KC_Y), KC_U, KC_I, KC_O, KC_P, KC_TRNS,
71 //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------|
72 KC_TRNS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, LT(_NUMPAD,KC_SCLN), KC_TRNS,
73 //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------|
74 KC_TRNS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_TRNS,
75 //|--------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------|
76 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
77 //`--------------------------' `--------------------------'
78 ),
79
80
81
82 // numbers - L thumb
83 [_NUM] = LAYOUT(
84 //,-----------------------------------------------------. ,-----------------------------------------------------.
85 KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC,
86 //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------|
87 KC_TRNS, KC_NO, KC_NO, KC_NO, KC_WH_U, KC_PGUP, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, KC_NO, KC_DEL,
88 //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------|
89 KC_TRNS, KC_NO, KC_NO, KC_NO, KC_WH_D, KC_PGDN, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO,
90 //|--------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------|
91 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, MO(_COMMAND), KC_TRNS
92 //`--------------------------' `--------------------------'
93 ),
94
95 // symbols - R thumb
96 [_SYM] = LAYOUT(
97 //,-----------------------------------------------------. ,-----------------------------------------------------.
98 KC_ESC, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_BSPC,
99 //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------|
100 KC_TRNS, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_MINS, KC_EQL, KC_LCBR, KC_RCBR, KC_PIPE, KC_GRV,
101 //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------|
102 KC_TRNS, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_UNDS, KC_PLUS, KC_LBRC, KC_RBRC, KC_BSLS, KC_TILD,
103 //|--------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------|
104 KC_TRNS, MO(_COMMAND), KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
105 //`--------------------------' `--------------------------'
106 ),
107
108 // commands - both thumbs
109 [_COMMAND] = LAYOUT(
110 //,-----------------------------------------------------. ,-----------------------------------------------------.
111 QK_BOOT, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_NO,
112 //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------|
113 RGB_TOG, RGB_HUI, RGB_SAI, RGB_VAI, DF(1), DF(0), C(G(KC_LEFT)), KC_NO, KC_NO, C(G(KC_RGHT)), KC_NO, KC_NO,
114 //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------|
115 RGB_MOD, RGB_HUD, RGB_SAD, RGB_VAD, KC_NO, DF(2), KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO,
116 //|--------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------|
117 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
118 //`--------------------------' `--------------------------'
119 ),
120
121 // numpad
122 [_NUMPAD] = LAYOUT(
123 //,-----------------------------------------------------. ,-----------------------------------------------------.
124 LT(0,KC_NO), KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_CIRC, KC_P7, KC_P8, KC_P9, KC_ASTR, KC_BSPC,
125 //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------|
126 KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_MINS, KC_P4, KC_P5, KC_P6, KC_EQL, KC_DEL,
127 //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------|
128 KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_PLUS, KC_P1, KC_P2, KC_P3, KC_SLSH, KC_NO,
129 //|--------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------|
130 OSM(MOD_MEH), KC_NO, KC_TRNS, KC_ENT, KC_P0, KC_PDOT
131 //`--------------------------' `--------------------------'
132 ),
133
134 // layer switcher
135 [_SWITCH] = LAYOUT(
136 //,-----------------------------------------------------. ,-----------------------------------------------------.
137 TO(0), TO(1), TO(2), TO(3), TO(4), TO(5), KC_NO, TO(7), KC_NO, KC_NO, KC_NO, QK_BOOT,
138 //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------|
139 KC_NO, KC_NO, KC_BRIU, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, EE_CLR,
140 //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------|
141 KC_SYSTEM_SLEEP, KC_NO, KC_BRID, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO,
142 //|--------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------|
143 KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO
144 //`--------------------------' `--------------------------'
145
146 ),
147
148 // amovement
149 [_MOVE] = LAYOUT(
150 //,-----------------------------------------------------. ,-----------------------------------------------------.
151 LT(0,KC_NO), KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_HOME, KC_UP, KC_PGUP, KC_NO, KC_NO, KC_NO,
152 //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------|
153 KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_LEFT, KC_ENT, KC_RGHT, KC_NO, KC_NO, KC_NO,
154 //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------|
155 KC_APP, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_END, KC_DOWN, KC_PGDN, KC_DEL, KC_NO, KC_NO,
156 //|--------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------|
157 KC_NO, KC_NO, KC_NO, KC_TRNS, KC_NO, KC_NO
158 //`--------------------------' `--------------------------'
159 )
160
161};
162
163
164// it appears that these are different to the board numbering.
165// when you specify n here, it lightss up n+1 on the board diagram - actually may be an entirely different pattern
166
167// _QWERTY,
168// Light on inner column and underglow
169const rgblight_segment_t PROGMEM layer_qwerty_lights[] = RGBLIGHT_LAYER_SEGMENTS(
170 {0, 10, HSV_AZURE}
171);
172
173// _COLEMAKDH,
174// Light on inner column and underglow
175const rgblight_segment_t PROGMEM layer_colemakdh_lights[] = RGBLIGHT_LAYER_SEGMENTS(
176 {0, 10, HSV_RED}
177);
178
179// _NUM,
180// Light on inner column and underglow
181const rgblight_segment_t PROGMEM layer_num_lights[] = RGBLIGHT_LAYER_SEGMENTS(
182 {0, 10, HSV_TEAL}
183);
184// _SYMBOL,
185// Light on inner column and underglow
186const rgblight_segment_t PROGMEM layer_symbol_lights[] = RGBLIGHT_LAYER_SEGMENTS(
187 {0, 10, HSV_BLUE}
188);
189// _COMMAND,
190// Light on inner column and underglow
191const rgblight_segment_t PROGMEM layer_command_lights[] = RGBLIGHT_LAYER_SEGMENTS(
192 {0, 10, HSV_PURPLE}
193);
194
195
196//_NUMPAD
197//havent worked out how to do each side individually either
198const rgblight_segment_t PROGMEM layer_numpad_lights[] = RGBLIGHT_LAYER_SEGMENTS(
199{0, 10, HSV_ORANGE}
200);
201const rgblight_segment_t PROGMEM layer_numpad_rh_lights[] = RGBLIGHT_LAYER_SEGMENTS(
202 {0, 10, HSV_ORANGE},
203 {10, 5, HSV_BLUE},
204 {15, 3, HSV_BLUE},
205 {18, 3, HSV_BLUE}
206);
207
208// _MOVE,
209// Light on inner column and underglow
210const rgblight_segment_t PROGMEM layer_move_lights[] = RGBLIGHT_LAYER_SEGMENTS(
211 {0, 10, HSV_PINK}
212);
213
214// _SWITCHER // light up top row
215const rgblight_segment_t PROGMEM layer_switcher_lights[] = RGBLIGHT_LAYER_SEGMENTS(
216 {0, 6, HSV_GREEN},
217 {9, 2, HSV_GREEN},
218 {17, 2, HSV_GREEN},
219 {23, 2, HSV_GREEN}
220);
221
222
223// Now define the array of layers. Later layers take precedence
224const rgblight_segment_t* const PROGMEM my_rgb_layers[] = RGBLIGHT_LAYERS_LIST(
225 layer_qwerty_lights,
226 layer_colemakdh_lights,
227 layer_num_lights,// overrides layer 1
228 layer_symbol_lights,
229 layer_command_lights,
230 layer_numpad_lights,
231 layer_numpad_rh_lights,
232 layer_move_lights,
233 layer_switcher_lights // Overrides other layers
234);
235
236void keyboard_post_init_user(void) {
237 // Enable the LED layers
238 rgblight_layers = my_rgb_layers;
239 rgblight_mode(10);// haven't found a way to set this in a more useful way
240
241}
242
243
244layer_state_t layer_state_set_user(layer_state_t state) {
245 rgblight_set_layer_state(0, layer_state_cmp(state, _DEFAULTS) && layer_state_cmp(default_layer_state,_QWERTY));
246 rgblight_set_layer_state(1, layer_state_cmp(state, _DEFAULTS) && layer_state_cmp(default_layer_state,_QWERTY));
247
248 rgblight_set_layer_state(2, layer_state_cmp(state, _NUM));
249 rgblight_set_layer_state(3, layer_state_cmp(state, _SYM));
250 rgblight_set_layer_state(4, layer_state_cmp(state, _COMMAND));
251 rgblight_set_layer_state(5, layer_state_cmp(state, _NUMPAD));
252 if (!is_keyboard_master())
253 rgblight_set_layer_state(6, layer_state_cmp(state, _NUMPAD));
254 rgblight_set_layer_state(7, layer_state_cmp(state, _MOVE));
255 rgblight_set_layer_state(8, layer_state_cmp(state, _SWITCH));
256 return state;
257}
258
259/*
260bool led_update_user(led_t led_state) {
261 rgblight_set_layer_state(0, led_state.caps_lock);
262 return true;
263}
264*/
265
266#ifdef OLED_ENABLE
267oled_rotation_t oled_init_user(oled_rotation_t rotation) {
268 if (!is_keyboard_master()) {
269 return OLED_ROTATION_180; // flips the display 180 degrees if offhand
270 }
271 return rotation;
272}
273// When add source files to SRC in rules.mk, you can use functions.
274const char *read_layer_state(void);
275const char *read_logo(void);
276void set_keylog(uint16_t keycode, keyrecord_t *record);
277const char *read_keylog(void);
278const char *read_keylogs(void);
279
280
281const char *read_mode_icon(bool swap);
282// const char *read_host_led_state(void);
283// void set_timelog(void);
284// const char *read_timelog(void);
285
286
287void oled_render_layer_state(void) {
288 char string [24];
289 switch (get_highest_layer(default_layer_state|layer_state))
290 {
291 case _QWERTY:
292 oled_write_ln_P(PSTR("Layer: QWERTY"),false);
293 break;
294 case _COLEMAK:
295 oled_write_ln_P(PSTR("Layer: COLEMAK"),false);
296 break;
297 case _COLEMAKDH:
298 oled_write_ln_P(PSTR("Layer: COLEMAKDH"),false);
299 break;
300 case _NUM:
301 oled_write_ln_P(PSTR("Layer: Numbers"),false);
302 break;
303 case _SYM:
304 oled_write_ln_P(PSTR("Layer: Symbols"),false);
305 break;
306 case _COMMAND:
307 oled_write_ln_P(PSTR("Layer: Command"),false);
308 break;
309 case _NUMPAD:
310 oled_write_ln_P(PSTR("Layer: Numpad"),false);
311 break;
312 case _MOVE:
313 oled_write_ln_P(PSTR("Layer: Movement"),false);
314 break;
315 case _SWITCH:
316 oled_write_ln_P(PSTR("Layer: Layer Switch"),false);
317 break;
318 default:
319#if defined (LAYER_STATE_32BIT)
320 snprintf(string, sizeof(string), "%ld",layer_state);
321#else
322 snprintf(string, sizeof(string), "%d",layer_state);
323#endif
324 oled_write_P(PSTR("Layer: Undef-"),false);
325 oled_write_ln(string, false);
326 }
327}
328
329char keylog_str[24] = {};
330const char code_to_name[60] = {
331 ' ', ' ', ' ', ' ', 'a', 'b', 'c', 'd', 'e', 'f',
332 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p',
333 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z',
334 '1', '2', '3', '4', '5', '6', '7', '8', '9', '0',
335 'R', 'E', 'B', 'T', '_', '-', '=', '[', ']', '\\',
336 '#', ';', '\'', '`', ',', '.', '/', ' ', ' ', ' '};
337
338void set_keylog(uint16_t keycode, keyrecord_t *record) {
339 char name = ' ';
340 if ((keycode >= QK_MOD_TAP && keycode <= QK_MOD_TAP_MAX) ||
341 (keycode >= QK_LAYER_TAP && keycode <= QK_LAYER_TAP_MAX)) { keycode = keycode & 0xFF; }
342 if (keycode < 60) {
343 name = code_to_name[keycode];
344 }
345
346 // update keylog
347 snprintf(keylog_str, sizeof(keylog_str), "%dx%d, k%2d : %c",
348 record->event.key.row, record->event.key.col,
349 keycode, name);
350}
351
352void oled_render_keylog(void) {
353 oled_write(keylog_str, false);
354}
355
356void render_bootmagic_status(bool status) {
357 /* Show Ctrl-Gui Swap options */
358 static const char PROGMEM logo[][2][3] = {
359 {{0x97, 0x98, 0}, {0xb7, 0xb8, 0}},
360 {{0x95, 0x96, 0}, {0xb5, 0xb6, 0}},
361 };
362 if (status) {
363 oled_write_ln_P(logo[0][0], false);
364 oled_write_ln_P(logo[0][1], false);
365 } else {
366 oled_write_ln_P(logo[1][0], false);
367 oled_write_ln_P(logo[1][1], false);
368 }
369}
370
371void oled_render_logo(void) {
372 static const char PROGMEM crkbd_logo[] = {
373 0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, 0x88, 0x89, 0x8a, 0x8b, 0x8c, 0x8d, 0x8e, 0x8f, 0x90, 0x91, 0x92, 0x93, 0x94,
374 0xa0, 0xa1, 0xa2, 0xa3, 0xa4, 0xa5, 0xa6, 0xa7, 0xa8, 0xa9, 0xaa, 0xab, 0xac, 0xad, 0xae, 0xaf, 0xb0, 0xb1, 0xb2, 0xb3, 0xb4,
375 0xc0, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7, 0xc8, 0xc9, 0xca, 0xcb, 0xcc, 0xcd, 0xce, 0xcf, 0xd0, 0xd1, 0xd2, 0xd3, 0xd4,
376 0};
377 oled_write_P(crkbd_logo, false);
378}
379
380bool oled_task_user(void) {
381 if (is_keyboard_master()) {
382 oled_render_layer_state();
383 oled_render_keylog();
384 } else {
385 oled_render_logo();
386 }
387 return false;
388}
389
390bool process_record_user(uint16_t keycode, keyrecord_t *record) {
391 if (record->event.pressed) {
392 set_keylog(keycode, record);
393 }
394 return true;
395}
396#endif // OLED_ENABLE