aboutsummaryrefslogtreecommitdiff
path: root/keyboards/rgbkb/sol/keymaps/default/keymap.c
diff options
context:
space:
mode:
Diffstat (limited to 'keyboards/rgbkb/sol/keymaps/default/keymap.c')
-rw-r--r--keyboards/rgbkb/sol/keymaps/default/keymap.c350
1 files changed, 202 insertions, 148 deletions
diff --git a/keyboards/rgbkb/sol/keymaps/default/keymap.c b/keyboards/rgbkb/sol/keymaps/default/keymap.c
index ca7352482..f948dc450 100644
--- a/keyboards/rgbkb/sol/keymaps/default/keymap.c
+++ b/keyboards/rgbkb/sol/keymaps/default/keymap.c
@@ -5,13 +5,6 @@
5#include "split_util.h" 5#include "split_util.h"
6#endif 6#endif
7 7
8extern keymap_config_t keymap_config;
9
10#ifdef RGBLIGHT_ENABLE
11//Following line allows macro to read current RGB settings
12extern rgblight_config_t rgblight_config;
13#endif
14
15// Each layer gets a name for readability, which is then used in the keymap matrix below. 8// Each layer gets a name for readability, which is then used in the keymap matrix below.
16// The underscores don't mean anything - you can have a layer called STUFF or any other name. 9// The underscores don't mean anything - you can have a layer called STUFF or any other name.
17// Layer names don't all need to be of the same length, obviously, and you can also skip them 10// Layer names don't all need to be of the same length, obviously, and you can also skip them
@@ -23,22 +16,18 @@ enum layer_number {
23 _ADJ 16 _ADJ
24}; 17};
25 18
26enum custom_keycodes { 19// Keycode defines for layers
27 QWERTY = SAFE_RANGE, 20#define QWERTY DF(_QWERTY)
28 COLEMAK, 21#define COLEMAK DF(_COLEMAK)
29 FN, 22#define FN MO(_FN)
30 ADJ, 23#define ADJ MO(_ADJ)
31 BACKLIT,
32 RGBRST
33};
34 24
35enum macro_keycodes { 25enum custom_keycodes {
36 KC_SAMPLEMACRO, 26 RGBRST = SAFE_RANGE,
27 RGB_MENU
37}; 28};
38 29
39 30#define FN_ESC LT(_FN, KC_ESC)
40
41#define FN_ESC LT(_FN, KC_ESC)
42#define FN_CAPS LT(_FN, KC_CAPS) 31#define FN_CAPS LT(_FN, KC_CAPS)
43 32
44const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { 33const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
@@ -50,9 +39,9 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
50 * |------+------+------+------+------+------|------| |------|------+------+------+------+------+------| 39 * |------+------+------+------+------+------|------| |------|------+------+------+------+------+------|
51 * |FN(CAPS)| A | S | D | F | G | ( | | ) | H | J | K | L | ; | ' | 40 * |FN(CAPS)| A | S | D | F | G | ( | | ) | H | J | K | L | ; | ' |
52 * |------+------+------+------+------+------+------| |------+------+------+------+------+------+------| 41 * |------+------+------+------+------+------+------| |------+------+------+------+------+------+------|
53 * |Shift | Z | X | C | V | B | { | | } | N | M | , | . | / |Shift | 42 * |Shift | Z | X | C | V | B | { | | } | N | M | , | . | / |Enter |
54 * |------+------+------+------+------+------+------| |------+------+------+------+------+------+------| 43 * |------+------+------+------+------+------+------| |------+------+------+------+------+------+------|
55 * | Ctrl | Win | Alt | RGB | ADJ | Space| DEL | | Enter| Space| FN | Left | Down | Up |Right | 44 * | Ctrl | Win | Alt | RGB | ADJ | Space| DEL | | Enter| Space| FN | Left | Down | Up |Right |
56 * |------+------+------+------+------+------+------| |------+------+------+------+------+------+------' 45 * |------+------+------+------+------+------+------| |------+------+------+------+------+------+------'
57 * | Space| DEL | | Enter| Space| 46 * | Space| DEL | | Enter| Space|
58 * `-------------' `-------------' 47 * `-------------' `-------------'
@@ -74,7 +63,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
74 * |------+------+------+------+------+------|------| |------|------+------+------+------+------+------| 63 * |------+------+------+------+------+------|------| |------|------+------+------+------+------+------|
75 * |FN(CAPS)| A | R | S | T | G | ( | | ) | K | N | E | I | O | ' | 64 * |FN(CAPS)| A | R | S | T | G | ( | | ) | K | N | E | I | O | ' |
76 * |------+------+------+------+------+------+------| |------+------+------+------+------+------+------| 65 * |------+------+------+------+------+------+------| |------+------+------+------+------+------+------|
77 * |Shift | Z | X | C | D | V | { | | } | M | H | , | . | / |Shift | 66 * |Shift | Z | X | C | D | V | { | | } | M | H | , | . | / |Enter |
78 * |------+------+------+------+------+------+------| |------+------+------+------+------+------+------| 67 * |------+------+------+------+------+------+------| |------+------+------+------+------+------+------|
79 * | Ctrl | Win | Alt | RGB | ADJ | Space| DEL | | Enter| Space| FN | Left | Down | Up |Right | 68 * | Ctrl | Win | Alt | RGB | ADJ | Space| DEL | | Enter| Space| FN | Left | Down | Up |Right |
80 * |------+------+------+------+------+------+------| |------+------+------+------+------+------+------' 69 * |------+------+------+------+------+------+------| |------+------+------+------+------+------+------'
@@ -83,9 +72,9 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
83 */ 72 */
84 [_COLEMAK] = LAYOUT( \ 73 [_COLEMAK] = LAYOUT( \
85 KC_GESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_MINS, KC_EQL, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC, \ 74 KC_GESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_MINS, KC_EQL, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC, \
86 KC_TAB, KC_Q, KC_W, KC_F, KC_P, KC_B, KC_LBRC, KC_RBRC, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_BSLS, \ 75 KC_TAB, KC_Q, KC_W, KC_F, KC_P, KC_G, KC_LBRC, KC_RBRC, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_BSLS, \
87 FN_CAPS, KC_A, KC_R, KC_S, KC_T, KC_G, KC_LPRN, KC_RPRN, KC_K, KC_N, KC_E, KC_I, KC_O, KC_QUOT, \ 76 FN_CAPS, KC_A, KC_R, KC_S, KC_T, KC_D, KC_LPRN, KC_RPRN, KC_H, KC_N, KC_E, KC_I, KC_O, KC_QUOT, \
88 KC_LSFT, KC_Z, KC_X, KC_C, KC_D, KC_V, KC_LCBR, KC_RCBR, KC_M, KC_H, KC_COMM, KC_DOT, KC_SLSH, KC_ENT, \ 77 KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_LCBR, KC_RCBR, KC_K, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT, \
89 KC_LCTL, KC_LGUI, KC_LALT, RGB_TOG, ADJ, KC_SPC, KC_DEL, KC_ENT, KC_SPC, FN, KC_LEFT, KC_DOWN, KC_UP,KC_RIGHT, \ 78 KC_LCTL, KC_LGUI, KC_LALT, RGB_TOG, ADJ, KC_SPC, KC_DEL, KC_ENT, KC_SPC, FN, KC_LEFT, KC_DOWN, KC_UP,KC_RIGHT, \
90 KC_SPC, KC_DEL, KC_ENT, KC_SPC \ 79 KC_SPC, KC_DEL, KC_ENT, KC_SPC \
91 ), 80 ),
@@ -107,8 +96,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
107 */ 96 */
108 [_FN] = LAYOUT( \ 97 [_FN] = LAYOUT( \
109 KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, _______, KC_PSCR, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, \ 98 KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, _______, KC_PSCR, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, \
110 _______, KC_PGDN, KC_UP, KC_PGUP, _______, _______, _______, _______, _______, KC_PGDN, KC_UP, KC_PGUP, KC_PSCR, KC_HOME, \ 99 _______, KC_PGDN, KC_UP, KC_PGUP, _______, _______, _______, KC_SLCK, _______, KC_PGDN, KC_UP, KC_PGUP, KC_PSCR, KC_HOME, \
111 _______, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, _______, _______, _______, KC_LEFT, KC_DOWN, KC_RGHT, KC_INS, KC_END, \ 100 _______, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, _______, KC_NLCK, _______, KC_LEFT, KC_DOWN, KC_RGHT, KC_INS, KC_END, \
112 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \ 101 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \
113 _______, _______, _______, RGB_MOD, _______, _______, _______, _______, _______, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, \ 102 _______, _______, _______, RGB_MOD, _______, _______, _______, _______, _______, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, \
114 _______, _______, _______, _______ \ 103 _______, _______, _______, _______ \
@@ -134,120 +123,184 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
134 KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, _______, _______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, \ 123 KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, _______, _______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, \
135 _______, RGB_SAD, RGB_VAI, RGB_SAI, RESET, _______, _______, _______, _______, _______, _______, _______, _______, _______, \ 124 _______, RGB_SAD, RGB_VAI, RGB_SAI, RESET, _______, _______, _______, _______, _______, _______, _______, _______, _______, \
136 _______, RGB_HUD, RGB_VAD, RGB_HUI, RGBRST, _______, _______, _______, _______, QWERTY, COLEMAK, _______, _______, _______, \ 125 _______, RGB_HUD, RGB_VAD, RGB_HUI, RGBRST, _______, _______, _______, _______, QWERTY, COLEMAK, _______, _______, _______, \
137 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_TOG, RGB_HUI, RGB_SAI, RGB_VAI, \ 126 _______, RGB_SPD, _______, RGB_SPI, _______, _______, _______, _______, _______, RGB_SPI, RGB_TOG, RGB_HUI, RGB_SAI, RGB_VAI, \
138 _______, _______, _______, RGB_MOD, _______, _______, _______, _______, _______, _______, RGB_RMOD,RGB_HUD, RGB_SAD, RGB_VAD, \ 127 _______, _______, _______, RGB_MOD, _______, _______, _______, _______, _______, RGB_SPD, RGB_RMOD,RGB_HUD, RGB_SAD, RGB_VAD, \
139 _______, _______, _______, _______ \ 128 _______, _______, _______, _______ \
140 ) 129 )
141}; 130};
142 131
132// For RGBRST Keycode
133#if defined(RGB_MATRIX_ENABLE)
134void rgb_matrix_increase_flags(void)
135{
136 switch (rgb_matrix_get_flags()) {
137 case LED_FLAG_ALL: {
138 rgb_matrix_set_flags(LED_FLAG_KEYLIGHT | LED_FLAG_MODIFIER);
139 rgb_matrix_set_color_all(0, 0, 0);
140 }
141 break;
142 case LED_FLAG_KEYLIGHT | LED_FLAG_MODIFIER: {
143 rgb_matrix_set_flags(LED_FLAG_UNDERGLOW);
144 rgb_matrix_set_color_all(0, 0, 0);
145 }
146 break;
147 case LED_FLAG_UNDERGLOW: {
148 rgb_matrix_set_flags(LED_FLAG_NONE);
149 rgb_matrix_disable_noeeprom();
150 }
151 break;
152 default: {
153 rgb_matrix_set_flags(LED_FLAG_ALL);
154 rgb_matrix_enable_noeeprom();
155 }
156 break;
157 }
158}
143 159
160void rgb_matrix_decrease_flags(void)
161{
162 switch (rgb_matrix_get_flags()) {
163 case LED_FLAG_ALL: {
164 rgb_matrix_set_flags(LED_FLAG_NONE);
165 rgb_matrix_disable_noeeprom();
166 }
167 break;
168 case LED_FLAG_KEYLIGHT | LED_FLAG_MODIFIER: {
169 rgb_matrix_set_flags(LED_FLAG_ALL);
170 rgb_matrix_set_color_all(0, 0, 0);
171 }
172 break;
173 case LED_FLAG_UNDERGLOW: {
174 rgb_matrix_set_flags(LED_FLAG_KEYLIGHT | LED_FLAG_MODIFIER);
175 rgb_matrix_set_color_all(0, 0, 0);
176 }
177 break;
178 default: {
179 rgb_matrix_set_flags(LED_FLAG_UNDERGLOW);
180 rgb_matrix_enable_noeeprom();
181 }
182 break;
183 }
184}
185#endif
144 186
145// define variables for reactive RGB 187#ifdef RGB_OLED_MENU
146bool TOG_STATUS = false; 188uint8_t rgb_encoder_state = 4;
147int RGB_current_mode; 189
190typedef void (*rgb_matrix_f)(void);
191
192const rgb_matrix_f rgb_matrix_functions[6][2] = {
193 { rgb_matrix_increase_hue, rgb_matrix_decrease_hue },
194 { rgb_matrix_increase_sat, rgb_matrix_decrease_sat },
195 { rgb_matrix_increase_val, rgb_matrix_decrease_val },
196 { rgb_matrix_increase_speed, rgb_matrix_decrease_speed },
197 { rgb_matrix_step, rgb_matrix_step_reverse },
198 { rgb_matrix_increase_flags, rgb_matrix_decrease_flags }
199};
200#endif
148 201
149#ifdef ENCODER_ENABLE 202#ifdef ENCODER_ENABLE
203
204static pin_t encoders_pad_a[] = ENCODERS_PAD_A;
205#define NUMBER_OF_ENCODERS (sizeof(encoders_pad_a)/sizeof(pin_t))
206
207const uint16_t PROGMEM encoders[][NUMBER_OF_ENCODERS * 2][2] = {
208 [_QWERTY] = ENCODER_LAYOUT( \
209 KC_VOLU, KC_VOLD,
210 KC_VOLU, KC_VOLD
211 ),
212 [_COLEMAK] = ENCODER_LAYOUT( \
213 _______, _______,
214 _______, _______
215 ),
216 [_FN] = ENCODER_LAYOUT( \
217 _______, _______,
218 _______, _______
219 ),
220 [_ADJ] = ENCODER_LAYOUT( \
221 _______, _______,
222 _______, _______
223 )
224};
225
150void encoder_update_user(uint8_t index, bool clockwise) { 226void encoder_update_user(uint8_t index, bool clockwise) {
151 if (index == 0) { /* First encoder */ 227 if (!is_keyboard_master())
152 if (clockwise) { 228 return;
153 tap_code(KC_VOLU); 229
154 } else { 230#ifdef RGB_OLED_MENU
155 tap_code(KC_VOLD); 231 if (index == RGB_OLED_MENU) {
156 } 232 (*rgb_matrix_functions[rgb_encoder_state][clockwise])();
157 } else if (index == 1) { /* Second encoder*/ 233 } else
158 if (clockwise) { 234#endif
159 tap_code(KC_VOLU); 235 {
160 } else { 236 uint8_t layer = biton32(layer_state);
161 tap_code(KC_VOLD); 237 uint16_t keycode = encoders[layer][index][clockwise];
238 while (keycode == KC_TRANSPARENT && layer > 0)
239 {
240 layer--;
241 if ((layer_state & (1 << layer)) != 0)
242 keycode = encoders[layer][index][clockwise];
162 } 243 }
244 if (keycode != KC_TRANSPARENT)
245 tap_code16(keycode);
163 } 246 }
164} 247}
165#endif 248#endif
166 249
167// Setting ADJ layer RGB back to default
168void update_tri_layer_RGB(uint8_t layer1, uint8_t layer2, uint8_t layer3) {
169 if (IS_LAYER_ON(layer1) && IS_LAYER_ON(layer2)) {
170 #ifdef RGBLIGHT_ENABLE
171 //rgblight_mode(RGB_current_mode);
172 #endif
173 layer_on(layer3);
174 } else {
175 layer_off(layer3);
176 }
177}
178
179bool process_record_user(uint16_t keycode, keyrecord_t *record) { 250bool process_record_user(uint16_t keycode, keyrecord_t *record) {
180 //uint8_t shifted = get_mods() & (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT)); 251 static uint16_t reset_timer;
181
182 switch (keycode) { 252 switch (keycode) {
183 case QWERTY: 253 case RGBRST:
254#if defined(RGBLIGHT_ENABLE)
255 if (record->event.pressed) {
256 eeconfig_update_rgblight_default();
257 rgblight_enable();
258 }
259#elif defined(RGB_MATRIX_ENABLE)
260 if (record->event.pressed) {
261 eeconfig_update_rgb_matrix_default();
262 }
263#endif
264 return false;
265 case RESET:
184 if (record->event.pressed) { 266 if (record->event.pressed) {
185 set_single_persistent_default_layer(_QWERTY); 267 reset_timer = timer_read();
268 } else {
269 if (timer_elapsed(reset_timer) >= 500) {
270 reset_keyboard();
271 }
186 } 272 }
187 return false; 273 return false;
188 break; 274#if defined(RGB_MATRIX_ENABLE) && defined(KEYBOARD_rgbkb_sol_rev2)
189 case COLEMAK: 275 case RGB_TOG:
190 if(record->event.pressed) { 276 if (record->event.pressed) {
191 set_single_persistent_default_layer(_COLEMAK); 277 rgb_matrix_increase_flags();
192 } 278 }
193 return false; 279 return false;
194 break; 280#endif
195 case FN: 281 case RGB_MENU:
282#ifdef RGB_OLED_MENU
196 if (record->event.pressed) { 283 if (record->event.pressed) {
197 //not sure how to have keyboard check mode and set it to a variable, so my work around 284 if (get_mods() & MOD_MASK_SHIFT) {
198 //uses another variable that would be set to true after the first time a reactive key is pressed. 285 rgb_encoder_state = (rgb_encoder_state - 1);
199 if (TOG_STATUS) { //TOG_STATUS checks is another reactive key currently pressed, only changes RGB mode if returns false 286 if (rgb_encoder_state > 5) {
287 rgb_encoder_state = 5;
288 }
200 } else { 289 } else {
201 TOG_STATUS = !TOG_STATUS; 290 rgb_encoder_state = (rgb_encoder_state + 1) % 6;
202 #ifdef RGBLIGHT_ENABLE
203 //rgblight_mode(15);
204 #endif
205 } 291 }
206 layer_on(_FN);
207 } else {
208 #ifdef RGBLIGHT_ENABLE
209 //rgblight_mode(RGB_current_mode); // revert RGB to initial mode prior to RGB mode change
210 #endif
211 layer_off(_FN);
212 TOG_STATUS = false;
213 } 292 }
293#endif
214 return false; 294 return false;
215 break;
216 case ADJ:
217 if (record->event.pressed) {
218 layer_on(_ADJ);
219 } else {
220 layer_off(_ADJ);
221 }
222 return false;
223 break;
224 //led operations - RGB mode change now updates the RGB_current_mode to allow the right RGB mode to be set after reactive keys are released
225 case RGBRST:
226 #ifdef RGBLIGHT_ENABLE
227 if (record->event.pressed) {
228 eeconfig_update_rgblight_default();
229 rgblight_enable();
230 RGB_current_mode = rgblight_config.mode;
231 }
232 #endif
233 break;
234 } 295 }
235 return true; 296 return true;
236} 297}
237 298
238void matrix_init_user(void) {
239#ifdef RGBLIGHT_ENABLE
240 RGB_current_mode = rgblight_config.mode;
241#endif
242}
243
244
245// OLED Driver Logic 299// OLED Driver Logic
246#ifdef OLED_DRIVER_ENABLE 300#ifdef OLED_DRIVER_ENABLE
247
248oled_rotation_t oled_init_user(oled_rotation_t rotation) { 301oled_rotation_t oled_init_user(oled_rotation_t rotation) {
249 if (!has_usb()) 302 if (is_keyboard_master())
250 return OLED_ROTATION_180; // flip 180 for offhand 303 return OLED_ROTATION_90;
251 return rotation; 304 return rotation;
252} 305}
253 306
@@ -255,62 +308,63 @@ static void render_logo(void) {
255 static const char PROGMEM sol_logo[] = { 308 static const char PROGMEM sol_logo[] = {
256 0x80,0x81,0x82,0x83,0x84,0x85,0x86,0x87,0x88,0x89,0x8a,0x8b,0x8c,0x8d,0x8e,0x8f,0x90,0x91,0x92,0x93,0x94, 309 0x80,0x81,0x82,0x83,0x84,0x85,0x86,0x87,0x88,0x89,0x8a,0x8b,0x8c,0x8d,0x8e,0x8f,0x90,0x91,0x92,0x93,0x94,
257 0xa0,0xa1,0xa2,0xa3,0xa4,0xa5,0xa6,0xa7,0xa8,0xa9,0xaa,0xab,0xac,0xad,0xae,0xaf,0xb0,0xb1,0xb2,0xb3,0xb4, 310 0xa0,0xa1,0xa2,0xa3,0xa4,0xa5,0xa6,0xa7,0xa8,0xa9,0xaa,0xab,0xac,0xad,0xae,0xaf,0xb0,0xb1,0xb2,0xb3,0xb4,
258 0xc0,0xc1,0xc2,0xc3,0xc4,0xc5,0xc6,0xc7,0xc8,0xc9,0xca,0xcb,0xcc,0xcd,0xce,0xcf,0xd0,0xd1,0xd2,0xd3,0xd4,0}; 311 0xc0,0xc1,0xc2,0xc3,0xc4,0xc5,0xc6,0xc7,0xc8,0xc9,0xca,0xcb,0xcc,0xcd,0xce,0xcf,0xd0,0xd1,0xd2,0xd3,0xd4,0
259 312 };
260 oled_write_P(sol_logo, false); 313 oled_write_P(sol_logo, false);
261} 314}
262 315
263//assign the right code to your layers for OLED display
264#define L_BASE 0
265#define L_FN (1<<_FN)
266#define L_ADJ (1<<_ADJ)
267#define L_ADJ_TRI (L_ADJ|L_FN)
268
269static void render_status(void) { 316static void render_status(void) {
270 // Render to mode icon 317 // Render to mode icon
271 static const char PROGMEM mode_logo[4][4] = { 318 static const char PROGMEM sol_icon[] = {
272 {0x95,0x96,0x0a,0}, 319 0x9b,0x9c,0x9d,0x9e,0x9f,
273 {0xb5,0xb6,0x0a,0}, 320 0xbb,0xbc,0xbd,0xbe,0xbf,
274 {0x97,0x98,0x0a,0}, 321 0xdb,0xdc,0xdd,0xde,0xdf,0
275 {0xb7,0xb8,0x0a,0} }; 322 };
276 323 oled_write_P(sol_icon, false);
277 if (keymap_config.swap_lalt_lgui != false) { 324
278 oled_write_P(mode_logo[0], false); 325 // Define layers here
279 oled_write_P(mode_logo[1], false); 326 oled_write_P(PSTR("Layer"), false);
280 } else { 327 switch (biton32(layer_state)) {
281 oled_write_P(mode_logo[2], false); 328 case _QWERTY:
282 oled_write_P(mode_logo[3], false); 329 oled_write_P(PSTR("BASE "), false);
283 } 330 break;
284 331 case _COLEMAK:
285 // Define layers here, Have not worked out how to have text displayed for each layer. Copy down the number you see and add a case for it below 332 oled_write_P(PSTR("CLMK "), false);
286 oled_write_P(PSTR("Layer: "), false);
287 switch (layer_state) {
288 case L_BASE:
289 oled_write_P(PSTR("Default\n"), false);
290 break; 333 break;
291 case L_FN: 334 case _FN:
292 oled_write_P(PSTR("FN \n"), false); 335 oled_write_P(PSTR("FN "), false);
293 break; 336 break;
294 case L_ADJ: 337 case _ADJ:
295 case L_ADJ_TRI: 338 oled_write_P(PSTR("ADJ "), false);
296 oled_write_P(PSTR("ADJ \n"), false);
297 break; 339 break;
298 default: 340 default:
299 oled_write_P(PSTR("UNDEF \n"), false); 341 oled_write_P(PSTR("UNDEF"), false);
300 } 342 }
301 343
302 // Host Keyboard LED Status 344 // Host Keyboard LED Status
303 uint8_t led_usb_state = host_keyboard_leds(); 345 uint8_t led_state = host_keyboard_leds();
304 oled_write_P(led_usb_state & (1<<USB_LED_NUM_LOCK) ? PSTR("NUMLOCK ") : PSTR(" "), false); 346 oled_write_P(PSTR("-----"), false);
305 oled_write_P(led_usb_state & (1<<USB_LED_CAPS_LOCK) ? PSTR("CAPS ") : PSTR(" "), false); 347 oled_write_P(IS_LED_ON(led_state, USB_LED_NUM_LOCK) ? PSTR("NUMLK") : PSTR(" "), false);
306 oled_write_P(led_usb_state & (1<<USB_LED_SCROLL_LOCK) ? PSTR("SCLK ") : PSTR(" "), false); 348 oled_write_P(IS_LED_ON(led_state, USB_LED_CAPS_LOCK) ? PSTR("CAPLK") : PSTR(" "), false);
349 oled_write_P(IS_LED_ON(led_state, USB_LED_SCROLL_LOCK) ? PSTR("SCRLK") : PSTR(" "), false);
350
351#ifdef RGB_OLED_MENU
352 static char buffer[31] = { 0 };
353 snprintf(buffer, sizeof(buffer), "h%3d s%3d v%3d s%3d m%3d e%3d ", rgb_matrix_config.hsv.h, rgb_matrix_config.hsv.s, rgb_matrix_config.hsv.v, rgb_matrix_config.speed, rgb_matrix_config.mode, rgb_matrix_get_flags());
354 buffer[4 + rgb_encoder_state * 5] = '<';
355
356 oled_write_P(PSTR("-----"), false);
357 oled_write(buffer, false);
358#endif
307} 359}
308 360
309void oled_task_user(void) { 361void oled_task_user(void) {
310 if (is_keyboard_master()) 362 if (is_keyboard_master()) {
311 render_status(); 363 render_status();
312 else 364 } else {
313 render_logo(); 365 render_logo();
366 oled_scroll_left();
367 }
314} 368}
315 369
316#endif 370#endif