aboutsummaryrefslogtreecommitdiff
path: root/keyboards/sofle/keymaps/devdev/keymap.c
diff options
context:
space:
mode:
Diffstat (limited to 'keyboards/sofle/keymaps/devdev/keymap.c')
-rw-r--r--keyboards/sofle/keymaps/devdev/keymap.c571
1 files changed, 571 insertions, 0 deletions
diff --git a/keyboards/sofle/keymaps/devdev/keymap.c b/keyboards/sofle/keymaps/devdev/keymap.c
new file mode 100644
index 000000000..7d100abb6
--- /dev/null
+++ b/keyboards/sofle/keymaps/devdev/keymap.c
@@ -0,0 +1,571 @@
1
2 /* Copyright 2021 Dane Evans
3 *
4 * This program is free software: you can redistribute it and/or modify
5 * it under the terms of the GNU General Public License as published by
6 * the Free Software Foundation, either version 2 of the License, or
7 * (at your option) any later version.
8 *
9 * This program is distributed in the hope that it will be useful,
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 * GNU General Public License for more details.
13 *
14 * You should have received a copy of the GNU General Public License
15 * along with this program. If not, see <http://www.gnu.org/licenses/>.
16 */
17 // SOFLE RGB
18#include <stdio.h>
19
20#include QMK_KEYBOARD_H
21
22#define INDICATOR_BRIGHTNESS 30
23
24#define HSV_OVERRIDE_HELP(h, s, v, Override) h, s , Override
25#define HSV_OVERRIDE(hsv, Override) HSV_OVERRIDE_HELP(hsv,Override)
26
27// Light combinations
28#define SET_INDICATORS(hsv) \
29 {0, 1, HSV_OVERRIDE_HELP(hsv, INDICATOR_BRIGHTNESS)}, \
30 {35+0, 1, hsv}
31#define SET_UNDERGLOW(hsv) \
32 {1, 5, hsv}, \
33 {35+1, 5,hsv}
34#define SET_NUMPAD(hsv) \
35 {35+15, 5, hsv},\
36 {35+22, 3, hsv},\
37 {35+27, 3, hsv}
38#define SET_NUMROW(hsv) \
39 {10, 2, hsv}, \
40 {20, 2, hsv}, \
41 {30, 2, hsv}, \
42 {35+ 10, 2, hsv}, \
43 {35+ 20, 2, hsv}, \
44 {35+ 30, 2, hsv}
45#define SET_INNER_COL(hsv) \
46 {33, 4, hsv}, \
47 {35+ 33, 4, hsv}
48
49#define SET_OUTER_COL(hsv) \
50 {7, 4, hsv}, \
51 {35+ 7, 4, hsv}
52#define SET_THUMB_CLUSTER(hsv) \
53 {25, 2, hsv}, \
54 {35+ 25, 2, hsv}
55#define SET_LAYER_ID(hsv) \
56 {0, 1, HSV_OVERRIDE_HELP(hsv, INDICATOR_BRIGHTNESS)}, \
57 {35+0, 1, HSV_OVERRIDE_HELP(hsv, INDICATOR_BRIGHTNESS)}, \
58 {1, 5, hsv}, \
59 {35+1, 5, hsv}, \
60 {7, 4, hsv}, \
61 {35+ 7, 4, hsv}, \
62 {25, 2, hsv}, \
63 {35+ 25, 2, hsv}
64
65
66enum sofle_layers {
67 _DEFAULTS = 0,
68 _QWERTY = 0,
69 _COLEMAK,
70 _COLEMAKDH,
71 _LOWER,
72 _RAISE,
73 _ADJUST,
74 _NUMPAD,
75 _SWITCH
76};
77
78enum custom_keycodes {
79 KC_QWERTY = SAFE_RANGE,
80 KC_COLEMAK,
81 KC_COLEMAKDH,
82 KC_LOWER,
83 KC_RAISE,
84 KC_ADJUST,
85 KC_D_MUTE
86};
87
88const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
89/*
90 * QWERTY
91 * ,-----------------------------------------. ,-----------------------------------------.
92 * | ESC | 1 | 2 | 3 | 4 | 5 | | 6 | 7 | 8 | 9 | 0 | ` |
93 * |------+------+------+------+------+------| |------+------+------+------+------+------|
94 * | TAB | Q | W | E | R | T | | Y | U | I | O | P | Bspc |
95 * |------+------+------+------+------+------| |------+------+------+------+------+------|
96 * |LShift| A | S | D | F | G |-------. ,-------| H | J | K | L | ; | ' |
97 * |------+------+------+------+------+------| MUTE | |DISCORD|------+------+------+------+------+------|
98 * | LCTR | Z | X | C | V | B |-------| |-------| N | M | , | . | / |LShift|
99 * `-----------------------------------------/ / \ \-----------------------------------------'
100 * | Bspc | WIN |LOWER | Enter| /Space / \Enter \ |SPACE |RAISE | RCTR | RAlt |
101 * | | | | |/ / \ \ | | | | |
102 * `----------------------------------' '------''---------------------------'
103 */
104 [_QWERTY] = LAYOUT(
105 //,------------------------------------------------. ,---------------------------------------------------.
106 KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, LT(_SWITCH,KC_6), KC_7, KC_8, KC_9, KC_0, KC_GRV,
107 //|------+-------+--------+--------+--------+------| |--------+-------+--------+--------+--------+---------|
108 LT(_NUMPAD,KC_TAB),KC_Q,KC_W,KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC,
109 //|------+-------+--------+--------+--------+------| |--------+-------+--------+--------+--------+---------|
110 KC_LSFT, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT,
111 //|------+-------+--------+--------+--------+------| === | | === |--------+-------+--------+--------+--------+---------|
112 KC_LCTRL, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_MUTE, KC_D_MUTE,KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_LSFT,
113 //|------+-------+--------+--------+--------+------| === | | === |--------+-------+--------+--------+--------+---------|
114 KC_BSPC, KC_LGUI, KC_LOWER, KC_SPC, KC_ENT , KC_SPC, KC_ENT , KC_RAISE, KC_RCTRL, KC_RALT
115 // \--------+--------+--------+---------+-------| |--------+---------+--------+---------+-------/
116),
117
118/*
119 * COLEMAK
120 * ,-----------------------------------------. ,-----------------------------------------.
121 * | ESC | 1 | 2 | 3 | 4 | 5 | | 6 | 7 | 8 | 9 | 0 | ` |
122 * |------+------+------+------+------+------| |------+------+------+------+------+------|
123 * | TAB | Q | W | F | P | G | | J | L | U | Y | ; | Bspc |
124 * |------+------+------+------+------+------| |------+------+------+------+------+------|
125 * |LShift| A | R | S | T | D |-------. ,-------| H | N | E | I | O | ' |
126 * |------+------+------+------+------+------| MUTE | |DISCORD|------+------+------+------+------+------|
127 * | LCTR | Z | X | C | V | B |-------| |-------| K | M | , | . | / |LShift|
128 * `-----------------------------------------/ / \ \-----------------------------------------'
129 * | Bspc | WIN |LOWER | Enter| /Space / \Enter \ |SPACE |RAISE | RCTR | RAlt |
130 * | | | | |/ / \ \ | | | | |
131 * `----------------------------------' '------''---------------------------'
132 */
133[_COLEMAK] = LAYOUT(
134 //,------------------------------------------------. ,---------------------------------------------------.
135 KC_TRNS, KC_1, KC_2, KC_3, KC_4, KC_5, LT(_SWITCH,KC_6), KC_7, KC_8, KC_9, KC_0, KC_TRNS,
136 //|------+-------+--------+--------+--------+------| |--------+-------+--------+--------+--------+---------|
137 KC_TRNS, KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_TRNS,
138 //|------+-------+--------+--------+--------+------| |--------+-------+--------+--------+--------+---------|
139 KC_TRNS, KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, KC_TRNS,
140 //|------+-------+--------+--------+--------+------| === | | === |--------+-------+--------+--------+--------+---------|
141 KC_TRNS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_TRNS, KC_TRNS,KC_K, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_TRNS,
142 //|------+-------+--------+--------+--------+------| === | | === |--------+-------+--------+--------+--------+---------|
143 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
144 // \--------+--------+--------+---------+-------| |--------+---------+--------+---------+-------/
145),
146
147/*
148 * COLEMAK-DH
149 * ,-----------------------------------------. ,-----------------------------------------.
150 * | ESC | 1 | 2 | 3 | 4 | 5 | | 6 | 7 | 8 | 9 | 0 | ` |
151 * |------+------+------+------+------+------| |------+------+------+------+------+------|
152 * | TAB | Q | W | F | P | B | | J | L | U | Y | ; | Bspc |
153 * |------+------+------+------+------+------| |------+------+------+------+------+------|
154 * |LShift| A | R | S | T | G |-------. ,-------| M | N | E | I | O | ' |
155 * |------+------+------+------+------+------| MUTE | |DISCORD|------+------+------+------+------+------|
156 * | LCTR | Z | X | C | D | V |-------| |-------| K | H | , | . | / |LShift|
157 * `-----------------------------------------/ / \ \-----------------------------------------'
158 * | Bspc | WIN |LOWER | Enter| /Space / \Enter \ |SPACE |RAISE | RCTR | RAlt |
159 * | | | | |/ / \ \ | | | | |
160 * `----------------------------------' '------''---------------------------'
161 */
162[_COLEMAKDH] = LAYOUT(
163 //,------------------------------------------------. ,---------------------------------------------------.
164 KC_TRNS, KC_1, KC_2, KC_3, KC_4, KC_5, LT(_SWITCH,KC_6), KC_7, KC_8, KC_9, KC_0, KC_TRNS,
165 //|------+-------+--------+--------+--------+------| |--------+-------+--------+--------+--------+---------|
166 KC_TRNS, KC_Q, KC_W, KC_F, KC_P, KC_B, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_TRNS,
167 //|------+-------+--------+--------+--------+------| |--------+-------+--------+--------+--------+---------|
168 KC_TRNS, KC_A, KC_R, KC_S, KC_T, KC_G, KC_M, KC_N, KC_E, KC_I, KC_O, KC_TRNS,
169 //|------+-------+--------+--------+--------+------| === | | === |--------+-------+--------+--------+--------+---------|
170 KC_TRNS, KC_Z, KC_X, KC_C, KC_D, KC_V, KC_TRNS, KC_TRNS,KC_K, KC_H, KC_COMM, KC_DOT, KC_SLSH, KC_TRNS,
171 //|------+-------+--------+--------+--------+------| === | | === |--------+-------+--------+--------+--------+---------|
172 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
173 // \--------+--------+--------+---------+-------| |--------+---------+--------+---------+-------/
174),
175
176/* LOWER
177 * ,-----------------------------------------. ,-----------------------------------------.
178 * | trans| F1 | F2 | F3 | F4 | F5 | | F6 | F7 | F8 | F9 | F10 | F11 |
179 * |------+------+------+------+------+------| |------+------+------+------+------+------|
180 * | ` | 1 | 2 | 3 | 4 | 5 | | 6 | 7 | 8 | 9 | 0 | F12 |
181 * |------+------+------+------+------+------| |------+------+------+------+------+------|
182 * | trans| ! | @ | # | $ | % |-------. ,-------| ^ | & | * | ( | ) | | |
183 * |------+------+------+------+------+------| MUTE | | |------+------+------+------+------+------|
184 * | trans| = | - | + | { | } |-------| |-------| [ | ] | ; | : | \ | Shift|
185 * `-----------------------------------------/ / \ \-----------------------------------------'
186 * | Bspc | WIN |LOWER | Enter| /Space / \Enter \ |SPACE |RAISE | RCTR | RAlt |
187 * | | | | |/ / \ \ | | | | |
188 * `----------------------------------' '------''---------------------------'
189 */
190[_LOWER] = LAYOUT(
191 //,------------------------------------------------. ,---------------------------------------------------.
192 _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11,
193 //|------+-------+--------+--------+--------+------| |--------+-------+--------+--------+--------+---------|
194 KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC,
195 //|------+-------+--------+--------+--------+------| |--------+-------+--------+--------+--------+---------|
196 _______, KC_NO, KC_NO, KC_NO, KC_WH_U, KC_PGUP, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, KC_NO, KC_DEL,
197 //|------+-------+--------+--------+--------+------| === | | === |--------+-------+--------+--------+--------+---------|
198 _______, KC_NO, KC_NO, KC_NO, KC_WH_D, KC_PGDN,_______, _______,KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, _______,
199 //|------+-------+--------+--------+--------+------| === | | === |--------+-------+--------+--------+--------+---------|
200 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
201 // \--------+--------+--------+---------+-------| |--------+---------+--------+---------+-------/
202),
203/* RAISE
204 * ,----------------------------------------. ,-----------------------------------------.
205 * | | | | | | | | | | | | | |
206 * |------+------+------+------+------+------| |------+------+------+------+------+------|
207 * | Esc | Ins | Pscr | Menu | | | | | PWrd | Up | NWrd | DLine| Bspc |
208 * |------+------+------+------+------+------| |------+------+------+------+------+------|
209 * | Tab | LAt | LCtl |LShift| | Caps |-------. ,-------| | Left | Down | Rigth| Del | Bspc |
210 * |------+------+------+------+------+------| MUTE | | |------+------+------+------+------+------|
211 * |Shift | Undo | Cut | Copy | Paste| |-------| |-------| | LStr | | LEnd | | Shift|
212 * `-----------------------------------------/ / \ \-----------------------------------------'
213 * | LGUI | LAlt | LCTR |LOWER | /Enter / \Space \ |RAISE | RCTR | RAlt | RGUI |
214 * | | | | |/ / \ \ | | | | |
215 * `----------------------------------' '------''---------------------------'
216 */
217[_RAISE] = LAYOUT(
218 //,------------------------------------------------. ,---------------------------------------------------.
219 _______, _______ , _______ , _______ , _______ , _______, _______, _______ , _______, _______ , _______ ,_______,
220 //|------+-------+--------+--------+--------+------| |--------+-------+--------+--------+--------+---------|
221 _______, KC_INS, KC_PSCR, KC_APP, XXXXXXX, XXXXXXX, KC_CIRC, KC_AMPR,KC_ASTR, KC_LPRN, KC_RPRN, KC_BSPC,
222 //|------+-------+--------+--------+--------+------| |--------+-------+--------+--------+--------+---------|
223 _______, KC_LALT, KC_LCTL, KC_LSFT, XXXXXXX, KC_CAPS, KC_MINS, KC_EQL, KC_LCBR, KC_RCBR, KC_PIPE, KC_GRV,
224 //|------+-------+--------+--------+--------+------| === | | === |--------+-------+--------+--------+--------+---------|
225 _______,KC_UNDO, KC_CUT, KC_COPY, KC_PASTE, XXXXXXX,_______, _______,KC_UNDS, KC_PLUS,KC_LBRC, KC_RBRC, KC_BSLS, KC_TILD,
226 //|------+-------+--------+--------+--------+------| === | | === |--------+-------+--------+--------+--------+---------|
227 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
228 // \--------+--------+--------+---------+-------| |--------+---------+--------+---------+-------/
229),
230/* ADJUST
231 * ,-----------------------------------------. ,-----------------------------------------.
232 * | | | | | | | | | | | | | |
233 * |------+------+------+------+------+------| |------+------+------+------+------+------|
234 * | RESET| | | | | | | | | | | | |
235 * |------+------+------+------+------+------| |------+------+------+------+------+------|
236 * |RGB_TOG|hue^ |sat ^ | bri ^| |COLEMAK|-------. ,-------|desk <| | |desk >| | |
237 * |------+------+------+------+------+------| MUTE | | |------+------+------+------+------+------|
238 * | mode | hue dn|sat d|bri dn| |QWERTY|-------| |-------| | PREV | PLAY | NEXT | | |
239 * `-----------------------------------------/ / \ \-----------------------------------------'
240 * | LGUI | LAlt | LCTR |LOWER | /Enter / \Space \ |RAISE | RCTR | RAlt | RGUI |
241 * | | | | |/ / \ \ | | | | |
242 * `----------------------------------' '------''---------------------------'
243 */
244 [_ADJUST] = LAYOUT(
245 //,------------------------------------------------. ,---------------------------------------------------.
246 EEP_RST, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
247 //|------+-------+--------+--------+--------+------| |--------+-------+--------+--------+--------+---------|
248 RESET, XXXXXXX,XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
249 //|------+-------+--------+--------+--------+------| |--------+-------+--------+--------+--------+---------|
250 RGB_TOG, RGB_HUI,RGB_SAI, RGB_VAI, KC_COLEMAKDH,KC_COLEMAK, C(G(KC_LEFT)),KC_NO,KC_NO,C(G(KC_RGHT)),XXXXXXX, XXXXXXX,
251 //|------+-------+--------+--------+--------+------| === | | === |--------+-------+--------+--------+--------+---------|
252 RGB_MOD, RGB_HUD,RGB_SAD, RGB_VAD, XXXXXXX,KC_QWERTY,XXXXXXX, XXXXXXX, XXXXXXX, KC_MPRV, KC_MPLY, KC_MNXT, XXXXXXX, XXXXXXX,
253 //|------+-------+--------+--------+--------+------| === | | === |--------+-------+--------+--------+--------+---------|
254 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
255 // \--------+--------+--------+---------+-------| |--------+---------+--------+---------+-------/
256),
257/* NUMPAD
258 * ,-----------------------------------------. ,-----------------------------------------.
259 * | trans| | | | | | | F6 | F7 | F8 | F9 | F10 | F11 |
260 * |------+------+------+------+------+------| |------+------+------+------+------+------|
261 * | ` | | | | | | | | 7 | 8 | 9 | * | F12 |
262 * |------+------+------+------+------+------| |------+------+------+------+------+------|
263 * | trans| | | | | |-------. ,-------| - | 4 | 5 | 6 | | | |
264 * |------+------+------+------+------+------| MUTE | | |------+------+------+------+------+------|
265 * | trans| | | | | |-------| |-------| + | 1 | 2 | 3 | \ | Shift|
266 * `-----------------------------------------/ / \ \-----------------------------------------'
267 * | Bspc | WIN |LOWER | Enter| /Space / \Enter \ |SPACE | 0 | . | RAlt |
268 * | | | | |/ / \ \ | | | | |
269 * `----------------------------------' '------''---------------------------'
270 */
271[_NUMPAD] = LAYOUT(
272 //,------------------------------------------------. ,---------------------------------------------------.
273 _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,XXXXXXX, XXXXXXX,
274 //|------+-------+--------+--------+--------+------| |--------+-------+--------+--------+--------+---------|
275 XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_CIRC, KC_P7, KC_P8, KC_P9, KC_ASTR, _______,
276 //|------+-------+--------+--------+--------+------| |--------+-------+--------+--------+--------+---------|
277 XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_MINS, KC_P4, KC_P5, KC_P6, KC_EQL, KC_PIPE,
278 //|------+-------+--------+--------+--------+------| === | | === |--------+-------+--------+--------+--------+---------|
279 XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,_______, _______,KC_PLUS, KC_P1, KC_P2, KC_P3, KC_SLSH, _______,
280 //|------+-------+--------+--------+--------+------| === | | === |--------+-------+--------+--------+--------+---------|
281 _______, OSM(MOD_MEH), _______, _______, _______, _______, _______, KC_P0, KC_PDOT, _______
282 // \--------+--------+--------+---------+-------| |--------+---------+--------+---------+-------/
283),
284
285/* SWITCH
286 * ,-----------------------------------------. ,-----------------------------------------.
287 * | cole | qwer | low |raise | adj |numpd | | | F7 | F8 | F9 | F10 | F11 |
288 * |------+------+------+------+------+------| |------+------+------+------+------+------|
289 * | ` | | | | | | | | 7 | 8 | 9 | * | F12 |
290 * |------+------+------+------+------+------| |------+------+------+------+------+------|
291 * | trans| | | | | |-------. ,-------| - | 4 | 5 | 6 | | | |
292 * |------+------+------+------+------+------| MUTE | | |------+------+------+------+------+------|
293 * | trans| | | | | |-------| |-------| + | 1 | 2 | 3 | \ | Shift|
294 * `-----------------------------------------/ / \ \-----------------------------------------'
295 * | Bspc | WIN |LOWER | Enter| /Space / \Enter \ |SPACE | 0 | . | RAlt |
296 * | | | | |/ / \ \ | | | | |
297 * `----------------------------------' '------''---------------------------'
298 */
299 // layer switcher
300[_SWITCH] = LAYOUT(
301 //,------------------------------------------------. ,---------------------------------------------------.
302 _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,XXXXXXX, XXXXXXX,
303 //|------+-------+--------+--------+--------+------| |--------+-------+--------+--------+--------+---------|
304 TO(0), TO(1), TO(2), TO(3), TO(4), TO(5), KC_NO, TO(7), KC_NO, KC_NO, KC_NO, RESET,
305 //|------+-------+--------+--------+--------+------| |--------+-------+--------+--------+--------+---------|
306 KC_NO, KC_NO, KC_BRIU, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, EEP_RST,
307 //|------+-------+--------+--------+--------+------| === | | === |--------+-------+--------+--------+--------+---------|
308 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, KC_NO, KC_NO,
309 //|------+-------+--------+--------+--------+------| === | | === |--------+-------+--------+--------+--------+---------|
310 KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO
311 // \--------+--------+--------+---------+-------| |--------+---------+--------+---------+-------/
312
313 ),
314};
315
316#ifdef RGBLIGHT_ENABLE
317char layer_state_str[70];
318// Now define the array of layers. Later layers take precedence
319
320// QWERTY,
321// Light on inner column and underglow
322const rgblight_segment_t PROGMEM layer_qwerty_lights[] = RGBLIGHT_LAYER_SEGMENTS(
323 SET_LAYER_ID(HSV_RED)
324
325);
326const rgblight_segment_t PROGMEM layer_colemakdh_lights[] = RGBLIGHT_LAYER_SEGMENTS(
327 SET_LAYER_ID(HSV_PINK)
328);
329
330// _NUM,
331// Light on outer column and underglow
332const rgblight_segment_t PROGMEM layer_num_lights[] = RGBLIGHT_LAYER_SEGMENTS(
333 SET_LAYER_ID(HSV_TEAL)
334
335);
336// _SYMBOL,
337// Light on inner column and underglow
338const rgblight_segment_t PROGMEM layer_symbol_lights[] = RGBLIGHT_LAYER_SEGMENTS(
339 SET_LAYER_ID(HSV_BLUE)
340
341 );
342// _COMMAND,
343// Light on inner column and underglow
344const rgblight_segment_t PROGMEM layer_command_lights[] = RGBLIGHT_LAYER_SEGMENTS(
345 SET_LAYER_ID(HSV_PURPLE)
346);
347
348//_NUMPAD
349const rgblight_segment_t PROGMEM layer_numpad_lights[] = RGBLIGHT_LAYER_SEGMENTS(
350 SET_INDICATORS(HSV_ORANGE),
351 SET_UNDERGLOW(HSV_ORANGE),
352 SET_NUMPAD(HSV_BLUE),
353 {7, 4, HSV_ORANGE},
354 {25, 2, HSV_ORANGE},
355 {35+6, 4, HSV_ORANGE},
356 {35+25, 2, HSV_ORANGE}
357 );
358// _SWITCHER // light up top row
359const rgblight_segment_t PROGMEM layer_switcher_lights[] = RGBLIGHT_LAYER_SEGMENTS(
360 SET_LAYER_ID(HSV_GREEN),
361 SET_NUMROW(HSV_GREEN)
362);
363
364const rgblight_segment_t* const PROGMEM my_rgb_layers[] = RGBLIGHT_LAYERS_LIST(
365
366 layer_qwerty_lights,
367 layer_num_lights,// overrides layer 1
368 layer_symbol_lights,
369 layer_command_lights,
370 layer_numpad_lights,
371 layer_switcher_lights, // Overrides other layers
372 layer_colemakdh_lights
373);
374
375layer_state_t layer_state_set_user(layer_state_t state) {
376 rgblight_set_layer_state(0, layer_state_cmp(state, _DEFAULTS) && layer_state_cmp(default_layer_state,_QWERTY));
377 rgblight_set_layer_state(7, layer_state_cmp(state, _DEFAULTS) && layer_state_cmp(default_layer_state,_COLEMAKDH));
378
379
380 rgblight_set_layer_state(1, layer_state_cmp(state, _LOWER));
381 rgblight_set_layer_state(2, layer_state_cmp(state, _RAISE));
382 rgblight_set_layer_state(3, layer_state_cmp(state, _ADJUST));
383 rgblight_set_layer_state(4, layer_state_cmp(state, _NUMPAD));
384 rgblight_set_layer_state(5, layer_state_cmp(state, _SWITCH));
385 return state;
386}
387void keyboard_post_init_user(void) {
388 // Enable the LED layers
389 rgblight_layers = my_rgb_layers;
390
391 rgblight_mode(10);// haven't found a way to set this in a more useful way
392
393}
394#endif
395
396#ifdef OLED_DRIVER_ENABLE
397
398static void render_logo(void) {
399 static const char PROGMEM qmk_logo[] = {
400 0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, 0x88, 0x89, 0x8A, 0x8B, 0x8C, 0x8D, 0x8E, 0x8F, 0x90, 0x91, 0x92, 0x93, 0x94,
401 0xA0, 0xA1, 0xA2, 0xA3, 0xA4, 0xA5, 0xA6, 0xA7, 0xA8, 0xA9, 0xAA, 0xAB, 0xAC, 0xAD, 0xAE, 0xAF, 0xB0, 0xB1, 0xB2, 0xB3, 0xB4,
402 0xC0, 0xC1, 0xC2, 0xC3, 0xC4, 0xC5, 0xC6, 0xC7, 0xC8, 0xC9, 0xCA, 0xCB, 0xCC, 0xCD, 0xCE, 0xCF, 0xD0, 0xD1, 0xD2, 0xD3, 0xD4, 0x00
403 };
404
405 oled_write_P(qmk_logo, false);
406}
407
408static void print_status_narrow(void) {
409 // Print current mode
410 oled_write_P(PSTR("\n\n"), false);
411 oled_write_ln_P(PSTR("Dane\nEvans"), false);
412
413 oled_write_ln_P(PSTR(""), false);
414
415 //snprintf(layer_state_str, sizeof(layer_state_str), "Layer: Undef-%ld", layer_state)
416
417
418 switch (get_highest_layer(default_layer_state)) {
419 case _QWERTY:
420 oled_write_ln_P(PSTR("Qwrt"), false);
421 break;
422 case _COLEMAK:
423 oled_write_ln_P(PSTR("Clmk"), false);
424 break;
425 case _COLEMAKDH:
426 oled_write_ln_P(PSTR("CmkDH"), false);
427 break;
428
429 default:
430 oled_write_ln_P(PSTR("Undef"), false);
431 }
432 oled_write_P(PSTR("\n\n"), false);
433 // Print current layer
434 oled_write_ln_P(PSTR("LAYER"), false);
435 switch (get_highest_layer(layer_state)) {
436 case _COLEMAK:
437 case _QWERTY:
438 case _COLEMAKDH:
439 oled_write_P(PSTR("Base\n"), false);
440 break;
441 case _RAISE:
442 oled_write_P(PSTR("Raise"), false);
443 break;
444 case _LOWER:
445 oled_write_P(PSTR("Lower"), false);
446 break;
447 case _ADJUST:
448 oled_write_P(PSTR("Adj\n"), false);
449 break;
450 case _NUMPAD:
451 oled_write_P(PSTR("Nump\n"), false);
452 break;
453 case _SWITCH:
454 oled_write_P(PSTR("Swit\n"), false);
455 break;
456 default:
457 oled_write_ln_P(PSTR("Undef"), false);
458 }
459}
460
461oled_rotation_t oled_init_user(oled_rotation_t rotation) {
462 if (is_keyboard_master()) {
463 return OLED_ROTATION_270;
464 }
465 return rotation;
466}
467
468void oled_task_user(void) {
469 if (is_keyboard_master()) {
470 print_status_narrow();
471 } else {
472 render_logo();
473 }
474}
475
476#endif
477
478bool process_record_user(uint16_t keycode, keyrecord_t *record) {
479 switch (keycode) {
480 case KC_QWERTY:
481 if (record->event.pressed) {
482 set_single_persistent_default_layer(_QWERTY);
483 }
484 return false;
485 case KC_COLEMAK:
486 if (record->event.pressed) {
487 set_single_persistent_default_layer(_COLEMAK);
488 }
489 return false;
490 case KC_COLEMAKDH:
491 if (record->event.pressed) {
492 set_single_persistent_default_layer(_COLEMAKDH);
493 }
494 return false;
495 case KC_LOWER:
496 if (record->event.pressed) {
497 layer_on(_LOWER);
498 update_tri_layer(_LOWER, _RAISE, _ADJUST);
499 } else {
500 layer_off(_LOWER);
501 update_tri_layer(_LOWER, _RAISE, _ADJUST);
502 }
503 return false;
504 case KC_RAISE:
505 if (record->event.pressed) {
506 layer_on(_RAISE);
507 update_tri_layer(_LOWER, _RAISE, _ADJUST);
508 } else {
509 layer_off(_RAISE);
510 update_tri_layer(_LOWER, _RAISE, _ADJUST);
511 }
512 return false;
513 case KC_ADJUST:
514 if (record->event.pressed) {
515 layer_on(_ADJUST);
516 } else {
517 layer_off(_ADJUST);
518 }
519 return false;
520 case KC_D_MUTE:
521 if (record->event.pressed) {
522 register_mods(mod_config(MOD_MEH));
523 register_code(KC_UP);
524 } else {
525 unregister_mods(mod_config(MOD_MEH));
526 unregister_code(KC_UP);
527 }
528 }
529 return true;
530}
531
532#ifdef ENCODER_ENABLE
533
534void encoder_update_user(uint8_t index, bool clockwise) {
535 if (index == 0) {
536 if (clockwise) {
537 tap_code(KC_VOLU);
538 } else {
539 tap_code(KC_VOLD);
540 }
541 } else if (index == 1) {
542 switch (get_highest_layer(layer_state)) {
543 case _COLEMAK:
544 case _QWERTY:
545 case _COLEMAKDH:
546 if (clockwise) {
547 tap_code(KC_PGDOWN);
548 } else {
549 tap_code(KC_PGUP);
550 }
551 break;
552 case _RAISE:
553 case _LOWER:
554 if (clockwise) {
555 tap_code(KC_DOWN);
556 } else {
557 tap_code(KC_UP);
558 }
559 break;
560 default:
561 if (clockwise) {
562 tap_code(KC_WH_D);
563 } else {
564 tap_code(KC_WH_U);
565 }
566 break;
567 }
568 }
569}
570
571#endif