aboutsummaryrefslogtreecommitdiff
path: root/keyboards/sofle/keymaps/devdev
diff options
context:
space:
mode:
Diffstat (limited to 'keyboards/sofle/keymaps/devdev')
-rw-r--r--keyboards/sofle/keymaps/devdev/config.h130
-rw-r--r--keyboards/sofle/keymaps/devdev/keymap.c571
-rw-r--r--keyboards/sofle/keymaps/devdev/rules.mk7
3 files changed, 708 insertions, 0 deletions
diff --git a/keyboards/sofle/keymaps/devdev/config.h b/keyboards/sofle/keymaps/devdev/config.h
new file mode 100644
index 000000000..7d597d991
--- /dev/null
+++ b/keyboards/sofle/keymaps/devdev/config.h
@@ -0,0 +1,130 @@
1 /* Copyright 2021 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 #pragma once
17
18
19//#define USE_MATRIX_I2C
20
21/* Select hand configuration */
22
23///https://thomasbaart.nl/2018/12/01/reducing-firmware-size-in-qmk/
24
25
26#define MASTER_LEFT
27// #define MASTER_RIGHT
28// #define EE_HANDS
29
30#define CUSTOM_FONT
31
32#define CUSTOM_LAYER_READ //if you remove this it causes issues - needs better guarding
33
34
35#define TAPPING_FORCE_HOLD
36#ifdef TAPPING_TERM
37 #undef TAPPING_TERM
38 #define TAPPING_TERM 200
39#endif
40#define ENCODER_DIRECTION_FLIP
41
42
43#define RGBLIGHT_SLEEP
44//
45#define RGBLIGHT_LAYERS
46
47/* ws2812 RGB LED */
48#define RGB_DI_PIN D3
49
50
51#ifdef RGB_MATRIX_ENABLE
52#define RGBLED_NUM 35 // Number of LEDs
53#define RGBLED_NUM 35 // Number of LEDs
54#define DRIVER_LED_TOTAL RGBLED_NUM
55#endif
56
57#ifdef RGBLIGHT_ENABLE
58 #undef RGBLED_NUM
59
60 //#define RGBLIGHT_ANIMATIONS
61 //#define RGBLIGHT_EFFECT_BREATHING
62 #define RGBLIGHT_EFFECT_RAINBOW_MOOD
63 //#define RGBLIGHT_EFFECT_RAINBOW_SWIRL
64 //#define RGBLIGHT_EFFECT_SNAKE
65 //#define RGBLIGHT_EFFECT_KNIGHT
66 //#define RGBLIGHT_EFFECT_CHRISTMAS
67 //#define RGBLIGHT_EFFECT_STATIC_GRADIENT
68 //#define RGBLIGHT_EFFECT_RGB_TEST
69 //#define RGBLIGHT_EFFECT_ALTERNATING
70 //#define RGBLIGHT_EFFECT_TWINKLE
71
72 #define RGBLED_NUM 70
73 //#define RGBLED_SPLIT
74 #define RGBLED_SPLIT { 35, 35 } // haven't figured out how to use this yet
75
76 //#define RGBLED_NUM 30
77 #define RGBLIGHT_LIMIT_VAL 120
78 #define RGBLIGHT_HUE_STEP 10
79 #define RGBLIGHT_SAT_STEP 17
80 #define RGBLIGHT_VAL_STEP 17
81#endif
82
83#ifdef RGB_MATRIX_ENABLE
84# define RGB_MATRIX_KEYPRESSES // reacts to keypresses
85// # define RGB_MATRIX_KEYRELEASES // reacts to keyreleases (instead of keypresses)
86// # define RGB_DISABLE_AFTER_TIMEOUT 0 // number of ticks to wait until disabling effects
87# define RGB_DISABLE_WHEN_USB_SUSPENDED true // turn off effects when suspended
88# define RGB_MATRIX_FRAMEBUFFER_EFFECTS
89// # define RGB_MATRIX_LED_PROCESS_LIMIT (DRIVER_LED_TOTAL + 4) / 5 // limits the number of LEDs to process in an animation per task run (increases keyboard responsiveness)
90// # define RGB_MATRIX_LED_FLUSH_LIMIT 16 // limits in milliseconds how frequently an animation will update the LEDs. 16 (16ms) is equivalent to limiting to 60fps (increases keyboard responsiveness)
91# define RGB_MATRIX_MAXIMUM_BRIGHTNESS 150 // limits maximum brightness of LEDs to 150 out of 255. Higher may cause the controller to crash.
92
93#define RGB_MATRIX_STARTUP_MODE RGB_MATRIX_GRADIENT_LEFT_RIGHT
94
95# define RGB_MATRIX_HUE_STEP 8
96# define RGB_MATRIX_SAT_STEP 8
97# define RGB_MATRIX_VAL_STEP 8
98# define RGB_MATRIX_SPD_STEP 10
99
100/* Disable the animations you don't want/need. You will need to disable a good number of these *
101 * because they take up a lot of space. Disable until you can successfully compile your firmware. */
102// # define DISABLE_RGB_MATRIX_ALPHAS_MODS
103// # define DISABLE_RGB_MATRIX_GRADIENT_UP_DOWN
104// # define DISABLE_RGB_MATRIX_BREATHING
105// # define DISABLE_RGB_MATRIX_CYCLE_ALL
106// # define DISABLE_RGB_MATRIX_CYCLE_LEFT_RIGHT
107// # define DISABLE_RGB_MATRIX_CYCLE_UP_DOWN
108// # define DISABLE_RGB_MATRIX_CYCLE_OUT_IN
109// # define DISABLE_RGB_MATRIX_CYCLE_OUT_IN_DUAL
110// # define DISABLE_RGB_MATRIX_RAINBOW_MOVING_CHEVRON
111// # define DISABLE_RGB_MATRIX_DUAL_BEACON
112// # define DISABLE_RGB_MATRIX_RAINBOW_BEACON
113// # define DISABLE_RGB_MATRIX_RAINBOW_PINWHEELS
114// # define DISABLE_RGB_MATRIX_RAINDROPS
115// # define DISABLE_RGB_MATRIX_JELLYBEAN_RAINDROPS
116// # define DISABLE_RGB_MATRIX_TYPING_HEATMAP
117// # define DISABLE_RGB_MATRIX_DIGITAL_RAIN
118// # define DISABLE_RGB_MATRIX_SOLID_REACTIVE
119// # define DISABLE_RGB_MATRIX_SOLID_REACTIVE_SIMPLE
120// # define DISABLE_RGB_MATRIX_SOLID_REACTIVE_WIDE
121// # define DISABLE_RGB_MATRIX_SOLID_REACTIVE_MULTIWIDE
122// # define DISABLE_RGB_MATRIX_SOLID_REACTIVE_CROSS
123// # define DISABLE_RGB_MATRIX_SOLID_REACTIVE_MULTICROSS
124// # define DISABLE_RGB_MATRIX_SOLID_REACTIVE_NEXUS
125// # define DISABLE_RGB_MATRIX_SOLID_REACTIVE_MULTINEXUS
126// # define DISABLE_RGB_MATRIX_SPLASH
127// # define DISABLE_RGB_MATRIX_MULTISPLASH
128// # define DISABLE_RGB_MATRIX_SOLID_SPLASH
129// # define DISABLE_RGB_MATRIX_SOLID_MULTISPLASH
130#endif \ No newline at end of file
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
diff --git a/keyboards/sofle/keymaps/devdev/rules.mk b/keyboards/sofle/keymaps/devdev/rules.mk
new file mode 100644
index 000000000..3dffb0368
--- /dev/null
+++ b/keyboards/sofle/keymaps/devdev/rules.mk
@@ -0,0 +1,7 @@
1MOUSEKEY_ENABLE = yes
2EXTRAKEY_ENABLE = yes
3CONSOLE_ENABLE = yes
4RGBLIGHT_ENABLE = yes
5ENCODER_ENABLE = yes
6LTO_ENABLE = yes
7OLED_DRIVER_ENABLE = yes