aboutsummaryrefslogtreecommitdiff
path: root/users/drashna
diff options
context:
space:
mode:
authorDrashna Jaelre <drashna@live.com>2021-07-26 17:59:49 -0700
committerGitHub <noreply@github.com>2021-07-26 17:59:49 -0700
commiteb46c954dcf99d842967cc6095827316ffddd291 (patch)
tree69f0a5ade629b63731c246888c0e067312e0970f /users/drashna
parent368efb5d2b834d995ba24cd23349327bab02918b (diff)
downloadqmk_firmware-eb46c954dcf99d842967cc6095827316ffddd291.tar.gz
qmk_firmware-eb46c954dcf99d842967cc6095827316ffddd291.zip
[Keymap] Drashna's Defaults cleanup (#13722)
Diffstat (limited to 'users/drashna')
-rw-r--r--users/drashna/config.h35
-rw-r--r--users/drashna/drashna.c30
-rw-r--r--users/drashna/drashna.h43
-rw-r--r--users/drashna/drashna_font.h161
-rw-r--r--users/drashna/oled_stuff.c39
-rw-r--r--users/drashna/oled_stuff.h2
-rw-r--r--users/drashna/process_records.c83
-rw-r--r--users/drashna/process_records.h103
-rw-r--r--users/drashna/rgb_matrix_stuff.c34
-rw-r--r--users/drashna/rgb_stuff.c94
-rw-r--r--users/drashna/rules.mk24
-rw-r--r--users/drashna/tap_dances.c8
-rw-r--r--users/drashna/tap_dances.h6
-rw-r--r--users/drashna/template.c6
-rw-r--r--users/drashna/template.h4
-rw-r--r--users/drashna/transport_sync.c17
-rw-r--r--users/drashna/wrappers.h194
17 files changed, 435 insertions, 448 deletions
diff --git a/users/drashna/config.h b/users/drashna/config.h
index 445e18082..fbba210e7 100644
--- a/users/drashna/config.h
+++ b/users/drashna/config.h
@@ -57,26 +57,35 @@
57# define UNICODE_SONG_BSD SONG(WORKMAN_SOUND) 57# define UNICODE_SONG_BSD SONG(WORKMAN_SOUND)
58# define UNICODE_SONG_WINC SONG(PLOVER_GOODBYE_SOUND) 58# define UNICODE_SONG_WINC SONG(PLOVER_GOODBYE_SOUND)
59# endif 59# endif
60#endif // !AUDIO_ENABLE 60#endif // !AUDIO_ENABLE
61 61
62#define UNICODE_SELECTED_MODES UC_WIN, UC_MAC 62#define UNICODE_SELECTED_MODES UC_WIN, UC_MAC
63 63
64#ifdef RGBLIGHT_ENABLE 64#ifdef RGBLIGHT_ENABLE
65# define RGBLIGHT_SLEEP 65# define RGBLIGHT_SLEEP
66# undef RGBLIGHT_ANIMATIONS
66# if defined(__AVR__) && !defined(__AVR_AT90USB1286__) 67# if defined(__AVR__) && !defined(__AVR_AT90USB1286__)
67# undef RGBLIGHT_ANIMATIONS
68# define RGBLIGHT_EFFECT_BREATHING 68# define RGBLIGHT_EFFECT_BREATHING
69# define RGBLIGHT_EFFECT_SNAKE 69# define RGBLIGHT_EFFECT_SNAKE
70# define RGBLIGHT_EFFECT_KNIGHT 70# define RGBLIGHT_EFFECT_KNIGHT
71# else 71# else
72# define RGBLIGHT_ANIMATIONS 72# define RGBLIGHT_EFFECT_BREATHING
73# define RGBLIGHT_EFFECT_RAINBOW_MOOD
74# define RGBLIGHT_EFFECT_RAINBOW_SWIRL
75# define RGBLIGHT_EFFECT_SNAKE
76# define RGBLIGHT_EFFECT_KNIGHT
77// # define RGBLIGHT_EFFECT_CHRISTMAS
78// # define RGBLIGHT_EFFECT_STATIC_GRADIENT
79// # define RGBLIGHT_EFFECT_RGB_TEST
80// # define RGBLIGHT_EFFECT_ALTERNATING
81# define RGBLIGHT_EFFECT_TWINKLE
73# endif 82# endif
74# define RGBLIGHT_EFFECT_TWINKLE_LIFE 250 83# define RGBLIGHT_EFFECT_TWINKLE_LIFE 250
75# define RGBLIGHT_EFFECT_TWINKLE_PROBABILITY 1 / 24 84# define RGBLIGHT_EFFECT_TWINKLE_PROBABILITY 1 / 24
76#endif // RGBLIGHT_ENABLE 85#endif // RGBLIGHT_ENABLE
77 86
78#ifdef RGB_MATRIX_ENABLE 87#ifdef RGB_MATRIX_ENABLE
79# define RGB_MATRIX_KEYPRESSES // reacts to keypresses (will slow down matrix scan by a lot) 88# define RGB_MATRIX_KEYPRESSES // reacts to keypresses (will slow down matrix scan by a lot)
80// # define RGB_MATRIX_KEYRELEASES // reacts to keyreleases (not recommened) 89// # define RGB_MATRIX_KEYRELEASES // reacts to keyreleases (not recommened)
81# define RGB_MATRIX_FRAMEBUFFER_EFFECTS 90# define RGB_MATRIX_FRAMEBUFFER_EFFECTS
82// # define RGB_DISABLE_AFTER_TIMEOUT 0 // number of ticks to wait until disabling effects 91// # define RGB_DISABLE_AFTER_TIMEOUT 0 // number of ticks to wait until disabling effects
@@ -120,8 +129,8 @@
120# define DISABLE_RGB_MATRIX_MULTISPLASH 129# define DISABLE_RGB_MATRIX_MULTISPLASH
121# define DISABLE_RGB_MATRIX_SOLID_SPLASH 130# define DISABLE_RGB_MATRIX_SOLID_SPLASH
122# define DISABLE_RGB_MATRIX_SOLID_MULTISPLASH 131# define DISABLE_RGB_MATRIX_SOLID_MULTISPLASH
123# endif // AVR 132# endif // AVR
124#endif // RGB_MATRIX_ENABLE 133#endif // RGB_MATRIX_ENABLE
125 134
126#ifdef OLED_DRIVER_ENABLE 135#ifdef OLED_DRIVER_ENABLE
127# ifdef SPLIT_KEYBOARD 136# ifdef SPLIT_KEYBOARD
@@ -148,16 +157,16 @@
148 157
149#ifndef ONESHOT_TAP_TOGGLE 158#ifndef ONESHOT_TAP_TOGGLE
150# define ONESHOT_TAP_TOGGLE 2 159# define ONESHOT_TAP_TOGGLE 2
151#endif // !ONESHOT_TAP_TOGGLE 160#endif // !ONESHOT_TAP_TOGGLE
152 161
153#ifndef ONESHOT_TIMEOUT 162#ifndef ONESHOT_TIMEOUT
154# define ONESHOT_TIMEOUT 3000 163# define ONESHOT_TIMEOUT 3000
155#endif // !ONESHOT_TIMEOUT 164#endif // !ONESHOT_TIMEOUT
156 165
157#ifdef QMK_KEYS_PER_SCAN 166#ifdef QMK_KEYS_PER_SCAN
158# undef QMK_KEYS_PER_SCAN 167# undef QMK_KEYS_PER_SCAN
159# define QMK_KEYS_PER_SCAN 2 168# define QMK_KEYS_PER_SCAN 2
160#endif // !QMK_KEYS_PER_SCAN 169#endif // !QMK_KEYS_PER_SCAN
161 170
162// this makes it possible to do rolling combos (zx) with keys that 171// this makes it possible to do rolling combos (zx) with keys that
163// convert to other keys on hold (z becomes ctrl when you hold it, 172// convert to other keys on hold (z becomes ctrl when you hold it,
@@ -167,7 +176,7 @@
167#undef PERMISSIVE_HOLD 176#undef PERMISSIVE_HOLD
168//#define TAPPING_FORCE_HOLD_PER_KEY 177//#define TAPPING_FORCE_HOLD_PER_KEY
169//#define RETRO_TAPPING_PER_KEY 178//#define RETRO_TAPPING_PER_KEY
170#ifndef KEYBOARD_kyria_rev1 179#if !defined(KEYBOARD_kyria) && !defined(KEYBOARD_splitkb_kyria)
171# define TAPPING_TERM_PER_KEY 180# define TAPPING_TERM_PER_KEY
172#endif 181#endif
173 182
@@ -179,7 +188,7 @@
179 188
180#ifdef TAPPING_TERM 189#ifdef TAPPING_TERM
181# undef TAPPING_TERM 190# undef TAPPING_TERM
182#endif // TAPPING_TERM 191#endif // TAPPING_TERM
183#if defined(KEYBOARD_ergodox_ez) 192#if defined(KEYBOARD_ergodox_ez)
184# define TAPPING_TERM 185 193# define TAPPING_TERM 185
185#elif defined(KEYBOARD_crkbd) 194#elif defined(KEYBOARD_crkbd)
@@ -293,4 +302,4 @@
293# ifndef MOUSEKEY_WHEEL_DECELERATED_MOVEMENTS 302# ifndef MOUSEKEY_WHEEL_DECELERATED_MOVEMENTS
294# define MOUSEKEY_WHEEL_DECELERATED_MOVEMENTS 8 303# define MOUSEKEY_WHEEL_DECELERATED_MOVEMENTS 8
295# endif 304# endif
296#endif // MOUSEKEY_ENABLE 305#endif // MOUSEKEY_ENABLE
diff --git a/users/drashna/drashna.c b/users/drashna/drashna.c
index b54d0cfcc..4cef5433d 100644
--- a/users/drashna/drashna.c
+++ b/users/drashna/drashna.c
@@ -103,12 +103,12 @@ void shutdown_user(void) {
103 rgblight_enable_noeeprom(); 103 rgblight_enable_noeeprom();
104 rgblight_mode_noeeprom(1); 104 rgblight_mode_noeeprom(1);
105 rgblight_setrgb_red(); 105 rgblight_setrgb_red();
106#endif // RGBLIGHT_ENABLE 106#endif // RGBLIGHT_ENABLE
107#ifdef RGB_MATRIX_ENABLE 107#ifdef RGB_MATRIX_ENABLE
108 rgb_matrix_set_color_all(0xFF, 0x00, 0x00); 108 rgb_matrix_set_color_all(0xFF, 0x00, 0x00);
109 rgb_matrix_update_pwm_buffers(); 109 rgb_matrix_update_pwm_buffers();
110 110
111#endif // RGB_MATRIX_ENABLE 111#endif // RGB_MATRIX_ENABLE
112 shutdown_keymap(); 112 shutdown_keymap();
113} 113}
114 114
@@ -124,8 +124,12 @@ void suspend_power_down_user(void) {
124__attribute__((weak)) void suspend_wakeup_init_keymap(void) {} 124__attribute__((weak)) void suspend_wakeup_init_keymap(void) {}
125 125
126void suspend_wakeup_init_user(void) { 126void suspend_wakeup_init_user(void) {
127 if (layer_state_is(_GAMEPAD)) { layer_off(_GAMEPAD); } 127 if (layer_state_is(_GAMEPAD)) {
128 if (layer_state_is(_DIABLO)) { layer_off(_DIABLO); } 128 layer_off(_GAMEPAD);
129 }
130 if (layer_state_is(_DIABLO)) {
131 layer_off(_DIABLO);
132 }
129 suspend_wakeup_init_keymap(); 133 suspend_wakeup_init_keymap();
130} 134}
131 135
@@ -142,13 +146,13 @@ void matrix_scan_user(void) {
142 startup_user(); 146 startup_user();
143 } 147 }
144 148
145#ifdef TAP_DANCE_ENABLE // Run Diablo 3 macro checking code. 149#ifdef TAP_DANCE_ENABLE // Run Diablo 3 macro checking code.
146 run_diablo_macro_check(); 150 run_diablo_macro_check();
147#endif // TAP_DANCE_ENABLE 151#endif // TAP_DANCE_ENABLE
148 152
149#if defined(RGBLIGHT_ENABLE) 153#if defined(RGBLIGHT_ENABLE)
150 matrix_scan_rgb_light(); 154 matrix_scan_rgb_light();
151#endif // RGBLIGHT_ENABLE 155#endif // RGBLIGHT_ENABLE
152#if defined(RGB_MATRIX_ENABLE) 156#if defined(RGB_MATRIX_ENABLE)
153 matrix_scan_rgb_matrix(); 157 matrix_scan_rgb_matrix();
154#endif 158#endif
@@ -167,13 +171,15 @@ __attribute__((weak)) layer_state_t layer_state_set_keymap(layer_state_t state)
167// on layer change, no matter where the change was initiated 171// on layer change, no matter where the change was initiated
168// Then runs keymap's layer change check 172// Then runs keymap's layer change check
169layer_state_t layer_state_set_user(layer_state_t state) { 173layer_state_t layer_state_set_user(layer_state_t state) {
170 if (!is_keyboard_master()) { return state; } 174 if (!is_keyboard_master()) {
175 return state;
176 }
171 177
172 state = layer_state_set_keymap(state); 178 state = layer_state_set_keymap(state);
173 state = update_tri_layer_state(state, _RAISE, _LOWER, _ADJUST); 179 state = update_tri_layer_state(state, _RAISE, _LOWER, _ADJUST);
174#if defined(RGBLIGHT_ENABLE) 180#if defined(RGBLIGHT_ENABLE)
175 state = layer_state_set_rgb_light(state); 181 state = layer_state_set_rgb_light(state);
176#endif // RGBLIGHT_ENABLE 182#endif // RGBLIGHT_ENABLE
177#if defined(AUDIO_ENABLE) && !defined(__arm__) 183#if defined(AUDIO_ENABLE) && !defined(__arm__)
178 static bool is_gamepad_on = false; 184 static bool is_gamepad_on = false;
179 if (layer_state_cmp(state, _GAMEPAD) != is_gamepad_on) { 185 if (layer_state_cmp(state, _GAMEPAD) != is_gamepad_on) {
@@ -192,13 +198,15 @@ __attribute__((weak)) layer_state_t default_layer_state_set_keymap(layer_state_t
192 198
193// Runs state check and changes underglow color and animation 199// Runs state check and changes underglow color and animation
194layer_state_t default_layer_state_set_user(layer_state_t state) { 200layer_state_t default_layer_state_set_user(layer_state_t state) {
195 if (!is_keyboard_master()) { return state; } 201 if (!is_keyboard_master()) {
202 return state;
203 }
196 204
197 state = default_layer_state_set_keymap(state); 205 state = default_layer_state_set_keymap(state);
198#if 0 206#if 0
199# if defined(RGBLIGHT_ENABLE) || defined(RGB_MATRIX_ENABLE) 207# if defined(RGBLIGHT_ENABLE) || defined(RGB_MATRIX_ENABLE)
200 state = default_layer_state_set_rgb(state); 208 state = default_layer_state_set_rgb(state);
201# endif // RGBLIGHT_ENABLE 209# endif // RGBLIGHT_ENABLE
202#endif 210#endif
203 return state; 211 return state;
204} 212}
diff --git a/users/drashna/drashna.h b/users/drashna/drashna.h
index f1d756f74..ca849b050 100644
--- a/users/drashna/drashna.h
+++ b/users/drashna/drashna.h
@@ -22,7 +22,7 @@
22#include "process_records.h" 22#include "process_records.h"
23#ifdef TAP_DANCE_ENABLE 23#ifdef TAP_DANCE_ENABLE
24# include "tap_dances.h" 24# include "tap_dances.h"
25#endif // TAP_DANCE_ENABLE 25#endif // TAP_DANCE_ENABLE
26#if defined(RGBLIGHT_ENABLE) 26#if defined(RGBLIGHT_ENABLE)
27# include "rgb_stuff.h" 27# include "rgb_stuff.h"
28#endif 28#endif
@@ -41,25 +41,44 @@
41 41
42/* Define layer names */ 42/* Define layer names */
43enum userspace_layers { 43enum userspace_layers {
44 _QWERTY = 0, 44 _QWERTY = 0,
45 _NUMLOCK = 0, 45 _NUMLOCK = 0,
46 FIRST_DEFAULT_LAYER = 0,
47 _COLEMAK_DH,
46 _COLEMAK, 48 _COLEMAK,
47 _DVORAK, 49 _DVORAK,
48 _WORKMAN, 50 LAST_DEFAULT_LAYER = _DVORAK,
49 _NORMAN,
50 _MALTRON,
51 _EUCALYN,
52 _CARPLAX,
53 _GAMEPAD, 51 _GAMEPAD,
54 _DIABLO, 52 _DIABLO,
55 _MACROS, 53 _MOUSE,
56 _MEDIA, 54 _MEDIA,
57 _LOWER, 55 _LOWER,
58 _RAISE, 56 _RAISE,
59 _ADJUST, 57 _ADJUST,
60}; 58};
61 59
62#define _MOUSE _MACROS 60#define _MACROS _MOUSE
61#define _DEFAULT_LAYER_1 FIRST_DEFAULT_LAYER
62#define _DEFAULT_LAYER_2 (FIRST_DEFAULT_LAYER + 1)
63#define _DEFAULT_LAYER_3 (FIRST_DEFAULT_LAYER + 2)
64#define _DEFAULT_LAYER_4 (FIRST_DEFAULT_LAYER + 3)
65#if LAST_DEFAULT_LAYER > (FIRST_DEFAULT_LAYER + 3)
66# define _DEFAULT_LAYER_2 (FIRST_DEFAULT_LAYER + 4)
67# define _DEFAULT_LAYER_3 (FIRST_DEFAULT_LAYER + 5)
68# define _DEFAULT_LAYER_4 (FIRST_DEFAULT_LAYER + 6)
69# define _DEFAULT_LAYER_2 (FIRST_DEFAULT_LAYER + 7)
70# if LAST_DEFAULT_LAYER > (FIRST_DEFAULT_LAYER + 7)
71# define _DEFAULT_LAYER_2 (FIRST_DEFAULT_LAYER + 8)
72# define _DEFAULT_LAYER_3 (FIRST_DEFAULT_LAYER + 9)
73# define _DEFAULT_LAYER_4 (FIRST_DEFAULT_LAYER + 10)
74# define _DEFAULT_LAYER_4 (FIRST_DEFAULT_LAYER + 11)
75# endif
76#endif
77
78#define DEFAULT_LAYER_1_HSV HSV_CYAN
79#define DEFAULT_LAYER_2_HSV HSV_SPRINGGREEN
80#define DEFAULT_LAYER_3_HSV HSV_MAGENTA
81#define DEFAULT_LAYER_4_HSV HSV_GOLDENROD
63 82
64bool mod_key_press_timer(uint16_t code, uint16_t mod_code, bool pressed); 83bool mod_key_press_timer(uint16_t code, uint16_t mod_code, bool pressed);
65bool mod_key_press(uint16_t code, uint16_t mod_code, bool pressed, uint16_t this_timer); 84bool mod_key_press(uint16_t code, uint16_t mod_code, bool pressed, uint16_t this_timer);
@@ -101,12 +120,12 @@ We use custom codes here, so we can substitute the right stuff
101# define KC_D3_2 TD(TD_D3_2) 120# define KC_D3_2 TD(TD_D3_2)
102# define KC_D3_3 TD(TD_D3_3) 121# define KC_D3_3 TD(TD_D3_3)
103# define KC_D3_4 TD(TD_D3_4) 122# define KC_D3_4 TD(TD_D3_4)
104#else // TAP_DANCE_ENABLE 123#else // TAP_DANCE_ENABLE
105# define KC_D3_1 KC_1 124# define KC_D3_1 KC_1
106# define KC_D3_2 KC_2 125# define KC_D3_2 KC_2
107# define KC_D3_3 KC_3 126# define KC_D3_3 KC_3
108# define KC_D3_4 KC_4 127# define KC_D3_4 KC_4
109#endif // TAP_DANCE_ENABLE 128#endif // TAP_DANCE_ENABLE
110 129
111#if defined(DRASHNA_CUSTOM_TRANSPORT) && defined(POINTING_DEVICE_ENABLE) 130#if defined(DRASHNA_CUSTOM_TRANSPORT) && defined(POINTING_DEVICE_ENABLE)
112void master_mouse_send(int8_t x, int8_t y); 131void master_mouse_send(int8_t x, int8_t y);
diff --git a/users/drashna/drashna_font.h b/users/drashna/drashna_font.h
index 46ebf3710..e9353e62a 100644
--- a/users/drashna/drashna_font.h
+++ b/users/drashna/drashna_font.h
@@ -3,7 +3,10 @@
3// additional fonts from 3// additional fonts from
4// https://github.com/datacute/TinyOLED-Fonts 4// https://github.com/datacute/TinyOLED-Fonts
5 5
6#include "progmem.h" 6#if __has_include("../../../../Documents/qmk/oled_font.h")
7# include "../../../../Documents/qmk/oled_font.h"
8#else
9# include "progmem.h"
7 10
8// clang-format off 11// clang-format off
9static const unsigned char font[] PROGMEM = { 12static const unsigned char font[] PROGMEM = {
@@ -39,7 +42,7 @@ static const unsigned char font[] PROGMEM = {
39 0x0C, 0x1E, 0x0C, 0x1E, 0x0C, 0x00, // 0x1D 29 ↭ 42 0x0C, 0x1E, 0x0C, 0x1E, 0x0C, 0x00, // 0x1D 29 ↭
40 0x30, 0x38, 0x3E, 0x38, 0x30, 0x00, // 0x1E 30 43 0x30, 0x38, 0x3E, 0x38, 0x30, 0x00, // 0x1E 30
41 0x06, 0x0E, 0x3E, 0x0E, 0x06, 0x00, // 0x1F 31 44 0x06, 0x0E, 0x3E, 0x0E, 0x06, 0x00, // 0x1F 31
42#if defined(OLED_FONT_5X5) 45# if defined(OLED_FONT_5X5)
43 0x00,0x00,0x00,0x00,0x00,0x00, // 0x20 32 46 0x00,0x00,0x00,0x00,0x00,0x00, // 0x20 32
44 0x5c,0x00,0x00,0x00,0x00,0x00, // 0x21 33 ! 47 0x5c,0x00,0x00,0x00,0x00,0x00, // 0x21 33 !
45 0x06,0x00,0x06,0x00,0x00,0x00, // 0x22 34 " 48 0x06,0x00,0x06,0x00,0x00,0x00, // 0x22 34 "
@@ -136,7 +139,7 @@ static const unsigned char font[] PROGMEM = {
136 0x44,0x7c,0x10,0x00,0x00,0x00, // 0x7D 125 } 139 0x44,0x7c,0x10,0x00,0x00,0x00, // 0x7D 125 }
137 0x02,0x01,0x02,0x01,0x00,0x00, // 0x7E 126 ~ 140 0x02,0x01,0x02,0x01,0x00,0x00, // 0x7E 126 ~
138 0x00,0x00,0x00,0x00,0x00,0x00, // 0x7F 127 141 0x00,0x00,0x00,0x00,0x00,0x00, // 0x7F 127
139#elif defined(OLED_FONT_AZTECH) 142# lif defined(OLED_FONT_AZTECH)
140 0x00,0x00,0x00,0x00,0x00,0x00, // 0x20 32 143 0x00,0x00,0x00,0x00,0x00,0x00, // 0x20 32
141 0x00,0x2e,0x00,0x00,0x00,0x00, // 0x21 33 ! 144 0x00,0x2e,0x00,0x00,0x00,0x00, // 0x21 33 !
142 0x00,0x02,0x00,0x02,0x00,0x00, // 0x22 34 " 145 0x00,0x02,0x00,0x02,0x00,0x00, // 0x22 34 "
@@ -233,7 +236,7 @@ static const unsigned char font[] PROGMEM = {
233 0x22,0x3e,0x08,0x00,0x00,0x00, // 0x7D 125 } 236 0x22,0x3e,0x08,0x00,0x00,0x00, // 0x7D 125 }
234 0x00,0x00,0x00,0x00,0x00,0x00, // 0x7E 126 ~ 237 0x00,0x00,0x00,0x00,0x00,0x00, // 0x7E 126 ~
235 0x00,0x00,0x00,0x00,0x00,0x00, // 0x7F 127 238 0x00,0x00,0x00,0x00,0x00,0x00, // 0x7F 127
236#elif defined(OLED_FONT_BMPLAIN) 239# elif defined(OLED_FONT_BMPLAIN)
237 0x00,0x00,0x00,0x00,0x00,0x00, // 0x20 32 240 0x00,0x00,0x00,0x00,0x00,0x00, // 0x20 32
238 0x2e,0x00,0x00,0x00,0x00,0x00, // 0x21 33 ! 241 0x2e,0x00,0x00,0x00,0x00,0x00, // 0x21 33 !
239 0x03,0x00,0x03,0x00,0x00,0x00, // 0x22 34 " 242 0x03,0x00,0x03,0x00,0x00,0x00, // 0x22 34 "
@@ -330,7 +333,7 @@ static const unsigned char font[] PROGMEM = {
330 0x22,0x3e,0x08,0x00,0x00,0x00, // 0x7D 125 } 333 0x22,0x3e,0x08,0x00,0x00,0x00, // 0x7D 125 }
331 0x01,0x01,0x01,0x00,0x00,0x00, // 0x7E 126 ~ 334 0x01,0x01,0x01,0x00,0x00,0x00, // 0x7E 126 ~
332 0x00,0x00,0x00,0x00,0x00,0x00, // 0x7F 127 335 0x00,0x00,0x00,0x00,0x00,0x00, // 0x7F 127
333#elif defined(OLED_FONT_SUPER_DIGG) 336# elif defined(OLED_FONT_SUPER_DIGG)
334 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 0x20 32 337 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 0x20 32
335 0x58, 0x5C, 0x00, 0x00, 0x00, 0x00, // 0x21 33 ! 338 0x58, 0x5C, 0x00, 0x00, 0x00, 0x00, // 0x21 33 !
336 0x00, 0x01, 0x00, 0x00, 0x01, 0x00, // 0x22 34 " 339 0x00, 0x01, 0x00, 0x00, 0x01, 0x00, // 0x22 34 "
@@ -427,7 +430,7 @@ static const unsigned char font[] PROGMEM = {
427 0xC2, 0xFE, 0x10, 0x00, 0x00, 0x00, // 0x7D 125 } 430 0xC2, 0xFE, 0x10, 0x00, 0x00, 0x00, // 0x7D 125 }
428 0x02, 0x01, 0x03, 0x04, 0x06, 0x02, // 0x7E 126 ~ 431 0x02, 0x01, 0x03, 0x04, 0x06, 0x02, // 0x7E 126 ~
429 0x3C, 0x22, 0x21, 0x22, 0x3C, 0x00, // 0x7F 127 432 0x3C, 0x22, 0x21, 0x22, 0x3C, 0x00, // 0x7F 127
430#else // default font 433# else // default font
431 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 0x20 32 434 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 0x20 32
432 0x00, 0x00, 0x5F, 0x00, 0x00, 0x00, // 0x21 33 ! 435 0x00, 0x00, 0x5F, 0x00, 0x00, 0x00, // 0x21 33 !
433 0x00, 0x07, 0x00, 0x07, 0x00, 0x00, // 0x22 34 " 436 0x00, 0x07, 0x00, 0x07, 0x00, 0x00, // 0x22 34 "
@@ -524,9 +527,9 @@ static const unsigned char font[] PROGMEM = {
524 0x00, 0x41, 0x36, 0x08, 0x00, 0x00, // 0x7D 125 } 527 0x00, 0x41, 0x36, 0x08, 0x00, 0x00, // 0x7D 125 }
525 0x02, 0x01, 0x02, 0x04, 0x02, 0x00, // 0x7E 126 ~ 528 0x02, 0x01, 0x02, 0x04, 0x02, 0x00, // 0x7E 126 ~
526 0x3C, 0x26, 0x23, 0x26, 0x3C, 0x00, // 0x7F 127 529 0x3C, 0x26, 0x23, 0x26, 0x3C, 0x00, // 0x7F 127
527#endif 530# endif
528 531
529#if defined(OLED_LOGO_GMK_BAD) 532# if defined(OLED_LOGO_GMK_BAD)
530 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 0x80 533 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 0x80
531 0x80, 0xC0, 0xE0, 0xF0, 0xF0, 0x70, // 0x81 534 0x80, 0xC0, 0xE0, 0xF0, 0xF0, 0x70, // 0x81
532 0x38, 0x38, 0x38, 0x78, 0x70, 0xF0, // 0x82 535 0x38, 0x38, 0x38, 0x78, 0x70, 0xF0, // 0x82
@@ -655,7 +658,7 @@ static const unsigned char font[] PROGMEM = {
655 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 658 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
656 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 659 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
657 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 660 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
658 #elif defined(OLED_LOGO_HUE_MANITEE) 661# elif defined(OLED_LOGO_HUE_MANITEE)
659 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 0x80 662 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 0x80
660 0x00, 0x00, 0x00, 0x80, 0xC0, 0xC0, 663 0x00, 0x00, 0x00, 0x80, 0xC0, 0xC0,
661 0x90, 0x70, 0xE8, 0xA8, 0xE4, 0xC4, 664 0x90, 0x70, 0xE8, 0xA8, 0xE4, 0xC4,
@@ -784,7 +787,7 @@ static const unsigned char font[] PROGMEM = {
784 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 787 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
785 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 788 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
786 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 789 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
787 #elif defined(OLED_LOGO_CORNE) 790# elif defined(OLED_LOGO_CORNE)
788 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 0x80 791 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 0x80
789 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 792 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
790 0x00, 0x00, 0x00, 0x00, 0xC0, 0xE0, 793 0x00, 0x00, 0x00, 0x00, 0xC0, 0xE0,
@@ -914,7 +917,7 @@ static const unsigned char font[] PROGMEM = {
914 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 917 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
915 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 918 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
916 919
917#elif defined(OLED_LOGO_GOTHAM) // see /keyboards/crkbd/keymaps/gotham/oled.c 920# elif defined(OLED_LOGO_GOTHAM) // see /keyboards/crkbd/keymaps/gotham/oled.c
918 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 0x80 921 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 0x80
919 0x00, 0x00, 0xC0, 0x60, 0x30, 0x18, 922 0x00, 0x00, 0xC0, 0x60, 0x30, 0x18,
920 0xF8, 0x18, 0x00, 0xC0, 0x70, 0x1C, 923 0xF8, 0x18, 0x00, 0xC0, 0x70, 0x1C,
@@ -1043,137 +1046,7 @@ static const unsigned char font[] PROGMEM = {
1043 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 1046 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1044 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 1047 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1045 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 1048 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1046 1049# else
1047#elif defined(OLED_LOGO_SCIFI)
1048 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1049 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1050 0x00, 0x00, 0x00, 0x00, 0x00, 0x80,
1051 0x80, 0x80, 0xC0, 0xC0, 0xE0, 0x60,
1052 0x70, 0x30, 0x38, 0x18, 0x0C, 0x0C,
1053 0x1E, 0x0C, 0x80, 0x00, 0x00, 0x00,
1054 0x00, 0x00, 0x00, 0x00, 0x00, 0x80,
1055 0xC0, 0xE0, 0xF0, 0x38, 0x1C, 0x0E,
1056 0x07, 0x00, 0x00, 0x00, 0x00, 0x00,
1057 0x00, 0x00, 0x00, 0x00, 0x00, 0x80,
1058 0x80, 0x80, 0x00, 0x00, 0x00, 0x00,
1059 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1060 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1061 0x00, 0x00, 0x00, 0x00, 0x00, 0x80,
1062 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
1063 0x00, 0x00, 0x80, 0x40, 0x00, 0x00,
1064 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1065 0x00, 0x00, 0x80, 0x80, 0x80, 0x00,
1066 0x00, 0x00, 0x00, 0x80, 0x80, 0xC0,
1067 0xC0, 0x60, 0x60, 0x30, 0x10, 0x00,
1068 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1069 0xE0, 0xF0, 0xF0, 0xF0, 0xE0, 0xEC,
1070 0xEE, 0xF7, 0xF3, 0x70, 0x20, 0x00,
1071 0x7C, 0x7C, 0x7C, 0x7E, 0x00, 0x7E,
1072 0x7E, 0x7E, 0x7F, 0x7F, 0x7F, 0x00,
1073 0x00, 0x80, 0xC0, 0xE0, 0x7E, 0x5B,
1074 0x4F, 0x5B, 0xFE, 0xC0, 0x00, 0x00,
1075 0xC0, 0x00, 0xDC, 0xD7, 0xDE, 0xDE,
1076 0xDE, 0xD7, 0xDC, 0x00, 0xC0, 0x00,
1077 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1078 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1079 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1080 0x00, 0x00, 0x00, 0x00, 0x00, 0x10,
1081 0x30, 0x30, 0x70, 0x78, 0x78, 0x7C,
1082 0x7C, 0x7E, 0x3E, 0x3F, 0x3F, 0x3B,
1083 0x3B, 0x39, 0x39, 0x38, 0x38, 0x38,
1084 0x38, 0x38, 0x38, 0x38, 0x3C, 0x38,
1085 0x18, 0x8F, 0xDF, 0xF8, 0x7C, 0xBE,
1086 0xDF, 0xF7, 0xFB, 0xFD, 0xFE, 0xEF,
1087 0x73, 0x3B, 0x1B, 0x1F, 0xEF, 0xF7,
1088 0xFF, 0x7E, 0x6F, 0x6F, 0x6F, 0x6F,
1089 0x6D, 0xBD, 0xE1, 0xF9, 0x3F, 0x3F,
1090 0x39, 0x79, 0x79, 0x7D, 0xED, 0xED,
1091 0xCD, 0xC7, 0xC7, 0x87, 0xC7, 0xE3,
1092 0xE0, 0xF8, 0x7E, 0x3F, 0x37, 0x33,
1093 0x3B, 0x1B, 0x19, 0x19, 0x0D, 0xED,
1094 0xFF, 0xBF, 0xC7, 0xE7, 0xE3, 0xF0,
1095 0x7C, 0xDE, 0xE7, 0xFB, 0x3E, 0x3F,
1096 0xFC, 0xE0, 0xF8, 0x3E, 0xCF, 0xF3,
1097 0xFC, 0x3F, 0x1F, 0x1F, 0x3C, 0x7E,
1098 0x76, 0xF3, 0xE3, 0x81, 0x01, 0x00,
1099 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1100 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1101 0x0F, 0x1F, 0x3F, 0x7F, 0x7F, 0x7F,
1102 0x7F, 0x7F, 0x3F, 0x1E, 0x0C, 0x00,
1103 0x1F, 0x1F, 0x1F, 0x3F, 0x00, 0x3F,
1104 0x3F, 0x3F, 0x7F, 0x7F, 0x7F, 0x00,
1105 0x30, 0x7B, 0x7F, 0x78, 0x30, 0x20,
1106 0x20, 0x30, 0x78, 0x7F, 0x3B, 0x00,
1107 0x03, 0x00, 0x0F, 0x7F, 0x0F, 0x0F,
1108 0x0F, 0x7F, 0x0F, 0x00, 0x03, 0x00,
1109 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1110 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1111 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1112 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1113 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1114 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1115 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1116 0x00, 0x00, 0x20, 0x30, 0x18, 0x1E,
1117 0x0F, 0x03, 0x01, 0x00, 0x00, 0x00,
1118 0x01, 0x03, 0x03, 0x01, 0x00, 0x00,
1119 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1120 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1121 0x00, 0x03, 0x07, 0x00, 0x00, 0x00,
1122 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1123 0x00, 0x01, 0xE1, 0x79, 0x3E, 0x1F,
1124 0x07, 0x01, 0x00, 0x00, 0x00, 0x00,
1125 0x00, 0x00, 0x00, 0x00, 0x01, 0x01,
1126 0x01, 0x00, 0x00, 0x01, 0x01, 0x01,
1127 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1128 0x00, 0x00, 0x00, 0x00, 0x00, 0x01,
1129 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1130 0x00, 0x00, 0x00, 0x01, 0x01, 0x03,
1131 0x02, 0x06, 0x04, 0x08, 0x18, 0x10,
1132 0x30, 0x20, 0x60, 0x00, 0x00, 0x00,
1133 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1134 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1135 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1136 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1137 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1138 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1139 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1140 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1141 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1142 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1143 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1144 0x00, 0x1C, 0x1C, 0x3E, 0x7F, 0x7F,
1145 0x00, 0x14, 0x08, 0x14, 0x00, 0x00,
1146 0x00, 0x1C, 0x1C, 0x3E, 0x7F, 0x7F,
1147 0x00, 0x22, 0x1C, 0x41, 0x3E, 0x00,
1148 0x00, 0x00, 0x00, 0x30, 0x18, 0x0C,
1149 0x06, 0x0C, 0x18, 0x30, 0x00, 0x00,
1150 0x00, 0x00, 0x06, 0x06, 0x06, 0x0C,
1151 0x18, 0x30, 0x66, 0x66, 0x66, 0x00,
1152 0x00, 0x00, 0x00, 0x08, 0x0C, 0x7E,
1153 0x7F, 0x7E, 0x0C, 0x08, 0x00, 0x00,
1154 0x00, 0x00, 0x77, 0x77, 0x77, 0x00,
1155 0x77, 0x77, 0x77, 0x00, 0x00, 0x00,
1156 0x00, 0x00, 0xE7, 0xA5, 0xFF, 0x24,
1157 0x24, 0xFF, 0xA5, 0xE7, 0x00, 0x00,
1158 0x00, 0x00, 0x1C, 0x22, 0xC9, 0xD1,
1159 0xC9, 0x22, 0x1C, 0x00, 0x00, 0x00,
1160 0x00, 0x10, 0x02, 0x38, 0xFC, 0xED,
1161 0xFC, 0x38, 0x02, 0x10, 0x00, 0x00,
1162 0x00, 0x00, 0x00, 0x3E, 0x4A, 0x4F,
1163 0x4A, 0x3E, 0x00, 0x00, 0x00, 0x00,
1164 0x00, 0x00, 0x40, 0x60, 0x6A, 0x64,
1165 0x6A, 0x60, 0x40, 0x00, 0x00, 0x00,
1166 0x00, 0x04, 0x42, 0x69, 0x65, 0x65,
1167 0x65, 0x69, 0x42, 0x04, 0x00, 0x00,
1168 0x00, 0x00, 0x1C, 0x14, 0x1C, 0x08,
1169 0x18, 0x08, 0x18, 0x00, 0x00, 0x00,
1170 0x00, 0x70, 0xC8, 0xEE, 0xF9, 0x70,
1171 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1172 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1173 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1174 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1175 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
1176#else
1177 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 0x80 1050 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 0x80
1178 0x40, 0x40, 0x40, 0xF0, 0xF8, 0xF8, 1051 0x40, 0x40, 0x40, 0xF0, 0xF8, 0xF8,
1179 0xFF, 0x38, 0xFF, 0xF8, 0xF8, 0x3F, 1052 0xFF, 0x38, 0xFF, 0xF8, 0xF8, 0x3F,
@@ -1303,7 +1176,7 @@ static const unsigned char font[] PROGMEM = {
1303 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 1176 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1304 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 1177 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1305 1178
1306#endif 1179# endif
1307 }; 1180 };
1308
1309// clang-format on 1181// clang-format on
1182#endif
diff --git a/users/drashna/oled_stuff.c b/users/drashna/oled_stuff.c
index 253c5181e..b2f49a2e7 100644
--- a/users/drashna/oled_stuff.c
+++ b/users/drashna/oled_stuff.c
@@ -25,7 +25,7 @@
25#endif 25#endif
26 26
27uint32_t oled_timer = 0; 27uint32_t oled_timer = 0;
28static char keylog_str[KEYLOGGER_LENGTH + 1] = { 0 }; 28static char keylog_str[KEYLOGGER_LENGTH + 1] = {0};
29static uint16_t log_timer = 0; 29static uint16_t log_timer = 0;
30 30
31// clang-format off 31// clang-format off
@@ -58,7 +58,7 @@ void add_keylog(uint16_t keycode) {
58 } 58 }
59 59
60 for (uint8_t i = 1; i < KEYLOGGER_LENGTH; i++) { 60 for (uint8_t i = 1; i < KEYLOGGER_LENGTH; i++) {
61 keylog_str[i-1] = keylog_str[i]; 61 keylog_str[i - 1] = keylog_str[i];
62 } 62 }
63 63
64 if (keycode < (sizeof(code_to_name) / sizeof(char))) { 64 if (keycode < (sizeof(code_to_name) / sizeof(char))) {
@@ -92,14 +92,18 @@ void render_keylogger_status(void) {
92void render_default_layer_state(void) { 92void render_default_layer_state(void) {
93 oled_write_P(PSTR(OLED_RENDER_LAYOUT_NAME), false); 93 oled_write_P(PSTR(OLED_RENDER_LAYOUT_NAME), false);
94 switch (get_highest_layer(default_layer_state)) { 94 switch (get_highest_layer(default_layer_state)) {
95 case _QWERTY: oled_write_P(PSTR(OLED_RENDER_LAYOUT_QWERTY), false); break; 95 case _QWERTY:
96 case _COLEMAK: oled_write_P(PSTR(OLED_RENDER_LAYOUT_COLEMAK), false); break; 96 oled_write_P(PSTR(OLED_RENDER_LAYOUT_QWERTY), false);
97 case _DVORAK: oled_write_P(PSTR(OLED_RENDER_LAYOUT_DVORAK), false); break; 97 break;
98 case _WORKMAN: oled_write_P(PSTR(OLED_RENDER_LAYOUT_WORKMAN), false); break; 98 case _COLEMAK_DH:
99 case _NORMAN: oled_write_P(PSTR(OLED_RENDER_LAYOUT_NORMAN), false); break; 99 oled_write_P(PSTR(OLED_RENDER_LAYOUT_COLEMAK_DH), false);
100 case _MALTRON: oled_write_P(PSTR(OLED_RENDER_LAYOUT_MALTRON), false); break; 100 break;
101 case _EUCALYN: oled_write_P(PSTR(OLED_RENDER_LAYOUT_EUCALYN), false); break; 101 case _COLEMAK:
102 case _CARPLAX: oled_write_P(PSTR(OLED_RENDER_LAYOUT_CARPLAX), false); break; 102 oled_write_P(PSTR(OLED_RENDER_LAYOUT_COLEMAK), false);
103 break;
104 case _DVORAK:
105 oled_write_P(PSTR(OLED_RENDER_LAYOUT_DVORAK), false);
106 break;
103 } 107 }
104#ifdef OLED_DISPLAY_128X64 108#ifdef OLED_DISPLAY_128X64
105 oled_advance_page(true); 109 oled_advance_page(true);
@@ -336,8 +340,8 @@ void render_status_secondary(void) {
336 render_default_layer_state(); 340 render_default_layer_state();
337 render_layer_state(); 341 render_layer_state();
338 render_mod_status(get_mods() | get_oneshot_mods()); 342 render_mod_status(get_mods() | get_oneshot_mods());
339 // render_keylogger_status(); 343
340 render_keylock_status(host_keyboard_leds()); 344 // render_keylock_status(host_keyboard_leds());
341} 345}
342 346
343void render_status_main(void) { 347void render_status_main(void) {
@@ -360,7 +364,7 @@ void render_status_main(void) {
360 render_bootmagic_status(); 364 render_bootmagic_status();
361 render_user_status(); 365 render_user_status();
362 366
363 render_keylogger_status(); 367 // render_keylogger_status();
364} 368}
365 369
366__attribute__((weak)) oled_rotation_t oled_init_keymap(oled_rotation_t rotation) { return rotation; } 370__attribute__((weak)) oled_rotation_t oled_init_keymap(oled_rotation_t rotation) { return rotation; }
@@ -382,8 +386,15 @@ void oled_task_user(void) {
382 } else { 386 } else {
383 oled_on(); 387 oled_on();
384 } 388 }
385 render_status_main(); // Renders the current keyboard state (layer, lock, caps, scroll, etc) 389 }
390 if (is_keyboard_left()) {
391 render_status_main(); // Renders the current keyboard state (layer, lock, caps, scroll, etc)
386 } else { 392 } else {
387 render_status_secondary(); 393 render_status_secondary();
388 } 394 }
395 if (is_keyboard_master()) {
396 render_keylogger_status();
397 } else {
398 render_keylock_status(host_keyboard_leds());
399 }
389} 400}
diff --git a/users/drashna/oled_stuff.h b/users/drashna/oled_stuff.h
index ad9cf09ed..bba3f39cb 100644
--- a/users/drashna/oled_stuff.h
+++ b/users/drashna/oled_stuff.h
@@ -29,6 +29,7 @@ extern uint32_t oled_timer;
29 29
30# define OLED_RENDER_LAYOUT_NAME "Layout: " 30# define OLED_RENDER_LAYOUT_NAME "Layout: "
31# define OLED_RENDER_LAYOUT_QWERTY "Qwerty" 31# define OLED_RENDER_LAYOUT_QWERTY "Qwerty"
32# define OLED_RENDER_LAYOUT_COLEMAK_DH "Colemak-DH"
32# define OLED_RENDER_LAYOUT_COLEMAK "Colemak" 33# define OLED_RENDER_LAYOUT_COLEMAK "Colemak"
33# define OLED_RENDER_LAYOUT_DVORAK "Dvorak" 34# define OLED_RENDER_LAYOUT_DVORAK "Dvorak"
34# define OLED_RENDER_LAYOUT_WORKMAN "Workman" 35# define OLED_RENDER_LAYOUT_WORKMAN "Workman"
@@ -73,6 +74,7 @@ extern uint32_t oled_timer;
73 74
74# define OLED_RENDER_LAYOUT_NAME "Lyout" 75# define OLED_RENDER_LAYOUT_NAME "Lyout"
75# define OLED_RENDER_LAYOUT_QWERTY " QRTY" 76# define OLED_RENDER_LAYOUT_QWERTY " QRTY"
77# define OLED_RENDER_LAYOUT_COLEMAK_DH " cmDH"
76# define OLED_RENDER_LAYOUT_COLEMAK " COLE" 78# define OLED_RENDER_LAYOUT_COLEMAK " COLE"
77# define OLED_RENDER_LAYOUT_DVORAK " DVRK" 79# define OLED_RENDER_LAYOUT_DVORAK " DVRK"
78# define OLED_RENDER_LAYOUT_WORKMAN " WKMN" 80# define OLED_RENDER_LAYOUT_WORKMAN " WKMN"
diff --git a/users/drashna/process_records.c b/users/drashna/process_records.c
index 124354a5b..1e6ecc1d6 100644
--- a/users/drashna/process_records.c
+++ b/users/drashna/process_records.c
@@ -29,10 +29,10 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
29 // If console is enabled, it will print the matrix position and status of each key pressed 29 // If console is enabled, it will print the matrix position and status of each key pressed
30#ifdef KEYLOGGER_ENABLE 30#ifdef KEYLOGGER_ENABLE
31 uprintf("KL: kc: 0x%04X, col: %2u, row: %2u, pressed: %b, time: %5u, int: %b, count: %u\n", keycode, record->event.key.col, record->event.key.row, record->event.pressed, record->event.time, record->tap.interrupted, record->tap.count); 31 uprintf("KL: kc: 0x%04X, col: %2u, row: %2u, pressed: %b, time: %5u, int: %b, count: %u\n", keycode, record->event.key.col, record->event.key.row, record->event.pressed, record->event.time, record->tap.interrupted, record->tap.count);
32#endif // KEYLOGGER_ENABLE 32#endif // KEYLOGGER_ENABLE
33#ifdef OLED_DRIVER_ENABLE 33#ifdef OLED_DRIVER_ENABLE
34 process_record_user_oled(keycode, record); 34 process_record_user_oled(keycode, record);
35#endif // OLED 35#endif // OLED
36 36
37 if (!(process_record_keymap(keycode, record) && process_record_secrets(keycode, record) 37 if (!(process_record_keymap(keycode, record) && process_record_secrets(keycode, record)
38#ifdef RGB_MATRIX_ENABLE 38#ifdef RGB_MATRIX_ENABLE
@@ -46,20 +46,25 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
46 } 46 }
47 47
48 switch (keycode) { 48 switch (keycode) {
49 case KC_QWERTY ... KC_WORKMAN: 49 case FIRST_DEFAULT_LAYER_KEYCODE ... LAST_DEFAULT_LAYER_KEYCODE:
50 if (record->event.pressed) { 50 if (record->event.pressed) {
51 uint8_t mods = mod_config(get_mods() | get_oneshot_mods()); 51 uint8_t mods = mod_config(get_mods() | get_oneshot_mods());
52 if (!mods) { 52 if (!mods) {
53 set_single_persistent_default_layer(keycode - KC_QWERTY); 53 set_single_persistent_default_layer(keycode - FIRST_DEFAULT_LAYER_KEYCODE);
54#if LAST_DEFAULT_LAYER_KEYCODE > (FIRST_DEFAULT_LAYER_KEYCODE + 3)
54 } else if (mods & MOD_MASK_SHIFT) { 55 } else if (mods & MOD_MASK_SHIFT) {
55 set_single_persistent_default_layer(keycode - KC_QWERTY + 4); 56 set_single_persistent_default_layer(keycode - FIRST_DEFAULT_LAYER_KEYCODE + 4);
57# if LAST_DEFAULT_LAYER_KEYCODE > (FIRST_DEFAULT_LAYER_KEYCODE + 7)
58
56 } else if (mods & MOD_MASK_CTRL) { 59 } else if (mods & MOD_MASK_CTRL) {
57 set_single_persistent_default_layer(keycode - KC_QWERTY + 8); 60 set_single_persistent_default_layer(keycode - FIRST_DEFAULT_LAYER_KEYCODE + 8);
61# endif
62#endif
58 } 63 }
59 } 64 }
60 break; 65 break;
61 66
62 case KC_MAKE: // Compiles the firmware, and adds the flash command based on keyboard bootloader 67 case KC_MAKE: // Compiles the firmware, and adds the flash command based on keyboard bootloader
63 if (!record->event.pressed) { 68 if (!record->event.pressed) {
64#ifndef MAKE_BOOTLOADER 69#ifndef MAKE_BOOTLOADER
65 uint8_t temp_mod = mod_config(get_mods()); 70 uint8_t temp_mod = mod_config(get_mods());
@@ -79,55 +84,63 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
79#endif 84#endif
80 } 85 }
81 send_string_with_delay_P(PSTR("-kb " QMK_KEYBOARD " -km " QMK_KEYMAP), TAP_CODE_DELAY); 86 send_string_with_delay_P(PSTR("-kb " QMK_KEYBOARD " -km " QMK_KEYMAP), TAP_CODE_DELAY);
82#ifdef RGB_MATRIX_SPLIT_RIGHT 87#ifdef CONVERT_TO_PROTON_C
83 send_string_with_delay_P(PSTR(" RGB_MATRIX_SPLIT_RIGHT=yes"), TAP_CODE_DELAY); 88 send_string_with_delay_P(PSTR(" -e CTPC=yes"), TAP_CODE_DELAY);
84# ifndef OLED_DRIVER_ENABLE
85 send_string_with_delay_P(PSTR(" OLED_DRIVER_ENABLE=no"), TAP_CODE_DELAY);
86# endif
87#endif 89#endif
88 send_string_with_delay_P(PSTR(SS_TAP(X_ENTER)), TAP_CODE_DELAY); 90 send_string_with_delay_P(PSTR(SS_TAP(X_ENTER)), TAP_CODE_DELAY);
89 } 91 }
90
91 break; 92 break;
92 93
93 case VRSN: // Prints firmware version 94 case VRSN: // Prints firmware version
94 if (record->event.pressed) { send_string_with_delay_P(PSTR(QMK_KEYBOARD "/" QMK_KEYMAP " @ " QMK_VERSION ", Built on: " QMK_BUILDDATE), TAP_CODE_DELAY); } 95 if (record->event.pressed) {
96 send_string_with_delay_P(PSTR(QMK_KEYBOARD "/" QMK_KEYMAP " @ " QMK_VERSION ", Built on: " QMK_BUILDDATE), TAP_CODE_DELAY);
97 }
95 break; 98 break;
96 99
97 case KC_DIABLO_CLEAR: // reset all Diablo timers, disabling them 100 case KC_DIABLO_CLEAR: // reset all Diablo timers, disabling them
98#ifdef TAP_DANCE_ENABLE 101#ifdef TAP_DANCE_ENABLE
99 if (record->event.pressed) { 102 if (record->event.pressed) {
100 for (uint8_t index = 0; index < 4; index++) { diablo_timer[index].key_interval = 0; } 103 for (uint8_t index = 0; index < 4; index++) {
104 diablo_timer[index].key_interval = 0;
105 }
101 } 106 }
102#endif // TAP_DANCE_ENABLE 107#endif // TAP_DANCE_ENABLE
103 break; 108 break;
104 109
105 case KC_CCCV: // One key copy/paste 110 case KC_CCCV: // One key copy/paste
106 if (record->event.pressed) { 111 if (record->event.pressed) {
107 copy_paste_timer = timer_read(); 112 copy_paste_timer = timer_read();
108 } else { 113 } else {
109 if (timer_elapsed(copy_paste_timer) > TAPPING_TERM) { // Hold, copy 114 if (timer_elapsed(copy_paste_timer) > TAPPING_TERM) { // Hold, copy
110 tap_code16(LCTL(KC_C)); 115 tap_code16(LCTL(KC_C));
111 } else { // Tap, paste 116 } else { // Tap, paste
112 tap_code16(LCTL(KC_V)); 117 tap_code16(LCTL(KC_V));
113 } 118 }
114 } 119 }
115 break; 120 break;
116#ifdef UNICODE_ENABLE 121#ifdef UNICODE_ENABLE
117 case UC_FLIP: // (ノಠ痊ಠ)ノ彡┻━┻ 122 case UC_FLIP: // (ノಠ痊ಠ)ノ彡┻━┻
118 if (record->event.pressed) { send_unicode_string("(ノಠ痊ಠ)ノ彡┻━┻"); } 123 if (record->event.pressed) {
124 send_unicode_string("(ノಠ痊ಠ)ノ彡┻━┻");
125 }
119 break; 126 break;
120 case UC_TABL: // ┬─┬ノ( º _ ºノ) 127 case UC_TABL: // ┬─┬ノ( º _ ºノ)
121 if (record->event.pressed) { send_unicode_string("┬─┬ノ( º _ ºノ)"); } 128 if (record->event.pressed) {
129 send_unicode_string("┬─┬ノ( º _ ºノ)");
130 }
122 break; 131 break;
123 case UC_SHRG: // ¯\_(ツ)_/¯ 132 case UC_SHRG: // ¯\_(ツ)_/¯
124 if (record->event.pressed) { send_unicode_string("¯\\_(ツ)_/¯"); } 133 if (record->event.pressed) {
134 send_unicode_string("¯\\_(ツ)_/¯");
135 }
125 break; 136 break;
126 case UC_DISA: // ಠ_ಠ 137 case UC_DISA: // ಠ_ಠ
127 if (record->event.pressed) { send_unicode_string("ಠ_ಠ"); } 138 if (record->event.pressed) {
139 send_unicode_string("ಠ_ಠ");
140 }
128 break; 141 break;
129#endif 142#endif
130 case KC_RGB_T: // This allows me to use underglow as layer indication, or as normal 143 case KC_RGB_T: // This allows me to use underglow as layer indication, or as normal
131#if defined(RGBLIGHT_ENABLE) || defined(RGB_MATRIX_ENABLE) 144#if defined(RGBLIGHT_ENABLE) || defined(RGB_MATRIX_ENABLE)
132 if (record->event.pressed) { 145 if (record->event.pressed) {
133 userspace_config.rgb_layer_change ^= 1; 146 userspace_config.rgb_layer_change ^= 1;
@@ -137,14 +150,14 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
137# if defined(RGBLIGHT_ENABLE) && defined(RGB_MATRIX_ENABLE) 150# if defined(RGBLIGHT_ENABLE) && defined(RGB_MATRIX_ENABLE)
138 rgblight_enable_noeeprom(); 151 rgblight_enable_noeeprom();
139# endif 152# endif
140 layer_state_set(layer_state); // This is needed to immediately set the layer color (looks better) 153 layer_state_set(layer_state); // This is needed to immediately set the layer color (looks better)
141# if defined(RGBLIGHT_ENABLE) && defined(RGB_MATRIX_ENABLE) 154# if defined(RGBLIGHT_ENABLE) && defined(RGB_MATRIX_ENABLE)
142 } else { 155 } else {
143 rgblight_disable_noeeprom(); 156 rgblight_disable_noeeprom();
144# endif 157# endif
145 } 158 }
146 } 159 }
147#endif // RGBLIGHT_ENABLE 160#endif // RGBLIGHT_ENABLE
148 break; 161 break;
149 162
150#if defined(RGBLIGHT_ENABLE) || defined(RGB_MATRIX_ENABLE) 163#if defined(RGBLIGHT_ENABLE) || defined(RGB_MATRIX_ENABLE)
@@ -164,7 +177,7 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
164 } 177 }
165 return false; 178 return false;
166 break; 179 break;
167 case RGB_MODE_FORWARD ... RGB_MODE_GRADIENT: // quantum_keycodes.h L400 for definitions 180 case RGB_MODE_FORWARD ... RGB_MODE_GRADIENT: // quantum_keycodes.h L400 for definitions
168 if (record->event.pressed) { 181 if (record->event.pressed) {
169 bool is_eeprom_updated; 182 bool is_eeprom_updated;
170# if defined(RGBLIGHT_ENABLE) && !defined(RGBLIGHT_DISABLE_KEYCODES) 183# if defined(RGBLIGHT_ENABLE) && !defined(RGBLIGHT_DISABLE_KEYCODES)
@@ -182,7 +195,9 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
182 is_eeprom_updated = true; 195 is_eeprom_updated = true;
183 } 196 }
184# endif 197# endif
185 if (is_eeprom_updated) { eeconfig_update_user(userspace_config.raw); } 198 if (is_eeprom_updated) {
199 eeconfig_update_user(userspace_config.raw);
200 }
186 } 201 }
187#endif 202#endif
188 } 203 }
diff --git a/users/drashna/process_records.h b/users/drashna/process_records.h
index f65cfc03c..460d41d4d 100644
--- a/users/drashna/process_records.h
+++ b/users/drashna/process_records.h
@@ -24,51 +24,70 @@
24#endif 24#endif
25 25
26enum userspace_custom_keycodes { 26enum userspace_custom_keycodes {
27 VRSN = PLACEHOLDER_SAFE_RANGE, // Prints QMK Firmware and board info 27 VRSN = PLACEHOLDER_SAFE_RANGE, // Prints QMK Firmware and board info
28 KC_QWERTY, // Sets default layer to QWERTY 28 KC_QWERTY, // Sets default layer to QWERTY
29 KC_COLEMAK, // Sets default layer to COLEMAK 29 FIRST_DEFAULT_LAYER_KEYCODE = KC_QWERTY, // Sets default layer to QWERTY
30 KC_DVORAK, // Sets default layer to DVORAK 30 KC_COLEMAK_DH, // Sets default layer to COLEMAK
31 KC_WORKMAN, // Sets default layer to WORKMAN 31 KC_COLEMAK, // Sets default layer to COLEMAK
32 KC_DIABLO_CLEAR, // Clears all Diablo Timers 32 KC_DVORAK, // Sets default layer to DVORAK
33 KC_MAKE, // Run keyboard's customized make command 33 LAST_DEFAULT_LAYER_KEYCODE = KC_DVORAK, // Sets default layer to WORKMAN
34 KC_RGB_T, // Toggles RGB Layer Indication mode 34 KC_DIABLO_CLEAR, // Clears all Diablo Timers
35 RGB_IDL, // RGB Idling animations 35 KC_MAKE, // Run keyboard's customized make command
36 KC_SECRET_1, // test1 36 KC_RGB_T, // Toggles RGB Layer Indication mode
37 KC_SECRET_2, // test2 37 RGB_IDL, // RGB Idling animations
38 KC_SECRET_3, // test3 38 KC_SECRET_1, // test1
39 KC_SECRET_4, // test4 39 KC_SECRET_2, // test2
40 KC_SECRET_5, // test5 40 KC_SECRET_3, // test3
41 KC_CCCV, // Hold to copy, tap to paste 41 KC_SECRET_4, // test4
42 KC_NUKE, // NUCLEAR LAUNCH DETECTED!!! 42 KC_SECRET_5, // test5
43 UC_FLIP, // (ಠ痊ಠ)┻━┻ 43 KC_CCCV, // Hold to copy, tap to paste
44 UC_TABL, // ┬─┬ノ( º _ ºノ) 44 KC_NUKE, // NUCLEAR LAUNCH DETECTED!!!
45 UC_SHRG, // ¯\_(ツ)_/¯ 45 UC_FLIP, // (ಠ痊ಠ)┻━┻
46 UC_DISA, // ಠ_ಠ 46 UC_TABL, // ┬─┬ノ( º _ ºノ)
47 NEW_SAFE_RANGE // use "NEWPLACEHOLDER for keymap specific codes 47 UC_SHRG, // ¯\_(ツ)_/¯
48 UC_DISA, // ಠ_ಠ
49 NEW_SAFE_RANGE // use "NEWPLACEHOLDER for keymap specific codes
48}; 50};
49 51
50bool process_record_secrets(uint16_t keycode, keyrecord_t *record); 52bool process_record_secrets(uint16_t keycode, keyrecord_t *record);
51bool process_record_keymap(uint16_t keycode, keyrecord_t *record); 53bool process_record_keymap(uint16_t keycode, keyrecord_t *record);
52 54
53#define LOWER MO(_LOWER) 55#define LOWER MO(_LOWER)
54#define RAISE MO(_RAISE) 56#define RAISE MO(_RAISE)
55#define ADJUST MO(_ADJUST) 57#define ADJUST MO(_ADJUST)
56#define TG_MODS OS_TOGG 58#define TG_MODS OS_TOGG
57#define TG_GAME TG(_GAMEPAD) 59#define TG_GAME TG(_GAMEPAD)
58#define TG_DBLO TG(_DIABLO) 60#define TG_DBLO TG(_DIABLO)
59#define OS_LWR OSL(_LOWER) 61#define OS_LWR OSL(_LOWER)
60#define OS_RSE OSL(_RAISE) 62#define OS_RSE OSL(_RAISE)
61 63
62#define KC_SEC1 KC_SECRET_1 64#define KC_SEC1 KC_SECRET_1
63#define KC_SEC2 KC_SECRET_2 65#define KC_SEC2 KC_SECRET_2
64#define KC_SEC3 KC_SECRET_3 66#define KC_SEC3 KC_SECRET_3
65#define KC_SEC4 KC_SECRET_4 67#define KC_SEC4 KC_SECRET_4
66#define KC_SEC5 KC_SECRET_5 68#define KC_SEC5 KC_SECRET_5
67 69
68#define QWERTY KC_QWERTY 70#define QWERTY KC_QWERTY
69#define DVORAK KC_DVORAK 71#define DVORAK KC_DVORAK
70#define COLEMAK KC_COLEMAK 72#define COLEMAK KC_COLEMAK
71#define WORKMAN KC_WORKMAN 73#define COLEMAKDH KC_COLEMAK_DH
74
75#define DEFLYR1 FIRST_DEFAULT_LAYER_KEYCODE
76#define DEFLYR2 (FIRST_DEFAULT_LAYER_KEYCODE + 1)
77#define DEFLYR3 (FIRST_DEFAULT_LAYER_KEYCODE + 2)
78#define DEFLYR4 (FIRST_DEFAULT_LAYER_KEYCODE + 3)
79#if LAST_DEFAULT_LAYER_KEYCODE > (FIRST_DEFAULT_LAYER_KEYCODE + 3)
80# define DEFLYR5 (FIRST_DEFAULT_LAYER_KEYCODE + 4)
81# define DEFLYR6 (FIRST_DEFAULT_LAYER_KEYCODE + 5)
82# define DEFLYR7 (FIRST_DEFAULT_LAYER_KEYCODE + 6)
83# define DEFLYR8 (FIRST_DEFAULT_LAYER_KEYCODE + 7)
84# if LAST_DEFAULT_LAYER_KEYCODE > (FIRST_DEFAULT_LAYER_KEYCODE + 7)
85# define DEFLYR9 (FIRST_DEFAULT_LAYER_KEYCODE + 8)
86# define DEFLYR10 (FIRST_DEFAULT_LAYER_KEYCODE + 9)
87# define DEFLYR11 (FIRST_DEFAULT_LAYER_KEYCODE + 10)
88# define DEFLYR12 (FIRST_DEFAULT_LAYER_KEYCODE + 11)
89# endif
90#endif
72 91
73#define KC_RESET RESET 92#define KC_RESET RESET
74#define KC_RST KC_RESET 93#define KC_RST KC_RESET
@@ -77,9 +96,9 @@ bool process_record_keymap(uint16_t keycode, keyrecord_t *record);
77# define KC_C1R3 SH_T(KC_TAB) 96# define KC_C1R3 SH_T(KC_TAB)
78#elif defined(DRASHNA_LP) 97#elif defined(DRASHNA_LP)
79# define KC_C1R3 TG(_GAMEPAD) 98# define KC_C1R3 TG(_GAMEPAD)
80#else // SWAP_HANDS_ENABLE 99#else // SWAP_HANDS_ENABLE
81# define KC_C1R3 KC_TAB 100# define KC_C1R3 KC_TAB
82#endif // SWAP_HANDS_ENABLE 101#endif // SWAP_HANDS_ENABLE
83 102
84#define BK_LWER LT(_LOWER, KC_BSPC) 103#define BK_LWER LT(_LOWER, KC_BSPC)
85#define SP_LWER LT(_LOWER, KC_SPC) 104#define SP_LWER LT(_LOWER, KC_SPC)
diff --git a/users/drashna/rgb_matrix_stuff.c b/users/drashna/rgb_matrix_stuff.c
index 9fbe6214b..5adbd8ab1 100644
--- a/users/drashna/rgb_matrix_stuff.c
+++ b/users/drashna/rgb_matrix_stuff.c
@@ -28,24 +28,30 @@ static uint32_t hypno_timer;
28 28
29void rgb_matrix_layer_helper(uint8_t hue, uint8_t sat, uint8_t val, uint8_t mode, uint8_t speed, uint8_t led_type, uint8_t led_min, uint8_t led_max) { 29void rgb_matrix_layer_helper(uint8_t hue, uint8_t sat, uint8_t val, uint8_t mode, uint8_t speed, uint8_t led_type, uint8_t led_min, uint8_t led_max) {
30 HSV hsv = {hue, sat, val}; 30 HSV hsv = {hue, sat, val};
31 if (hsv.v > rgb_matrix_get_val()) { hsv.v = rgb_matrix_get_val(); } 31 if (hsv.v > rgb_matrix_get_val()) {
32 hsv.v = rgb_matrix_get_val();
33 }
32 34
33 switch (mode) { 35 switch (mode) {
34 case 1: // breathing 36 case 1: // breathing
35 { 37 {
36 uint16_t time = scale16by8(g_rgb_timer, speed / 8); 38 uint16_t time = scale16by8(g_rgb_timer, speed / 8);
37 hsv.v = scale8(abs8(sin8(time) - 128) * 2, hsv.v); 39 hsv.v = scale8(abs8(sin8(time) - 128) * 2, hsv.v);
38 RGB rgb = hsv_to_rgb(hsv); 40 RGB rgb = hsv_to_rgb(hsv);
39 for (uint8_t i = 0; i < DRIVER_LED_TOTAL; i++) { 41 for (uint8_t i = 0; i < DRIVER_LED_TOTAL; i++) {
40 if (HAS_FLAGS(g_led_config.flags[i], led_type)) { RGB_MATRIX_INDICATOR_SET_COLOR(i, rgb.r, rgb.g, rgb.b); } 42 if (HAS_FLAGS(g_led_config.flags[i], led_type)) {
43 RGB_MATRIX_INDICATOR_SET_COLOR(i, rgb.r, rgb.g, rgb.b);
44 }
41 } 45 }
42 break; 46 break;
43 } 47 }
44 default: // Solid Color 48 default: // Solid Color
45 { 49 {
46 RGB rgb = hsv_to_rgb(hsv); 50 RGB rgb = hsv_to_rgb(hsv);
47 for (uint8_t i = 0; i < DRIVER_LED_TOTAL; i++) { 51 for (uint8_t i = 0; i < DRIVER_LED_TOTAL; i++) {
48 if (HAS_FLAGS(g_led_config.flags[i], led_type)) { RGB_MATRIX_INDICATOR_SET_COLOR(i, rgb.r, rgb.g, rgb.b); } 52 if (HAS_FLAGS(g_led_config.flags[i], led_type)) {
53 RGB_MATRIX_INDICATOR_SET_COLOR(i, rgb.r, rgb.g, rgb.b);
54 }
49 } 55 }
50 break; 56 break;
51 } 57 }
@@ -56,30 +62,38 @@ __attribute__((weak)) void rgb_matrix_indicator_keymap(void) {}
56 62
57void matrix_scan_rgb_matrix(void) { 63void matrix_scan_rgb_matrix(void) {
58#if defined(RGB_MATRIX_FRAMEBUFFER_EFFECTS) 64#if defined(RGB_MATRIX_FRAMEBUFFER_EFFECTS)
59 if (userspace_config.rgb_matrix_idle_anim && rgb_matrix_get_mode() == RGB_MATRIX_TYPING_HEATMAP && sync_timer_elapsed32(hypno_timer) > 15000) { rgb_matrix_mode_noeeprom(RGB_MATRIX_REST_MODE); } 65 if (userspace_config.rgb_matrix_idle_anim && rgb_matrix_get_mode() == RGB_MATRIX_TYPING_HEATMAP && sync_timer_elapsed32(hypno_timer) > 15000) {
66 rgb_matrix_mode_noeeprom(RGB_MATRIX_REST_MODE);
67 }
60#endif 68#endif
61 rgb_matrix_indicator_keymap(); 69 rgb_matrix_indicator_keymap();
62} 70}
63 71
64void keyboard_post_init_rgb_matrix(void) { 72void keyboard_post_init_rgb_matrix(void) {
65#if defined(RGB_MATRIX_FRAMEBUFFER_EFFECTS) 73#if defined(RGB_MATRIX_FRAMEBUFFER_EFFECTS)
66 if (userspace_config.rgb_matrix_idle_anim) { rgb_matrix_mode_noeeprom(RGB_MATRIX_REST_MODE); } 74 if (userspace_config.rgb_matrix_idle_anim) {
75 rgb_matrix_mode_noeeprom(RGB_MATRIX_REST_MODE);
76 }
67#endif 77#endif
68} 78}
69 79
70bool process_record_user_rgb_matrix(uint16_t keycode, keyrecord_t *record) { 80bool process_record_user_rgb_matrix(uint16_t keycode, keyrecord_t *record) {
71#if defined(RGB_MATRIX_FRAMEBUFFER_EFFECTS) 81#if defined(RGB_MATRIX_FRAMEBUFFER_EFFECTS)
72 hypno_timer = sync_timer_read32(); 82 hypno_timer = sync_timer_read32();
73 if (userspace_config.rgb_matrix_idle_anim && rgb_matrix_get_mode() == RGB_MATRIX_REST_MODE) { rgb_matrix_mode_noeeprom(RGB_MATRIX_TYPING_HEATMAP); } 83 if (userspace_config.rgb_matrix_idle_anim && rgb_matrix_get_mode() == RGB_MATRIX_REST_MODE) {
84 rgb_matrix_mode_noeeprom(RGB_MATRIX_TYPING_HEATMAP);
85 }
74#endif 86#endif
75 switch (keycode) { 87 switch (keycode) {
76 case RGB_IDL: // This allows me to use underglow as layer indication, or as normal 88 case RGB_IDL: // This allows me to use underglow as layer indication, or as normal
77#if defined(RGB_MATRIX_ENABLE) && defined(RGB_MATRIX_FRAMEBUFFER_EFFECTS) 89#if defined(RGB_MATRIX_ENABLE) && defined(RGB_MATRIX_FRAMEBUFFER_EFFECTS)
78 if (record->event.pressed) { 90 if (record->event.pressed) {
79 userspace_config.rgb_matrix_idle_anim ^= 1; 91 userspace_config.rgb_matrix_idle_anim ^= 1;
80 dprintf("RGB Matrix Idle Animation [EEPROM]: %u\n", userspace_config.rgb_matrix_idle_anim); 92 dprintf("RGB Matrix Idle Animation [EEPROM]: %u\n", userspace_config.rgb_matrix_idle_anim);
81 eeconfig_update_user(userspace_config.raw); 93 eeconfig_update_user(userspace_config.raw);
82 if (userspace_config.rgb_matrix_idle_anim) { rgb_matrix_mode_noeeprom(RGB_MATRIX_TYPING_HEATMAP); } 94 if (userspace_config.rgb_matrix_idle_anim) {
95 rgb_matrix_mode_noeeprom(RGB_MATRIX_TYPING_HEATMAP);
96 }
83 } 97 }
84#endif 98#endif
85 break; 99 break;
diff --git a/users/drashna/rgb_stuff.c b/users/drashna/rgb_stuff.c
index 1665638cf..8a0866539 100644
--- a/users/drashna/rgb_stuff.c
+++ b/users/drashna/rgb_stuff.c
@@ -28,7 +28,7 @@ void rgblight_sethsv_default_helper(uint8_t index) { rgblight_sethsv_at(rgblight
28static rgblight_fadeout lights[RGBLED_NUM]; 28static rgblight_fadeout lights[RGBLED_NUM];
29 29
30/* Handler for fading/twinkling effect */ 30/* Handler for fading/twinkling effect */
31void scan_rgblight_fadeout(void) { // Don't effing change this function .... rgblight_sethsv is supppppper intensive 31void scan_rgblight_fadeout(void) { // Don't effing change this function .... rgblight_sethsv is supppppper intensive
32 bool litup = false; 32 bool litup = false;
33 33
34 for (uint8_t light_index = 0; light_index < RGBLED_NUM; ++light_index) { 34 for (uint8_t light_index = 0; light_index < RGBLED_NUM; ++light_index) {
@@ -38,15 +38,21 @@ void scan_rgblight_fadeout(void) { // Don't effing change this function .... rgb
38 38
39 if (light->life) { 39 if (light->life) {
40 light->life -= 1; 40 light->life -= 1;
41 if (get_highest_layer(layer_state) == 0) { sethsv(light->hue + rand() % 0xF, 255, light->life, (LED_TYPE *)&led[light_index]); } 41 if (get_highest_layer(layer_state) == 0) {
42 sethsv(light->hue + rand() % 0xF, 255, light->life, (LED_TYPE *)&led[light_index]);
43 }
42 light->timer = sync_timer_read(); 44 light->timer = sync_timer_read();
43 } else { 45 } else {
44 if (light->enabled && get_highest_layer(layer_state) == 0) { rgblight_sethsv_default_helper(light_index); } 46 if (light->enabled && get_highest_layer(layer_state) == 0) {
47 rgblight_sethsv_default_helper(light_index);
48 }
45 litup = light->enabled = false; 49 litup = light->enabled = false;
46 } 50 }
47 } 51 }
48 } 52 }
49 if (litup && get_highest_layer(layer_state) == 0) { rgblight_set(); } 53 if (litup && get_highest_layer(layer_state) == 0) {
54 rgblight_set();
55 }
50} 56}
51 57
52/* Triggers a LED to fade/twinkle. 58/* Triggers a LED to fade/twinkle.
@@ -92,7 +98,9 @@ void start_rgb_light(void) {
92bool process_record_user_rgb_light(uint16_t keycode, keyrecord_t *record) { 98bool process_record_user_rgb_light(uint16_t keycode, keyrecord_t *record) {
93 uint16_t temp_keycode = keycode; 99 uint16_t temp_keycode = keycode;
94 // Filter out the actual keycode from MT and LT keys. 100 // Filter out the actual keycode from MT and LT keys.
95 if ((keycode >= QK_MOD_TAP && keycode <= QK_MOD_TAP_MAX) || (keycode >= QK_LAYER_TAP && keycode <= QK_LAYER_TAP_MAX)) { temp_keycode &= 0xFF; } 101 if ((keycode >= QK_MOD_TAP && keycode <= QK_MOD_TAP_MAX) || (keycode >= QK_LAYER_TAP && keycode <= QK_LAYER_TAP_MAX)) {
102 temp_keycode &= 0xFF;
103 }
96 104
97 switch (temp_keycode) { 105 switch (temp_keycode) {
98# ifdef RGBLIGHT_TWINKLE 106# ifdef RGBLIGHT_TWINKLE
@@ -102,9 +110,11 @@ bool process_record_user_rgb_light(uint16_t keycode, keyrecord_t *record) {
102 case KC_KP_SLASH ... KC_KP_DOT: 110 case KC_KP_SLASH ... KC_KP_DOT:
103 case KC_F13 ... KC_F24: 111 case KC_F13 ... KC_F24:
104 case KC_AUDIO_MUTE ... KC_MEDIA_REWIND: 112 case KC_AUDIO_MUTE ... KC_MEDIA_REWIND:
105 if (record->event.pressed) { start_rgb_light(); } 113 if (record->event.pressed) {
114 start_rgb_light();
115 }
106 break; 116 break;
107# endif // RGBLIGHT_TWINKLE 117# endif // RGBLIGHT_TWINKLE
108 } 118 }
109 return true; 119 return true;
110} 120}
@@ -119,7 +129,9 @@ static uint16_t rgblight_startup_loop_timer;
119void keyboard_post_init_rgb_light(void) { 129void keyboard_post_init_rgb_light(void) {
120# if defined(RGBLIGHT_STARTUP_ANIMATION) 130# if defined(RGBLIGHT_STARTUP_ANIMATION)
121 is_enabled = rgblight_is_enabled(); 131 is_enabled = rgblight_is_enabled();
122 if (userspace_config.rgb_layer_change) { rgblight_enable_noeeprom(); } 132 if (userspace_config.rgb_layer_change) {
133 rgblight_enable_noeeprom();
134 }
123 if (rgblight_is_enabled()) { 135 if (rgblight_is_enabled()) {
124 layer_state_set_rgb_light(layer_state); 136 layer_state_set_rgb_light(layer_state);
125 old_hue = rgblight_get_hue(); 137 old_hue = rgblight_get_hue();
@@ -133,7 +145,7 @@ void keyboard_post_init_rgb_light(void) {
133void matrix_scan_rgb_light(void) { 145void matrix_scan_rgb_light(void) {
134# ifdef RGBLIGHT_TWINKLE 146# ifdef RGBLIGHT_TWINKLE
135 scan_rgblight_fadeout(); 147 scan_rgblight_fadeout();
136# endif // RGBLIGHT_ENABLE 148# endif // RGBLIGHT_ENABLE
137 149
138# if defined(RGBLIGHT_STARTUP_ANIMATION) 150# if defined(RGBLIGHT_STARTUP_ANIMATION)
139 if (is_rgblight_startup && is_keyboard_master()) { 151 if (is_rgblight_startup && is_keyboard_master()) {
@@ -144,8 +156,12 @@ void matrix_scan_rgb_light(void) {
144 rgblight_startup_loop_timer = sync_timer_read(); 156 rgblight_startup_loop_timer = sync_timer_read();
145 if (counter == 255) { 157 if (counter == 255) {
146 is_rgblight_startup = false; 158 is_rgblight_startup = false;
147 if (!is_enabled) { rgblight_disable_noeeprom(); } 159 if (!is_enabled) {
148 if (userspace_config.rgb_layer_change) { layer_state_set_rgb_light(layer_state); } 160 rgblight_disable_noeeprom();
161 }
162 if (userspace_config.rgb_layer_change) {
163 layer_state_set_rgb_light(layer_state);
164 }
149 } 165 }
150 } 166 }
151 } 167 }
@@ -162,26 +178,48 @@ layer_state_t layer_state_set_rgb_light(layer_state_t state) {
162# ifdef RGBLIGHT_ENABLE 178# ifdef RGBLIGHT_ENABLE
163 if (userspace_config.rgb_layer_change) { 179 if (userspace_config.rgb_layer_change) {
164 switch (get_highest_layer(state | default_layer_state)) { 180 switch (get_highest_layer(state | default_layer_state)) {
165 case _MACROS: // mouse 181 case _MOUSE: // mouse
166 if (!layer_state_cmp(state, _GAMEPAD) && !layer_state_cmp(state, _DIABLO)) { rgblight_set_hsv_and_mode(HSV_CHARTREUSE, RGBLIGHT_MODE_BREATHING + 3); } 182 if (!layer_state_cmp(state, _GAMEPAD) && !layer_state_cmp(state, _DIABLO)) {
183# if defined(RGBLIGHT_EFFECT_TWINKLE)
184 rgblight_set_hsv_and_mode(HSV_CHARTREUSE, RGBLIGHT_MODE_TWINKLE + 5);
185# else
186 rgblight_set_hsv_and_mode(HSV_CHARTREUSE, RGBLIGHT_MODE_BREATHING + 3);
187# endif
188 }
189 break;
190 case _MEDIA:
191 rgblight_set_hsv_and_mode(HSV_CHARTREUSE, RGBLIGHT_MODE_KNIGHT + 1);
192 break;
193 case _GAMEPAD:
194 rgblight_set_hsv_and_mode(HSV_ORANGE, RGBLIGHT_MODE_SNAKE + 2);
195 break;
196 case _DIABLO:
197 rgblight_set_hsv_and_mode(HSV_RED, RGBLIGHT_MODE_BREATHING + 3);
198 break;
199 case _RAISE:
200 rgblight_set_hsv_and_mode(HSV_YELLOW, RGBLIGHT_MODE_BREATHING + 3);
201 break;
202 case _LOWER:
203 rgblight_set_hsv_and_mode(HSV_GREEN, RGBLIGHT_MODE_BREATHING + 3);
204 break;
205 case _ADJUST:
206 rgblight_set_hsv_and_mode(HSV_RED, RGBLIGHT_MODE_KNIGHT + 2);
207 break;
208 case _DEFAULT_LAYER_1:
209 rgblight_set_hsv_and_mode(DEFAULT_LAYER_1_HSV, RGBLIGHT_MODE_STATIC_LIGHT);
210 break;
211 case _DEFAULT_LAYER_2:
212 rgblight_set_hsv_and_mode(DEFAULT_LAYER_2_HSV, RGBLIGHT_MODE_STATIC_LIGHT);
213 break;
214 case _DEFAULT_LAYER_3:
215 rgblight_set_hsv_and_mode(DEFAULT_LAYER_3_HSV, RGBLIGHT_MODE_STATIC_LIGHT);
216 break;
217 case _DEFAULT_LAYER_4:
218 rgblight_set_hsv_and_mode(DEFAULT_LAYER_4_HSV, RGBLIGHT_MODE_STATIC_LIGHT);
167 break; 219 break;
168 case _MEDIA: rgblight_set_hsv_and_mode(HSV_CHARTREUSE, RGBLIGHT_MODE_KNIGHT + 1); break;
169 case _GAMEPAD: rgblight_set_hsv_and_mode(HSV_ORANGE, RGBLIGHT_MODE_SNAKE + 2); break;
170 case _DIABLO: rgblight_set_hsv_and_mode(HSV_RED, RGBLIGHT_MODE_BREATHING + 3); break;
171 case _RAISE: rgblight_set_hsv_and_mode(HSV_YELLOW, RGBLIGHT_MODE_BREATHING + 3); break;
172 case _LOWER: rgblight_set_hsv_and_mode(HSV_GREEN, RGBLIGHT_MODE_BREATHING + 3); break;
173 case _ADJUST: rgblight_set_hsv_and_mode(HSV_RED, RGBLIGHT_MODE_KNIGHT + 2); break;
174 case _COLEMAK: rgblight_set_hsv_and_mode(HSV_MAGENTA, RGBLIGHT_MODE_STATIC_LIGHT); break;
175 case _DVORAK: rgblight_set_hsv_and_mode(HSV_SPRINGGREEN, RGBLIGHT_MODE_STATIC_LIGHT); break;
176 case _WORKMAN: rgblight_set_hsv_and_mode(HSV_GOLDENROD, RGBLIGHT_MODE_STATIC_LIGHT); break;
177 case _NORMAN: rgblight_set_hsv_and_mode(HSV_CORAL, RGBLIGHT_MODE_STATIC_LIGHT); break;
178 case _MALTRON: rgblight_set_hsv_and_mode(HSV_YELLOW, RGBLIGHT_MODE_STATIC_LIGHT); break;
179 case _EUCALYN: rgblight_set_hsv_and_mode(HSV_PINK, RGBLIGHT_MODE_STATIC_LIGHT); break;
180 case _CARPLAX: rgblight_set_hsv_and_mode(HSV_BLUE, RGBLIGHT_MODE_STATIC_LIGHT); break;
181 default: rgblight_set_hsv_and_mode(HSV_CYAN, RGBLIGHT_MODE_STATIC_LIGHT); break;
182 } 220 }
183 } 221 }
184# endif // RGBLIGHT_ENABLE 222# endif // RGBLIGHT_ENABLE
185 223
186 return state; 224 return state;
187} 225}
diff --git a/users/drashna/rules.mk b/users/drashna/rules.mk
index b9156f6a4..1ccc51ecf 100644
--- a/users/drashna/rules.mk
+++ b/users/drashna/rules.mk
@@ -68,6 +68,7 @@ CUSTOM_OLED_DRIVER ?= yes
68ifeq ($(strip $(OLED_DRIVER_ENABLE)), yes) 68ifeq ($(strip $(OLED_DRIVER_ENABLE)), yes)
69 ifeq ($(strip $(CUSTOM_OLED_DRIVER)), yes) 69 ifeq ($(strip $(CUSTOM_OLED_DRIVER)), yes)
70 SRC += oled_stuff.c 70 SRC += oled_stuff.c
71 OPT_DEFS += -DCUSTOM_OLED_DRIVER_CODE
71 endif 72 endif
72endif 73endif
73 74
@@ -78,31 +79,8 @@ ifeq ($(strip $(PIMORONI_TRACKBALL_ENABLE)), yes)
78 QUANTUM_LIB_SRC += i2c_master.c 79 QUANTUM_LIB_SRC += i2c_master.c
79endif 80endif
80 81
81CUSTOM_SPLIT_TRANSPORT ?= yes
82ifeq ($(strip $(SPLIT_KEYBOARD)), yes) 82ifeq ($(strip $(SPLIT_KEYBOARD)), yes)
83 QUANTUM_LIB_SRC += transport_sync.c 83 QUANTUM_LIB_SRC += transport_sync.c
84 # ifneq ($(strip $(SPLIT_TRANSPORT)), custom)
85 # ifeq ($(strip $(CUSTOM_SPLIT_TRANSPORT)), yes)
86 # SPLIT_TRANSPORT = custom
87 # QUANTUM_LIB_SRC += drashna_transport.c
88 # OPT_DEFS += -DDRASHNA_CUSTOM_TRANSPORT
89 # # Unused functions are pruned away, which is why we can add multiple drivers here without bloat.
90 # ifeq ($(PLATFORM),AVR)
91 # ifneq ($(NO_I2C),yes)
92 # QUANTUM_LIB_SRC += i2c_master.c \
93 # i2c_slave.c
94 # endif
95 # endif
96
97 # SERIAL_DRIVER ?= bitbang
98 # OPT_DEFS += -DSERIAL_DRIVER_$(strip $(shell echo $(SERIAL_DRIVER) | tr '[:lower:]' '[:upper:]'))
99 # ifeq ($(strip $(SERIAL_DRIVER)), bitbang)
100 # QUANTUM_LIB_SRC += serial.c
101 # else
102 # QUANTUM_LIB_SRC += serial_$(strip $(SERIAL_DRIVER)).c
103 # endif
104 # endif
105 # endif
106endif 84endif
107 85
108# DEBUG_MATRIX_SCAN_RATE_ENABLE = api 86# DEBUG_MATRIX_SCAN_RATE_ENABLE = api
diff --git a/users/drashna/tap_dances.c b/users/drashna/tap_dances.c
index 6b27afc5a..01873489d 100644
--- a/users/drashna/tap_dances.c
+++ b/users/drashna/tap_dances.c
@@ -26,7 +26,7 @@ uint8_t diablo_times[] = {0, 1, 3, 5, 10, 30};
26 26
27// Cycle through the times for the macro, starting at 0, for disabled. 27// Cycle through the times for the macro, starting at 0, for disabled.
28void diablo_tapdance_master(qk_tap_dance_state_t *state, void *user_data) { 28void diablo_tapdance_master(qk_tap_dance_state_t *state, void *user_data) {
29 diable_keys_t *diablo_keys = (diable_keys_t *)user_data; 29 diable_keys_t *diablo_keys = (diable_keys_t *)user_data;
30 // Sets the keycode based on the index 30 // Sets the keycode based on the index
31 diablo_timer[diablo_keys->index].keycode = diablo_keys->keycode; 31 diablo_timer[diablo_keys->index].keycode = diablo_keys->keycode;
32 32
@@ -34,7 +34,7 @@ void diablo_tapdance_master(qk_tap_dance_state_t *state, void *user_data) {
34 if (state->count >= (sizeof(diablo_times) / sizeof(uint8_t))) { 34 if (state->count >= (sizeof(diablo_times) / sizeof(uint8_t))) {
35 diablo_timer[diablo_keys->index].key_interval = 0; 35 diablo_timer[diablo_keys->index].key_interval = 0;
36 reset_tap_dance(state); 36 reset_tap_dance(state);
37 } else { // else set the interval (tapdance count starts at 1, array starts at 0, so offset by one) 37 } else { // else set the interval (tapdance count starts at 1, array starts at 0, so offset by one)
38 diablo_timer[diablo_keys->index].key_interval = diablo_times[state->count - 1]; 38 diablo_timer[diablo_keys->index].key_interval = diablo_times[state->count - 1];
39 } 39 }
40} 40}
@@ -64,7 +64,9 @@ void run_diablo_macro_check(void) {
64 // reset the timer, since enough time has passed 64 // reset the timer, since enough time has passed
65 diablo_timer[index].timer = timer_read(); 65 diablo_timer[index].timer = timer_read();
66 // send keycode ONLY if we're on the diablo layer. 66 // send keycode ONLY if we're on the diablo layer.
67 if (IS_LAYER_ON(_DIABLO)) { tap_code(diablo_timer[index].keycode); } 67 if (IS_LAYER_ON(_DIABLO)) {
68 tap_code(diablo_timer[index].keycode);
69 }
68 } 70 }
69 } 71 }
70} 72}
diff --git a/users/drashna/tap_dances.h b/users/drashna/tap_dances.h
index 182cc6756..81e462ce2 100644
--- a/users/drashna/tap_dances.h
+++ b/users/drashna/tap_dances.h
@@ -35,12 +35,10 @@ extern diablo_timer_t diablo_timer[];
35void run_diablo_macro_check(void); 35void run_diablo_macro_check(void);
36 36
37#ifdef TAP_DANCE_ENABLE 37#ifdef TAP_DANCE_ENABLE
38// clang-format off
39enum { 38enum {
40 TD_D3_1 = 0, 39 TD_D3_1 = 0,
41 TD_D3_2, 40 TD_D3_2,
42 TD_D3_3, 41 TD_D3_3,
43 TD_D3_4 42 TD_D3_4,
44}; 43};
45// clang-format on 44#endif // TAP_DANCE_ENABLE
46#endif // TAP_DANCE_ENABLE
diff --git a/users/drashna/template.c b/users/drashna/template.c
index 636955c43..f98964ae4 100644
--- a/users/drashna/template.c
+++ b/users/drashna/template.c
@@ -54,7 +54,9 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
54 break; 54 break;
55 55
56 case VRSN: 56 case VRSN:
57 if (record->event.pressed) { SEND_STRING(QMK_KEYBOARD "/" QMK_KEYMAP " @ " QMK_VERSION); } 57 if (record->event.pressed) {
58 SEND_STRING(QMK_KEYBOARD "/" QMK_KEYMAP " @ " QMK_VERSION);
59 }
58 return false; 60 return false;
59 break; 61 break;
60 } 62 }
@@ -87,7 +89,7 @@ __attribute__((weak)) void startup_keymap(void) {}
87void startup_user(void) { 89void startup_user(void) {
88#ifdef RGBLIGHT_ENABLE 90#ifdef RGBLIGHT_ENABLE
89 matrix_init_rgb(); 91 matrix_init_rgb();
90#endif // RGBLIGHT_ENABLE 92#endif // RGBLIGHT_ENABLE
91 startup_keymap(); 93 startup_keymap();
92} 94}
93 95
diff --git a/users/drashna/template.h b/users/drashna/template.h
index e00a0530e..cb1ad75d8 100644
--- a/users/drashna/template.h
+++ b/users/drashna/template.h
@@ -24,8 +24,8 @@
24#define BASE 0 24#define BASE 0
25 25
26enum custom_keycodes { 26enum custom_keycodes {
27 VRSN = SAFE_RANGE, // can always be here 27 VRSN = SAFE_RANGE, // can always be here
28 KC_MAKE, 28 KC_MAKE,
29 KC_RESET, 29 KC_RESET,
30 NEWPLACEHOLDER // use "NEWPLACEHOLDER for keymap specific codes 30 NEWPLACEHOLDER // use "NEWPLACEHOLDER for keymap specific codes
31}; 31};
diff --git a/users/drashna/transport_sync.c b/users/drashna/transport_sync.c
index baa1f7651..8a3e6d1bf 100644
--- a/users/drashna/transport_sync.c
+++ b/users/drashna/transport_sync.c
@@ -1,10 +1,10 @@
1#ifdef SPLIT_TRANSACTION_IDS_USER 1#ifdef SPLIT_TRANSACTION_IDS_USER
2#include "transport_sync.h" 2# include "transport_sync.h"
3#include "transactions.h" 3# include "transactions.h"
4#include <string.h> 4# include <string.h>
5 5
6typedef struct { 6typedef struct {
7 bool oled_on; 7 bool oled_on;
8 uint16_t keymap_config; 8 uint16_t keymap_config;
9} user_runtime_config_t; 9} user_runtime_config_t;
10 10
@@ -23,20 +23,19 @@ void keyboard_post_init_transport_sync(void) {
23 23
24void user_state_update(void) { 24void user_state_update(void) {
25 if (is_keyboard_master()) { 25 if (is_keyboard_master()) {
26 26# ifdef OLED_DRIVER_ENABLE
27#ifdef OLED_DRIVER_ENABLE
28 user_state.oled_on = is_oled_on(); 27 user_state.oled_on = is_oled_on();
29#endif 28# endif
30 29
31 user_state.keymap_config = keymap_config.raw; 30 user_state.keymap_config = keymap_config.raw;
32 } else { 31 } else {
33#ifdef OLED_DRIVER_ENABLE 32# ifdef OLED_DRIVER_ENABLE
34 if (user_state.oled_on) { 33 if (user_state.oled_on) {
35 oled_on(); 34 oled_on();
36 } else { 35 } else {
37 oled_off(); 36 oled_off();
38 } 37 }
39#endif 38# endif
40 if (keymap_config.raw != user_state.keymap_config) { 39 if (keymap_config.raw != user_state.keymap_config) {
41 keymap_config.raw = user_state.keymap_config; 40 keymap_config.raw = user_state.keymap_config;
42 } 41 }
diff --git a/users/drashna/wrappers.h b/users/drashna/wrappers.h
index be8162dfa..8ac252926 100644
--- a/users/drashna/wrappers.h
+++ b/users/drashna/wrappers.h
@@ -60,120 +60,120 @@ NOTE: These are all the same length. If you do a search/replace
60#define ______________COLEMAK_MOD_DH_R3____________ KC_K, KC_H, KC_COMM, KC_DOT, KC_SLASH 60#define ______________COLEMAK_MOD_DH_R3____________ KC_K, KC_H, KC_COMM, KC_DOT, KC_SLASH
61 61
62 62
63#define _________________DVORAK_L1_________________ KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y 63#define _________________DVORAK_L1_________________ KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y
64#define _________________DVORAK_L2_________________ KC_A, KC_O, KC_E, KC_U, KC_I 64#define _________________DVORAK_L2_________________ KC_A, KC_O, KC_E, KC_U, KC_I
65#define _________________DVORAK_L3_________________ KC_SCLN, KC_Q, KC_J, KC_K, KC_X 65#define _________________DVORAK_L3_________________ KC_SCLN, KC_Q, KC_J, KC_K, KC_X
66 66
67#define _________________DVORAK_R1_________________ KC_F, KC_G, KC_C, KC_R, KC_L 67#define _________________DVORAK_R1_________________ KC_F, KC_G, KC_C, KC_R, KC_L
68#define _________________DVORAK_R2_________________ KC_D, KC_H, KC_T, KC_N, KC_S, KC_SLSH 68#define _________________DVORAK_R2_________________ KC_D, KC_H, KC_T, KC_N, KC_S, KC_SLSH
69#define _________________DVORAK_R3_________________ KC_B, KC_M, KC_W, KC_V, KC_Z 69#define _________________DVORAK_R3_________________ KC_B, KC_M, KC_W, KC_V, KC_Z
70 70
71 71
72#define ________________DVORAK_AU_L1_______________ KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y 72#define ________________DVORAK_AU_L1_______________ KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y
73#define ________________DVORAK_AU_L2_______________ KC_O, KC_A, KC_E, KC_I, KC_U 73#define ________________DVORAK_AU_L2_______________ KC_O, KC_A, KC_E, KC_I, KC_U
74#define ________________DVORAK_AU_L3_______________ KC_SCLN, KC_Q, KC_J, KC_K, KC_X 74#define ________________DVORAK_AU_L3_______________ KC_SCLN, KC_Q, KC_J, KC_K, KC_X
75 75
76#define ________________DVORAK_AU_R1_______________ KC_F, KC_G, KC_C, KC_R, KC_L 76#define ________________DVORAK_AU_R1_______________ KC_F, KC_G, KC_C, KC_R, KC_L
77#define ________________DVORAK_AU_R2_______________ KC_D, KC_H, KC_T, KC_N, KC_S, KC_SLSH 77#define ________________DVORAK_AU_R2_______________ KC_D, KC_H, KC_T, KC_N, KC_S, KC_SLSH
78#define ________________DVORAK_AU_R3_______________ KC_B, KC_M, KC_W, KC_V, KC_Z 78#define ________________DVORAK_AU_R3_______________ KC_B, KC_M, KC_W, KC_V, KC_Z
79 79
80#define _________________WORKMAN_L1________________ KC_Q, KC_D, KC_R, KC_W, KC_B 80#define _________________WORKMAN_L1________________ KC_Q, KC_D, KC_R, KC_W, KC_B
81#define _________________WORKMAN_L2________________ KC_A, KC_S, KC_H, KC_T, KC_G 81#define _________________WORKMAN_L2________________ KC_A, KC_S, KC_H, KC_T, KC_G
82#define _________________WORKMAN_L3________________ KC_Z, KC_X, KC_M, KC_C, KC_V 82#define _________________WORKMAN_L3________________ KC_Z, KC_X, KC_M, KC_C, KC_V
83 83
84#define _________________WORKMAN_R1________________ KC_J, KC_F, KC_U, KC_P, KC_SCLN 84#define _________________WORKMAN_R1________________ KC_J, KC_F, KC_U, KC_P, KC_SCLN
85#define _________________WORKMAN_R2________________ KC_Y, KC_N, KC_E, KC_O, KC_I, KC_QUOT 85#define _________________WORKMAN_R2________________ KC_Y, KC_N, KC_E, KC_O, KC_I, KC_QUOT
86#define _________________WORKMAN_R3________________ KC_K, KC_L, KC_COMM, KC_DOT, KC_SLSH 86#define _________________WORKMAN_R3________________ KC_K, KC_L, KC_COMM, KC_DOT, KC_SLSH
87 87
88 88
89#define _________________NORMAN_L1_________________ KC_Q, KC_W, KC_D, KC_F, KC_K 89#define _________________NORMAN_L1_________________ KC_Q, KC_W, KC_D, KC_F, KC_K
90#define _________________NORMAN_L2_________________ KC_A, KC_S, KC_E, KC_T, KC_G 90#define _________________NORMAN_L2_________________ KC_A, KC_S, KC_E, KC_T, KC_G
91#define _________________NORMAN_L3_________________ KC_Z, KC_X, KC_C, KC_V, KC_B 91#define _________________NORMAN_L3_________________ KC_Z, KC_X, KC_C, KC_V, KC_B
92 92
93#define _________________NORMAN_R1_________________ KC_J, KC_U, KC_R, KC_L, KC_SCLN 93#define _________________NORMAN_R1_________________ KC_J, KC_U, KC_R, KC_L, KC_SCLN
94#define _________________NORMAN_R2_________________ KC_Y, KC_N, KC_I, KC_O, KC_U, KC_QUOT 94#define _________________NORMAN_R2_________________ KC_Y, KC_N, KC_I, KC_O, KC_U, KC_QUOT
95#define _________________NORMAN_R3_________________ KC_P, KC_M, KC_COMM, KC_DOT, KC_SLSH 95#define _________________NORMAN_R3_________________ KC_P, KC_M, KC_COMM, KC_DOT, KC_SLSH
96 96
97 97
98#define _________________MALTRON_L1________________ KC_Q, KC_P, KC_Y, KC_C, KC_B 98#define _________________MALTRON_L1________________ KC_Q, KC_P, KC_Y, KC_C, KC_B
99#define _________________MALTRON_L2________________ KC_A, KC_N, KC_I, KC_S, KC_F 99#define _________________MALTRON_L2________________ KC_A, KC_N, KC_I, KC_S, KC_F
100#define _________________MALTRON_L3________________ KC_SCLN, KC_SLSH, KC_J, KC_G, KC_COMM 100#define _________________MALTRON_L3________________ KC_SCLN, KC_SLSH, KC_J, KC_G, KC_COMM
101 101
102#define _________________MALTRON_R1________________ KC_V, KC_M, KC_U, KC_Z, KC_L 102#define _________________MALTRON_R1________________ KC_V, KC_M, KC_U, KC_Z, KC_L
103#define _________________MALTRON_R2________________ KC_D, KC_T, KC_D, KC_O, KC_R, KC_QUOT 103#define _________________MALTRON_R2________________ KC_D, KC_T, KC_D, KC_O, KC_R, KC_QUOT
104#define _________________MALTRON_R3________________ KC_DOT, KC_W, KC_K, KC_MINS, KC_X 104#define _________________MALTRON_R3________________ KC_DOT, KC_W, KC_K, KC_MINS, KC_X
105 105
106 106
107#define _________________EUCALYN_L1________________ KC_Q, KC_W, KC_COMM, KC_DOT, KC_SCLN 107#define _________________EUCALYN_L1________________ KC_Q, KC_W, KC_COMM, KC_DOT, KC_SCLN
108#define _________________EUCALYN_L2________________ KC_A, KC_O, KC_E, KC_I, KC_U 108#define _________________EUCALYN_L2________________ KC_A, KC_O, KC_E, KC_I, KC_U
109#define _________________EUCALYN_L3________________ KC_Z, KC_X, KC_C, KC_V, KC_F 109#define _________________EUCALYN_L3________________ KC_Z, KC_X, KC_C, KC_V, KC_F
110 110
111#define _________________EUCALYN_R1________________ KC_M, KC_R, KC_D, KC_Y, KC_P 111#define _________________EUCALYN_R1________________ KC_M, KC_R, KC_D, KC_Y, KC_P
112#define _________________EUCALYN_R2________________ KC_G, KC_T, KC_K, KC_S, KC_N, KC_QUOT 112#define _________________EUCALYN_R2________________ KC_G, KC_T, KC_K, KC_S, KC_N, KC_QUOT
113#define _________________EUCALYN_R3________________ KC_B, KC_H, KC_J, KC_L, KC_SLSH 113#define _________________EUCALYN_R3________________ KC_B, KC_H, KC_J, KC_L, KC_SLSH
114 114
115// Qwerty-like 115// Qwerty-like
116#define _____________CARPLAX_QFMLWY_L1_____________ KC_Q, KC_F, KC_M, KC_L, KC_W 116#define _____________CARPLAX_QFMLWY_L1_____________ KC_Q, KC_F, KC_M, KC_L, KC_W
117#define _____________CARPLAX_QFMLWY_L2_____________ KC_D, KC_S, KC_T, KC_N, KC_R 117#define _____________CARPLAX_QFMLWY_L2_____________ KC_D, KC_S, KC_T, KC_N, KC_R
118#define _____________CARPLAX_QFMLWY_L3_____________ KC_Z, KC_V, KC_G, KC_C, KC_X 118#define _____________CARPLAX_QFMLWY_L3_____________ KC_Z, KC_V, KC_G, KC_C, KC_X
119 119
120#define _____________CARPLAX_QFMLWY_R1_____________ KC_Y, KC_U, KC_O, KC_B, KC_J 120#define _____________CARPLAX_QFMLWY_R1_____________ KC_Y, KC_U, KC_O, KC_B, KC_J
121#define _____________CARPLAX_QFMLWY_R2_____________ KC_I, KC_A, KC_E, KC_H, KC_SCLN, KC_QUOT 121#define _____________CARPLAX_QFMLWY_R2_____________ KC_I, KC_A, KC_E, KC_H, KC_SCLN, KC_QUOT
122#define _____________CARPLAX_QFMLWY_R3_____________ KC_P, KC_K, KC_COMM, KC_DOT, KC_SLSH 122#define _____________CARPLAX_QFMLWY_R3_____________ KC_P, KC_K, KC_COMM, KC_DOT, KC_SLSH
123 123
124// Colemak like 124// Colemak like
125#define _____________CARPLAX_QGMLWB_L1_____________ KC_Q, KC_G, KC_M, KC_L, KC_W 125#define _____________CARPLAX_QGMLWB_L1_____________ KC_Q, KC_G, KC_M, KC_L, KC_W
126#define _____________CARPLAX_QGMLWB_L2_____________ KC_D, KC_S, KC_T, KC_N, KC_R 126#define _____________CARPLAX_QGMLWB_L2_____________ KC_D, KC_S, KC_T, KC_N, KC_R
127#define _____________CARPLAX_QGMLWB_L3_____________ KC_Z, KC_X, KC_C, KC_F, KC_J 127#define _____________CARPLAX_QGMLWB_L3_____________ KC_Z, KC_X, KC_C, KC_F, KC_J
128 128
129#define _____________CARPLAX_QGMLWB_R1_____________ KC_B, KC_Y, KC_U, KC_V, KC_SCLN 129#define _____________CARPLAX_QGMLWB_R1_____________ KC_B, KC_Y, KC_U, KC_V, KC_SCLN
130#define _____________CARPLAX_QGMLWB_R2_____________ KC_I, KC_A, KC_E, KC_O, KC_H, KC_QUOT 130#define _____________CARPLAX_QGMLWB_R2_____________ KC_I, KC_A, KC_E, KC_O, KC_H, KC_QUOT
131#define _____________CARPLAX_QGMLWB_R3_____________ KC_K, KC_P, KC_COMM, KC_DOT, KC_SLSH 131#define _____________CARPLAX_QGMLWB_R3_____________ KC_K, KC_P, KC_COMM, KC_DOT, KC_SLSH
132 132
133// colemak like, zxcv fixed 133// colemak like, zxcv fixed
134#define _____________CARPLAX_QGMLWY_L1_____________ KC_Q, KC_G, KC_M, KC_L, KC_W 134#define _____________CARPLAX_QGMLWY_L1_____________ KC_Q, KC_G, KC_M, KC_L, KC_W
135#define _____________CARPLAX_QGMLWY_L2_____________ KC_D, KC_S, KC_T, KC_N, KC_R 135#define _____________CARPLAX_QGMLWY_L2_____________ KC_D, KC_S, KC_T, KC_N, KC_R
136#define _____________CARPLAX_QGMLWY_L3_____________ KC_Z, KC_X, KC_C, KC_V, KC_J 136#define _____________CARPLAX_QGMLWY_L3_____________ KC_Z, KC_X, KC_C, KC_V, KC_J
137 137
138#define _____________CARPLAX_QGMLWY_R1_____________ KC_Y, KC_F, KC_U, KC_B, KC_SCLN 138#define _____________CARPLAX_QGMLWY_R1_____________ KC_Y, KC_F, KC_U, KC_B, KC_SCLN
139#define _____________CARPLAX_QGMLWY_R2_____________ KC_I, KC_A, KC_E, KC_O, KC_H, KC_QUOT 139#define _____________CARPLAX_QGMLWY_R2_____________ KC_I, KC_A, KC_E, KC_O, KC_H, KC_QUOT
140#define _____________CARPLAX_QGMLWY_R3_____________ KC_K, KC_P, KC_COMM, KC_DOT, KC_SLSH 140#define _____________CARPLAX_QGMLWY_R3_____________ KC_K, KC_P, KC_COMM, KC_DOT, KC_SLSH
141 141
142// teeheehee 142// teeheehee
143#define _____________CARPLAX_TNWCLR_L1_____________ KC_T, KC_N, KC_W, KC_C, KC_L 143#define _____________CARPLAX_TNWCLR_L1_____________ KC_T, KC_N, KC_W, KC_C, KC_L
144#define _____________CARPLAX_TNWCLR_L2_____________ KC_S, KC_K, KC_J, KC_X, KC_G 144#define _____________CARPLAX_TNWCLR_L2_____________ KC_S, KC_K, KC_J, KC_X, KC_G
145#define _____________CARPLAX_TNWCLR_L3_____________ KC_E, KC_O, KC_D, KC_I, KC_A 145#define _____________CARPLAX_TNWCLR_L3_____________ KC_E, KC_O, KC_D, KC_I, KC_A
146 146
147#define _____________CARPLAX_TNWCLR_R1_____________ KC_R, KC_B, KC_F, KC_M, KC_H 147#define _____________CARPLAX_TNWCLR_R1_____________ KC_R, KC_B, KC_F, KC_M, KC_H
148#define _____________CARPLAX_TNWCLR_R2_____________ KC_P, KC_Q, KC_Z, KC_V, KC_SCLN, KC_QUOT 148#define _____________CARPLAX_TNWCLR_R2_____________ KC_P, KC_Q, KC_Z, KC_V, KC_SCLN, KC_QUOT
149#define _____________CARPLAX_TNWCLR_R3_____________ KC_U, KC_Y, KC_COMM, KC_DOT, KC_SLSH 149#define _____________CARPLAX_TNWCLR_R3_____________ KC_U, KC_Y, KC_COMM, KC_DOT, KC_SLSH
150 150
151 151
152#define _________________WHITE_R1__________________ KC_V, KC_Y, KC_D, KC_COMM, KC_QUOT 152#define _________________WHITE_R1__________________ KC_V, KC_Y, KC_D, KC_COMM, KC_QUOT
153#define _________________WHITE_R2__________________ KC_A, KC_T, KC_H, KC_E, KC_B 153#define _________________WHITE_R2__________________ KC_A, KC_T, KC_H, KC_E, KC_B
154#define _________________WHITE_R3__________________ KC_P, KC_K, KC_G, KC_W, KC_Q 154#define _________________WHITE_R3__________________ KC_P, KC_K, KC_G, KC_W, KC_Q
155 155
156#define _________________WHITE_L1__________________ KC_INT1, KC_J, KC_M, KC_L, KC_U 156#define _________________WHITE_L1__________________ KC_INT1, KC_J, KC_M, KC_L, KC_U
157#define _________________WHITE_L2__________________ KC_MINS, KC_C, KC_S, KC_N, KC_O, KC_I 157#define _________________WHITE_L2__________________ KC_MINS, KC_C, KC_S, KC_N, KC_O, KC_I
158#define _________________WHITE_L3__________________ KC_X, KC_R, KC_F, KC_DOT, KC_Z 158#define _________________WHITE_L3__________________ KC_X, KC_R, KC_F, KC_DOT, KC_Z
159 159
160 160
161#define _________________HALMAK_L1_________________ KC_W, KC_L, KC_R, KC_B, KC_Z 161#define _________________HALMAK_L1_________________ KC_W, KC_L, KC_R, KC_B, KC_Z
162#define _________________HALMAK_L2_________________ KC_S, KC_H, KC_N, KC_T, KC_COMM 162#define _________________HALMAK_L2_________________ KC_S, KC_H, KC_N, KC_T, KC_COMM
163#define _________________HALMAK_L3_________________ KC_F, KC_M, KC_V, KC_V, KC_SLASH 163#define _________________HALMAK_L3_________________ KC_F, KC_M, KC_V, KC_V, KC_SLASH
164 164
165#define _________________HALMAK_R1_________________ KC_SCLN, KC_Q, KC_U, KC_D, KC_J 165#define _________________HALMAK_R1_________________ KC_SCLN, KC_Q, KC_U, KC_D, KC_J
166#define _________________HALMAK_R2_________________ KC_DOT, KC_A, KC_E, KC_O, KC_I, KC_QUOTE 166#define _________________HALMAK_R2_________________ KC_DOT, KC_A, KC_E, KC_O, KC_I, KC_QUOTE
167#define _________________HALMAK_R3_________________ KC_G, KC_P, KC_X, KC_K, KC_Y 167#define _________________HALMAK_R3_________________ KC_G, KC_P, KC_X, KC_K, KC_Y
168 168
169 169
170#define _________________HALMAK_L1_________________ KC_W, KC_L, KC_R, KC_B, KC_Z 170#define _________________HALMAK_L1_________________ KC_W, KC_L, KC_R, KC_B, KC_Z
171#define _________________HALMAK_L2_________________ KC_S, KC_H, KC_N, KC_T, KC_COMM 171#define _________________HALMAK_L2_________________ KC_S, KC_H, KC_N, KC_T, KC_COMM
172#define _________________HALMAK_L3_________________ KC_F, KC_M, KC_V, KC_V, KC_SLASH 172#define _________________HALMAK_L3_________________ KC_F, KC_M, KC_V, KC_V, KC_SLASH
173 173
174#define _________________HALMAK_R1_________________ KC_SCLN, KC_Q, KC_U, KC_D, KC_J 174#define _________________HALMAK_R1_________________ KC_SCLN, KC_Q, KC_U, KC_D, KC_J
175#define _________________HALMAK_R2_________________ KC_DOT, KC_A, KC_E, KC_O, KC_I, KC_QUOTE 175#define _________________HALMAK_R2_________________ KC_DOT, KC_A, KC_E, KC_O, KC_I, KC_QUOTE
176#define _________________HALMAK_R3_________________ KC_G, KC_P, KC_X, KC_K, KC_Y 176#define _________________HALMAK_R3_________________ KC_G, KC_P, KC_X, KC_K, KC_Y
177 177
178 178
179#define ________________NUMBER_LEFT________________ KC_1, KC_2, KC_3, KC_4, KC_5 179#define ________________NUMBER_LEFT________________ KC_1, KC_2, KC_3, KC_4, KC_5
@@ -181,35 +181,35 @@ NOTE: These are all the same length. If you do a search/replace
181#define _________________FUNC_LEFT_________________ KC_F1, KC_F2, KC_F3, KC_F4, KC_F5 181#define _________________FUNC_LEFT_________________ KC_F1, KC_F2, KC_F3, KC_F4, KC_F5
182#define _________________FUNC_RIGHT________________ KC_F6, KC_F7, KC_F8, KC_F9, KC_F10 182#define _________________FUNC_RIGHT________________ KC_F6, KC_F7, KC_F8, KC_F9, KC_F10
183 183
184#define ___________________BLANK___________________ _______, _______, _______, _______, _______ 184#define ___________________BLANK___________________ _______, _______, _______, _______, _______
185 185
186 186
187#define _________________LOWER_L1__________________ KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC 187#define _________________LOWER_L1__________________ KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC
188#define _________________LOWER_L2__________________ _________________FUNC_LEFT_________________ 188#define _________________LOWER_L2__________________ _________________FUNC_LEFT_________________
189#define _________________LOWER_L3__________________ _________________FUNC_RIGHT________________ 189#define _________________LOWER_L3__________________ _________________FUNC_RIGHT________________
190 190
191#define _________________LOWER_R1__________________ KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN 191#define _________________LOWER_R1__________________ KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN
192#define _________________LOWER_R2__________________ _______, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR 192#define _________________LOWER_R2__________________ _______, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR
193#define _________________LOWER_R3__________________ _______, KC_HOME, KC_PGDN, KC_PGUP, KC_END 193#define _________________LOWER_R3__________________ _______, KC_HOME, KC_PGDN, KC_PGUP, KC_END
194 194
195 195
196 196
197#define _________________RAISE_L1__________________ ________________NUMBER_LEFT________________ 197#define _________________RAISE_L1__________________ ________________NUMBER_LEFT________________
198#define _________________RAISE_L2__________________ ___________________BLANK___________________ 198#define _________________RAISE_L2__________________ ___________________BLANK___________________
199#define _________________RAISE_L3__________________ ___________________BLANK___________________ 199#define _________________RAISE_L3__________________ ___________________BLANK___________________
200 200
201#define _________________RAISE_R1__________________ ________________NUMBER_RIGHT_______________ 201#define _________________RAISE_R1__________________ ________________NUMBER_RIGHT_______________
202#define _________________RAISE_R2__________________ _______, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC 202#define _________________RAISE_R2__________________ _______, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC
203#define _________________RAISE_R3__________________ _______, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT 203#define _________________RAISE_R3__________________ _______, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT
204 204
205 205
206 206
207#define _________________ADJUST_L1_________________ RGB_MOD, RGB_HUI, RGB_SAI, RGB_VAI, RGB_TOG 207#define _________________ADJUST_L1_________________ RGB_MOD, RGB_HUI, RGB_SAI, RGB_VAI, RGB_TOG
208#define _________________ADJUST_L2_________________ MU_TOG , CK_TOGG, AU_ON, AU_OFF, CG_NORM 208#define _________________ADJUST_L2_________________ MU_TOG , CK_TOGG, AU_ON, AU_OFF, CG_NORM
209#define _________________ADJUST_L3_________________ RGB_RMOD,RGB_HUD,RGB_SAD, RGB_VAD, KC_RGB_T 209#define _________________ADJUST_L3_________________ RGB_RMOD,RGB_HUD,RGB_SAD, RGB_VAD, KC_RGB_T
210 210
211#define _________________ADJUST_R1_________________ KC_SEC1, KC_SEC2, KC_SEC3, KC_SEC4, KC_SEC5 211#define _________________ADJUST_R1_________________ KC_SEC1, KC_SEC2, KC_SEC3, KC_SEC4, KC_SEC5
212#define _________________ADJUST_R2_________________ CG_SWAP, QWERTY, COLEMAK, DVORAK, WORKMAN 212#define _________________ADJUST_R2_________________ CG_SWAP, DEFLYR1, DEFLYR2, DEFLYR3, DEFLYR4
213#define _________________ADJUST_R3_________________ MG_NKRO, KC_MUTE, KC_VOLD, KC_VOLU, KC_MNXT 213#define _________________ADJUST_R3_________________ MG_NKRO, KC_MUTE, KC_VOLD, KC_VOLU, KC_MNXT
214 214
215// clang-format on 215// clang-format on