aboutsummaryrefslogtreecommitdiff
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
parent368efb5d2b834d995ba24cd23349327bab02918b (diff)
downloadqmk_firmware-eb46c954dcf99d842967cc6095827316ffddd291.tar.gz
qmk_firmware-eb46c954dcf99d842967cc6095827316ffddd291.zip
[Keymap] Drashna's Defaults cleanup (#13722)
-rw-r--r--keyboards/40percentclub/nano/keymaps/drashna/keymap.c8
-rwxr-xr-xkeyboards/c39/keymaps/drashna/keymap.c41
-rw-r--r--keyboards/gergo/keymaps/drashna/keymap.c46
-rw-r--r--keyboards/handwired/tractyl_manuform/4x6_right/keymaps/drashna/keymap.c78
-rw-r--r--keyboards/handwired/tractyl_manuform/5x6_right/5x6_right.c4
-rw-r--r--keyboards/handwired/tractyl_manuform/5x6_right/config.h42
-rw-r--r--keyboards/handwired/tractyl_manuform/5x6_right/keymaps/drashna/keymap.c115
-rw-r--r--keyboards/handwired/tractyl_manuform/5x6_right/keymaps/drashna/rgblight_breathe_table.h117
-rw-r--r--keyboards/handwired/tractyl_manuform/5x6_right/keymaps/drashna/rules.mk1
-rw-r--r--keyboards/keebio/iris/keymaps/drashna/keymap.c72
-rw-r--r--keyboards/keebio/iris/keymaps/drashna_lp/config.h50
-rw-r--r--keyboards/keebio/iris/keymaps/drashna_lp/keymap.c1
-rw-r--r--keyboards/keebio/iris/keymaps/drashna_lp/rules.mk7
-rw-r--r--keyboards/keebio/iris/keymaps/drashna_old/config.h47
-rw-r--r--keyboards/keebio/iris/keymaps/drashna_old/keymap.c1
-rw-r--r--keyboards/keebio/iris/keymaps/drashna_old/rules.mk4
-rw-r--r--keyboards/keebio/viterbi/keymaps/drashna_old/config.h25
-rw-r--r--keyboards/keebio/viterbi/keymaps/drashna_old/keymap.c1
-rw-r--r--keyboards/keebio/viterbi/keymaps/drashna_old/rules.mk4
-rw-r--r--keyboards/moonlander/keymaps/drashna/keymap.c82
-rw-r--r--keyboards/orthodox/keymaps/drashna/keymap.c71
-rw-r--r--keyboards/ploopyco/mouse/keymaps/drashna/config.h7
-rw-r--r--keyboards/ploopyco/mouse/keymaps/drashna/keymap.c4
-rw-r--r--keyboards/splitkb/kyria/keymaps/drashna/keymap.c101
-rw-r--r--keyboards/splitkb/kyria/keymaps/drashna/rules.mk8
-rw-r--r--keyboards/splitkb/zima/keymaps/drashna/keymap.c26
-rw-r--r--keyboards/splitkb/zima/keymaps/drashna/rules.mk1
-rw-r--r--layouts/community/ergodox/drashna/keymap.c219
-rw-r--r--layouts/community/ortho_4x12/drashna/keymap.c143
-rw-r--r--layouts/community/ortho_4x12/drashna/rules.mk14
-rw-r--r--layouts/community/ortho_5x12/drashna/keymap.c44
-rw-r--r--layouts/community/split_3x6_3/drashna/config.h12
-rw-r--r--layouts/community/split_3x6_3/drashna/keymap.c110
-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
50 files changed, 993 insertions, 1396 deletions
diff --git a/keyboards/40percentclub/nano/keymaps/drashna/keymap.c b/keyboards/40percentclub/nano/keymaps/drashna/keymap.c
index b8947cce7..13f89dd53 100644
--- a/keyboards/40percentclub/nano/keymaps/drashna/keymap.c
+++ b/keyboards/40percentclub/nano/keymaps/drashna/keymap.c
@@ -85,15 +85,15 @@ int16_t axisCoordinate(uint8_t pin, uint16_t origin) {
85 85
86int8_t axisToMouseComponent(uint8_t pin, int16_t origin, uint8_t maxSpeed, int8_t polarity) { 86int8_t axisToMouseComponent(uint8_t pin, int16_t origin, uint8_t maxSpeed, int8_t polarity) {
87 int coordinate = axisCoordinate(pin, origin); 87 int coordinate = axisCoordinate(pin, origin);
88 if (coordinate == 0) { 88 if (coordinate != 0) {
89 return 0;
90 } else {
91 float percent = (float)coordinate / 100; 89 float percent = (float)coordinate / 100;
92 if (keyboard_report->mods & MOD_BIT(KC_LSFT)) { 90 if (get_mods() & MOD_BIT(KC_LSFT)) {
93 return percent * precisionSpeed * polarity * (abs(coordinate) / speedRegulator); 91 return percent * precisionSpeed * polarity * (abs(coordinate) / speedRegulator);
94 } else { 92 } else {
95 return percent * maxCursorSpeed * polarity * (abs(coordinate) / speedRegulator); 93 return percent * maxCursorSpeed * polarity * (abs(coordinate) / speedRegulator);
96 } 94 }
95 } else {
96 return 0;
97 } 97 }
98} 98}
99 99
diff --git a/keyboards/c39/keymaps/drashna/keymap.c b/keyboards/c39/keymaps/drashna/keymap.c
index 88065263c..6fd1f1298 100755
--- a/keyboards/c39/keymaps/drashna/keymap.c
+++ b/keyboards/c39/keymaps/drashna/keymap.c
@@ -39,54 +39,29 @@
39 39
40const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { 40const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
41 41
42 [_QWERTY] = LAYOUT_base_wrapper( 42 [_DEFAULT_LAYER_1] = LAYOUT_base_wrapper(
43 _________________QWERTY_L1_________________, _________________QWERTY_R1_________________, 43 _________________QWERTY_L1_________________, _________________QWERTY_R1_________________,
44 _________________QWERTY_L2_________________, _________________QWERTY_R2_________________, 44 _________________QWERTY_L2_________________, _________________QWERTY_R2_________________,
45 _________________QWERTY_L3_________________, _________________QWERTY_R3_________________ 45 _________________QWERTY_L3_________________, _________________QWERTY_R3_________________
46 ), 46 ),
47 47
48 [_COLEMAK] = LAYOUT_base_wrapper( 48 [_DEFAULT_LAYER_2] = LAYOUT_base_wrapper(
49 ______________COLEMAK_MOD_DH_L1____________, ______________COLEMAK_MOD_DH_R1____________,
50 ______________COLEMAK_MOD_DH_L2____________, ______________COLEMAK_MOD_DH_R2____________,
51 ______________COLEMAK_MOD_DH_L3____________, ______________COLEMAK_MOD_DH_R3____________
52 ),
53 [_DEFAULT_LAYER_3] = LAYOUT_base_wrapper(
49 _________________COLEMAK_L1________________, _________________COLEMAK_R1________________, 54 _________________COLEMAK_L1________________, _________________COLEMAK_R1________________,
50 _________________COLEMAK_L2________________, _________________COLEMAK_R2________________, 55 _________________COLEMAK_L2________________, _________________COLEMAK_R2________________,
51 _________________COLEMAK_L3________________, _________________COLEMAK_R3________________ 56 _________________COLEMAK_L3________________, _________________COLEMAK_R3________________
52 ), 57 ),
53 58
54 [_DVORAK] = LAYOUT_base_wrapper( 59 [_DEFAULT_LAYER_4] = LAYOUT_base_wrapper(
55 _________________DVORAK_L1_________________, _________________DVORAK_R1_________________, 60 _________________DVORAK_L1_________________, _________________DVORAK_R1_________________,
56 _________________DVORAK_L2_________________, _________________DVORAK_R2_________________, 61 _________________DVORAK_L2_________________, _________________DVORAK_R2_________________,
57 _________________DVORAK_L3_________________, _________________DVORAK_R3_________________ 62 _________________DVORAK_L3_________________, _________________DVORAK_R3_________________
58 ), 63 ),
59 64
60 [_WORKMAN] = LAYOUT_base_wrapper(
61 _________________WORKMAN_L1________________, _________________WORKMAN_R1________________,
62 _________________WORKMAN_L2________________, _________________WORKMAN_R2________________,
63 _________________WORKMAN_L3________________, _________________WORKMAN_R3________________
64 ),
65
66 [_NORMAN] = LAYOUT_base_wrapper(
67 _________________NORMAN_L1_________________, _________________NORMAN_L1_________________,
68 _________________NORMAN_L2_________________, _________________NORMAN_R2_________________,
69 _________________NORMAN_L3_________________, _________________NORMAN_R3_________________
70 ),
71
72 [_MALTRON] = LAYOUT_base_wrapper(
73 _________________MALTRON_L1________________, _________________MALTRON_R1________________,
74 _________________MALTRON_L2________________, _________________MALTRON_R2________________,
75 _________________MALTRON_L3________________, _________________MALTRON_R3________________
76 ),
77
78 [_EUCALYN] = LAYOUT_base_wrapper(
79 _________________EUCALYN_L1________________, _________________EUCALYN_R1________________,
80 _________________EUCALYN_L2________________, _________________EUCALYN_R2________________,
81 _________________EUCALYN_L3________________, _________________EUCALYN_R3________________
82 ),
83
84 [_CARPLAX] = LAYOUT_base_wrapper(
85 _____________CARPLAX_QFMLWY_L1_____________, _____________CARPLAX_QFMLWY_R1_____________,
86 _____________CARPLAX_QFMLWY_L2_____________, _____________CARPLAX_QFMLWY_R2_____________,
87 _____________CARPLAX_QFMLWY_L3_____________, _____________CARPLAX_QFMLWY_R3_____________
88 ),
89
90 [_LOWER] = LAYOUT_wrapper( 65 [_LOWER] = LAYOUT_wrapper(
91 KC_TILD, _________________LOWER_L1__________________, _______, _________________LOWER_R1__________________, KC_BSPC, 66 KC_TILD, _________________LOWER_L1__________________, _______, _________________LOWER_R1__________________, KC_BSPC,
92 KC_DEL, _________________LOWER_L2__________________, _______, _________________LOWER_R2__________________, KC_PIPE, 67 KC_DEL, _________________LOWER_L2__________________, _______, _________________LOWER_R2__________________, KC_PIPE,
diff --git a/keyboards/gergo/keymaps/drashna/keymap.c b/keyboards/gergo/keymaps/drashna/keymap.c
index 81ff6852d..01d52ed16 100644
--- a/keyboards/gergo/keymaps/drashna/keymap.c
+++ b/keyboards/gergo/keymaps/drashna/keymap.c
@@ -37,56 +37,32 @@
37 KC_GRV, KC_SPC, BK_LWER, OS_LALT, OS_RGUI, DL_RAIS, KC_ENT, _______ \ 37 KC_GRV, KC_SPC, BK_LWER, OS_LALT, OS_RGUI, DL_RAIS, KC_ENT, _______ \
38 ) 38 )
39 39
40#define LAYOUT_gergo_base_wrapper(...) LAYOUT_gergo_base(__VA_ARGS__) 40#define LAYOUT_base_wrapper(...) LAYOUT_gergo_base(__VA_ARGS__)
41 41
42const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { 42const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
43 [_QWERTY] = LAYOUT_gergo_base_wrapper( 43 [_DEFAULT_LAYER_1] = LAYOUT_base_wrapper(
44 _________________QWERTY_L1_________________, _________________QWERTY_R1_________________, 44 _________________QWERTY_L1_________________, _________________QWERTY_R1_________________,
45 _________________QWERTY_L2_________________, _________________QWERTY_R2_________________, 45 _________________QWERTY_L2_________________, _________________QWERTY_R2_________________,
46 _________________QWERTY_L3_________________, _________________QWERTY_R3_________________ 46 _________________QWERTY_L3_________________, _________________QWERTY_R3_________________
47 ), 47 ),
48 [_COLEMAK] = LAYOUT_gergo_base_wrapper( 48
49 [_DEFAULT_LAYER_2] = LAYOUT_base_wrapper(
50 ______________COLEMAK_MOD_DH_L1____________, ______________COLEMAK_MOD_DH_R1____________,
51 ______________COLEMAK_MOD_DH_L2____________, ______________COLEMAK_MOD_DH_R2____________,
52 ______________COLEMAK_MOD_DH_L3____________, ______________COLEMAK_MOD_DH_R3____________
53 ),
54 [_DEFAULT_LAYER_3] = LAYOUT_base_wrapper(
49 _________________COLEMAK_L1________________, _________________COLEMAK_R1________________, 55 _________________COLEMAK_L1________________, _________________COLEMAK_R1________________,
50 _________________COLEMAK_L2________________, _________________COLEMAK_R2________________, 56 _________________COLEMAK_L2________________, _________________COLEMAK_R2________________,
51 _________________COLEMAK_L3________________, _________________COLEMAK_R3________________ 57 _________________COLEMAK_L3________________, _________________COLEMAK_R3________________
52 ), 58 ),
53 59
54 [_DVORAK] = LAYOUT_gergo_base_wrapper( 60 [_DEFAULT_LAYER_4] = LAYOUT_base_wrapper(
55 _________________DVORAK_L1_________________, _________________DVORAK_R1_________________, 61 _________________DVORAK_L1_________________, _________________DVORAK_R1_________________,
56 _________________DVORAK_L2_________________, _________________DVORAK_R2_________________, 62 _________________DVORAK_L2_________________, _________________DVORAK_R2_________________,
57 _________________DVORAK_L3_________________, _________________DVORAK_R3_________________ 63 _________________DVORAK_L3_________________, _________________DVORAK_R3_________________
58 ), 64 ),
59 65
60 [_WORKMAN] = LAYOUT_gergo_base_wrapper(
61 _________________WORKMAN_L1________________, _________________WORKMAN_R1________________,
62 _________________WORKMAN_L2________________, _________________WORKMAN_R2________________,
63 _________________WORKMAN_L3________________, _________________WORKMAN_R3________________
64 ),
65
66 [_NORMAN] = LAYOUT_gergo_base_wrapper(
67 _________________NORMAN_L1_________________, _________________NORMAN_L1_________________,
68 _________________NORMAN_L2_________________, _________________NORMAN_R2_________________,
69 _________________NORMAN_L3_________________, _________________NORMAN_R3_________________
70 ),
71
72 [_MALTRON] = LAYOUT_gergo_base_wrapper(
73 _________________MALTRON_L1________________, _________________MALTRON_R1________________,
74 _________________MALTRON_L2________________, _________________MALTRON_R2________________,
75 _________________MALTRON_L3________________, _________________MALTRON_R3________________
76 ),
77
78 [_EUCALYN] = LAYOUT_gergo_base_wrapper(
79 _________________EUCALYN_L1________________, _________________EUCALYN_R1________________,
80 _________________EUCALYN_L2________________, _________________EUCALYN_R2________________,
81 _________________EUCALYN_L3________________, _________________EUCALYN_R3________________
82 ),
83
84 [_CARPLAX] = LAYOUT_gergo_base_wrapper(
85 _____________CARPLAX_QFMLWY_L1_____________, _____________CARPLAX_QFMLWY_R1_____________,
86 _____________CARPLAX_QFMLWY_L2_____________, _____________CARPLAX_QFMLWY_R2_____________,
87 _____________CARPLAX_QFMLWY_L3_____________, _____________CARPLAX_QFMLWY_R3_____________
88 ),
89
90 [_LOWER] = LAYOUT_gergo_wrapper( 66 [_LOWER] = LAYOUT_gergo_wrapper(
91 KC_F12, _________________LOWER_L1__________________, _________________LOWER_R1__________________, KC_F11, 67 KC_F12, _________________LOWER_L1__________________, _________________LOWER_R1__________________, KC_F11,
92 _______, _________________LOWER_L2__________________, _______, _______, _________________LOWER_R2__________________, KC_PIPE, 68 _______, _________________LOWER_L2__________________, _______, _______, _________________LOWER_R2__________________, KC_PIPE,
diff --git a/keyboards/handwired/tractyl_manuform/4x6_right/keymaps/drashna/keymap.c b/keyboards/handwired/tractyl_manuform/4x6_right/keymaps/drashna/keymap.c
index 7e3c356bd..28683cef3 100644
--- a/keyboards/handwired/tractyl_manuform/4x6_right/keymaps/drashna/keymap.c
+++ b/keyboards/handwired/tractyl_manuform/4x6_right/keymaps/drashna/keymap.c
@@ -32,58 +32,33 @@
32 KC_SPC, OS_LGUI, KC_ENT, \ 32 KC_SPC, OS_LGUI, KC_ENT, \
33 BK_LWER, TT(_MOUSE), TT(_MOUSE), DL_RAIS \ 33 BK_LWER, TT(_MOUSE), TT(_MOUSE), DL_RAIS \
34 ) 34 )
35#define LAYOUT_4x6_right_base_wrapper(...) LAYOUT_4x6_right_base(__VA_ARGS__) 35#define LAYOUT_base_wrapper(...) LAYOUT_4x6_right_base(__VA_ARGS__)
36 36
37 37
38const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { 38const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
39 [_QWERTY] = LAYOUT_4x6_right_base_wrapper( 39 [_DEFAULT_LAYER_1] = LAYOUT_base_wrapper(
40 _________________QWERTY_L1_________________, _________________QWERTY_R1_________________, 40 _________________QWERTY_L1_________________, _________________QWERTY_R1_________________,
41 _________________QWERTY_L2_________________, _________________QWERTY_R2_________________, 41 _________________QWERTY_L2_________________, _________________QWERTY_R2_________________,
42 _________________QWERTY_L3_________________, _________________QWERTY_R3_________________ 42 _________________QWERTY_L3_________________, _________________QWERTY_R3_________________
43 ), 43 ),
44 44
45 [_COLEMAK] = LAYOUT_4x6_right_base_wrapper( 45 [_DEFAULT_LAYER_2] = LAYOUT_base_wrapper(
46 ______________COLEMAK_MOD_DH_L1____________, ______________COLEMAK_MOD_DH_R1____________,
47 ______________COLEMAK_MOD_DH_L2____________, ______________COLEMAK_MOD_DH_R2____________,
48 ______________COLEMAK_MOD_DH_L3____________, ______________COLEMAK_MOD_DH_R3____________
49 ),
50 [_DEFAULT_LAYER_3] = LAYOUT_base_wrapper(
46 _________________COLEMAK_L1________________, _________________COLEMAK_R1________________, 51 _________________COLEMAK_L1________________, _________________COLEMAK_R1________________,
47 _________________COLEMAK_L2________________, _________________COLEMAK_R2________________, 52 _________________COLEMAK_L2________________, _________________COLEMAK_R2________________,
48 _________________COLEMAK_L3________________, _________________COLEMAK_R3________________ 53 _________________COLEMAK_L3________________, _________________COLEMAK_R3________________
49 ), 54 ),
50 55
51 [_DVORAK] = LAYOUT_4x6_right_base_wrapper( 56 [_DEFAULT_LAYER_4] = LAYOUT_base_wrapper(
52 _________________DVORAK_L1_________________, _________________DVORAK_R1_________________, 57 _________________DVORAK_L1_________________, _________________DVORAK_R1_________________,
53 _________________DVORAK_L2_________________, _________________DVORAK_R2_________________, 58 _________________DVORAK_L2_________________, _________________DVORAK_R2_________________,
54 _________________DVORAK_L3_________________, _________________DVORAK_R3_________________ 59 _________________DVORAK_L3_________________, _________________DVORAK_R3_________________
55 ), 60 ),
56 61
57 [_WORKMAN] = LAYOUT_4x6_right_base_wrapper(
58 _________________WORKMAN_L1________________, _________________WORKMAN_R1________________,
59 _________________WORKMAN_L2________________, _________________WORKMAN_R2________________,
60 _________________WORKMAN_L3________________, _________________WORKMAN_R3________________
61 ),
62
63 [_NORMAN] = LAYOUT_4x6_right_base_wrapper(
64 _________________NORMAN_L1_________________, _________________NORMAN_L1_________________,
65 _________________NORMAN_L2_________________, _________________NORMAN_R2_________________,
66 _________________NORMAN_L3_________________, _________________NORMAN_R3_________________
67 ),
68
69 [_MALTRON] = LAYOUT_4x6_right_base_wrapper(
70 _________________MALTRON_L1________________, _________________MALTRON_R1________________,
71 _________________MALTRON_L2________________, _________________MALTRON_R2________________,
72 _________________MALTRON_L3________________, _________________MALTRON_R3________________
73 ),
74
75 [_EUCALYN] = LAYOUT_4x6_right_base_wrapper(
76 _________________EUCALYN_L1________________, _________________EUCALYN_R1________________,
77 _________________EUCALYN_L2________________, _________________EUCALYN_R2________________,
78 _________________EUCALYN_L3________________, _________________EUCALYN_R3________________
79 ),
80
81 [_CARPLAX] = LAYOUT_4x6_right_base_wrapper(
82 _____________CARPLAX_QFMLWY_L1_____________, _____________CARPLAX_QFMLWY_R1_____________,
83 _____________CARPLAX_QFMLWY_L2_____________, _____________CARPLAX_QFMLWY_R2_____________,
84 _____________CARPLAX_QFMLWY_L3_____________, _____________CARPLAX_QFMLWY_R3_____________
85 ),
86
87 [_MOUSE] = LAYOUT_4x6_right( 62 [_MOUSE] = LAYOUT_4x6_right(
88 _______, _______, _______, _______, _______, _______, KC_WH_U, _______, _______, _______, DPI_CONFIG, _______, 63 _______, _______, _______, _______, _______, _______, KC_WH_U, _______, _______, _______, DPI_CONFIG, _______,
89 _______, _______, _______, _______, _______, _______, KC_WH_D, KC_BTN1, KC_BTN3, KC_BTN2, KC_BTN6, _______, 64 _______, _______, _______, _______, _______, _______, KC_WH_D, KC_BTN1, KC_BTN3, KC_BTN2, KC_BTN6, _______,
@@ -182,26 +157,27 @@ void matrix_scan_keymap(void) {
182 157
183bool process_record_keymap(uint16_t keycode, keyrecord_t* record) { 158bool process_record_keymap(uint16_t keycode, keyrecord_t* record) {
184 switch (keycode) { 159 switch (keycode) {
185 case TT(_MOUSE): { 160 case TT(_MOUSE):
186 if (record->event.pressed) { 161 {
187 mouse_keycode_tracker++; 162 if (record->event.pressed) {
188 } else { 163 mouse_keycode_tracker++;
164 } else {
189# if TAPPING_TOGGLE != 0 165# if TAPPING_TOGGLE != 0
190 if (record->tap.count == TAPPING_TOGGLE) { 166 if (record->tap.count == TAPPING_TOGGLE) {
191 tap_toggling ^= 1; 167 tap_toggling ^= 1;
192# if TAPPING_TOGGLE == 1 168# if TAPPING_TOGGLE == 1
193 if (!tap_toggling) mouse_keycode_tracker -= record->tap.count + 1; 169 if (!tap_toggling) mouse_keycode_tracker -= record->tap.count + 1;
194# else 170# else
195 if (!tap_toggling) mouse_keycode_tracker -= record->tap.count; 171 if (!tap_toggling) mouse_keycode_tracker -= record->tap.count;
196# endif 172# endif
197 } else { 173 } else {
198 mouse_keycode_tracker--; 174 mouse_keycode_tracker--;
199 } 175 }
200# endif 176# endif
177 }
178 mouse_timer = timer_read();
179 break;
201 } 180 }
202 mouse_timer = timer_read();
203 break;
204 }
205 case MO(_MOUSE): 181 case MO(_MOUSE):
206 case DPI_CONFIG: 182 case DPI_CONFIG:
207 case KC_MS_UP ... KC_MS_WH_RIGHT: 183 case KC_MS_UP ... KC_MS_WH_RIGHT:
@@ -213,7 +189,7 @@ bool process_record_keymap(uint16_t keycode, keyrecord_t* record) {
213 layer_off(_MOUSE); 189 layer_off(_MOUSE);
214 } 190 }
215 mouse_keycode_tracker = 0; 191 mouse_keycode_tracker = 0;
216 mouse_debounce_timer = timer_read(); 192 mouse_debounce_timer = timer_read();
217 break; 193 break;
218 } 194 }
219 return true; 195 return true;
@@ -238,6 +214,4 @@ void matrix_init_keymap(void) {
238#endif 214#endif
239} 215}
240 216
241void keyboard_post_init_keymap(void) { 217void keyboard_post_init_keymap(void) { matrix_init_keymap(); }
242 matrix_init_keymap();
243}
diff --git a/keyboards/handwired/tractyl_manuform/5x6_right/5x6_right.c b/keyboards/handwired/tractyl_manuform/5x6_right/5x6_right.c
index 1766312e1..af9cbda49 100644
--- a/keyboards/handwired/tractyl_manuform/5x6_right/5x6_right.c
+++ b/keyboards/handwired/tractyl_manuform/5x6_right/5x6_right.c
@@ -32,4 +32,8 @@ const keypos_t PROGMEM hand_swap_config[MATRIX_ROWS][MATRIX_COLS] = {
32 {{5, 3}, {4, 3}, {3, 3}, {2, 3}, {1, 3}, {0, 3}}, 32 {{5, 3}, {4, 3}, {3, 3}, {2, 3}, {1, 3}, {0, 3}},
33 {{5, 4}, {4, 4}, {3, 4}, {2, 4}, {1, 4}, {0, 4}}, 33 {{5, 4}, {4, 4}, {3, 4}, {2, 4}, {1, 4}, {0, 4}},
34 {{5, 5}, {4, 5}, {3, 5}, {2, 5}, {1, 5}, {0, 5}}}; 34 {{5, 5}, {4, 5}, {3, 5}, {2, 5}, {1, 5}, {0, 5}}};
35
36# ifdef ENCODER_MAP_ENABLE
37const uint8_t PROGMEM encoder_hand_swap_config[NUM_ENCODERS] = {1, 0};
38# endif
35#endif 39#endif
diff --git a/keyboards/handwired/tractyl_manuform/5x6_right/config.h b/keyboards/handwired/tractyl_manuform/5x6_right/config.h
index 9dc46f2e6..915582c07 100644
--- a/keyboards/handwired/tractyl_manuform/5x6_right/config.h
+++ b/keyboards/handwired/tractyl_manuform/5x6_right/config.h
@@ -30,52 +30,56 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
30#define MATRIX_COLS 6 30#define MATRIX_COLS 6
31 31
32// wiring of each half 32// wiring of each half
33#define MATRIX_COL_PINS { C0, C1, C2, C3, C4, C5 } 33#define MATRIX_COL_PINS \
34#define MATRIX_ROW_PINS { F7, F6, F5, F4, F3, F2 } 34 { C0, C1, C2, C3, C4, C5 }
35#define MATRIX_ROW_PINS \
36 { F7, F6, F5, F4, F3, F2 }
35 37
36#define DIODE_DIRECTION COL2ROW 38#define DIODE_DIRECTION COL2ROW
37 39
38// WS2812 RGB LED strip input and number of LEDs 40// WS2812 RGB LED strip input and number of LEDs
39#define RGB_DI_PIN E7 41#define RGB_DI_PIN E7
40#define RGBLED_NUM 58 42#define RGBLED_NUM 20
41#define RGBLIGHT_SPLIT 43#define RGBLIGHT_SPLIT
42#define RGBLED_SPLIT { 30, 28 } 44#define RGBLED_SPLIT \
45 { 10, 10 }
43#define RGBLIGHT_SLEEP 46#define RGBLIGHT_SLEEP
44// #define RGBW 47// #define RGBW
45#define RGBLIGHT_LIMIT_VAL 50 48#define RGBLIGHT_LIMIT_VAL 100
46/* define if matrix has ghost */ 49/* define if matrix has ghost */
47//#define MATRIX_HAS_GHOST 50//#define MATRIX_HAS_GHOST
48 51
49/* number of backlight levels */ 52/* number of backlight levels */
50// #define BACKLIGHT_LEVELS 3 53// #define BACKLIGHT_LEVELS 3
51 54
52#define DEBUG_LED_PIN D6 55#define DEBUG_LED_PIN D6
53 56
54#define ROTATIONAL_TRANSFORM_ANGLE -25 57#define ROTATIONAL_TRANSFORM_ANGLE -25
55 58
56/* Bootmagic Lite key configuration */ 59/* Bootmagic Lite key configuration */
57#define BOOTMAGIC_LITE_ROW 0 60#define BOOTMAGIC_LITE_ROW 0
58#define BOOTMAGIC_LITE_COLUMN 0 61#define BOOTMAGIC_LITE_COLUMN 0
59#define BOOTMAGIC_LITE_ROW_RIGHT 6 62#define BOOTMAGIC_LITE_ROW_RIGHT 6
60#define BOOTMAGIC_LITE_COLUMN_RIGHT 5 63#define BOOTMAGIC_LITE_COLUMN_RIGHT 5
61 64
62#define AUDIO_PIN C6 65#define AUDIO_PIN C6
63#define AUDIO_PIN_ALT B7 66#define AUDIO_PIN_ALT B7
64 67
65#define DYNAMIC_KEYMAP_EEPROM_MAX_ADDR 4095 68#define DYNAMIC_KEYMAP_LAYER_COUNT 16
66#define DYNAMIC_KEYMAP_LAYER_COUNT 16
67#define LAYER_STATE_16BIT 69#define LAYER_STATE_16BIT
68 70
69/* serial.c configuration for split keyboard */ 71/* serial.c configuration for split keyboard */
70#define SOFT_SERIAL_PIN D2 72#define SOFT_SERIAL_PIN D2
71#define EE_HANDS 73#define EE_HANDS
72 74
73#define ENCODERS_PAD_A { D5 } 75#define ENCODERS_PAD_A \
74#define ENCODERS_PAD_B { D6 } 76 { D5 }
75#define ENCODER_RESOLUTION 1 77#define ENCODERS_PAD_B \
78 { D6 }
79#define ENCODER_RESOLUTION 4
76 80
77/* Set 0 if debouncing isn't needed */ 81/* Set 0 if debouncing isn't needed */
78#define DEBOUNCE 5 82#define DEBOUNCE 5
79 83
80/* disable action features */ 84/* disable action features */
81//#define NO_ACTION_LAYER 85//#define NO_ACTION_LAYER
diff --git a/keyboards/handwired/tractyl_manuform/5x6_right/keymaps/drashna/keymap.c b/keyboards/handwired/tractyl_manuform/5x6_right/keymaps/drashna/keymap.c
index 6b6d1ab83..a57da64d5 100644
--- a/keyboards/handwired/tractyl_manuform/5x6_right/keymaps/drashna/keymap.c
+++ b/keyboards/handwired/tractyl_manuform/5x6_right/keymaps/drashna/keymap.c
@@ -28,70 +28,44 @@
28 SH_TT, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, SH_TT, \ 28 SH_TT, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, SH_TT, \
29 LALT_T(KC_TAB), K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, RALT_T(K1B), \ 29 LALT_T(KC_TAB), K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, RALT_T(K1B), \
30 OS_LSFT, CTL_T(K21), K22, K23, K24, K25, K26, K27, K28, K29, RCTL_T(K2A), OS_RSFT, \ 30 OS_LSFT, CTL_T(K21), K22, K23, K24, K25, K26, K27, K28, K29, RCTL_T(K2A), OS_RSFT, \
31 OS_LGUI, OS_LALT, OS_RGUI, OS_RALT, \ 31 OS_LALT, OS_LGUI, OS_RGUI, OS_RALT, \
32 KC_PSCR, KC_GRV, MEH_T(KC_BTN3), \ 32 KC_MUTE, KC_GRV, KC_BTN3, \
33 KC_SPC, OS_LGUI, KC_ENT, \ 33 KC_SPC, OS_LGUI, KC_ENT, \
34 BK_LWER, TT(_MOUSE), TT(_MOUSE), DL_RAIS \ 34 BK_LWER, TT(_MOUSE), TT(_MOUSE), DL_RAIS \
35 ) 35 )
36#define LAYOUT_5x6_right_base_wrapper(...) LAYOUT_5x6_right_base(__VA_ARGS__) 36#define LAYOUT_base_wrapper(...) LAYOUT_5x6_right_base(__VA_ARGS__)
37
38 37
39const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { 38const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
40 [_QWERTY] = LAYOUT_5x6_right_base_wrapper( 39 [_DEFAULT_LAYER_1] = LAYOUT_base_wrapper(
41 _________________QWERTY_L1_________________, _________________QWERTY_R1_________________, 40 _________________QWERTY_L1_________________, _________________QWERTY_R1_________________,
42 _________________QWERTY_L2_________________, _________________QWERTY_R2_________________, 41 _________________QWERTY_L2_________________, _________________QWERTY_R2_________________,
43 _________________QWERTY_L3_________________, _________________QWERTY_R3_________________ 42 _________________QWERTY_L3_________________, _________________QWERTY_R3_________________
44 ), 43 ),
45 44
46 [_COLEMAK] = LAYOUT_5x6_right_base_wrapper( 45 [_DEFAULT_LAYER_2] = LAYOUT_base_wrapper(
46 ______________COLEMAK_MOD_DH_L1____________, ______________COLEMAK_MOD_DH_R1____________,
47 ______________COLEMAK_MOD_DH_L2____________, ______________COLEMAK_MOD_DH_R2____________,
48 ______________COLEMAK_MOD_DH_L3____________, ______________COLEMAK_MOD_DH_R3____________
49 ),
50 [_DEFAULT_LAYER_3] = LAYOUT_base_wrapper(
47 _________________COLEMAK_L1________________, _________________COLEMAK_R1________________, 51 _________________COLEMAK_L1________________, _________________COLEMAK_R1________________,
48 _________________COLEMAK_L2________________, _________________COLEMAK_R2________________, 52 _________________COLEMAK_L2________________, _________________COLEMAK_R2________________,
49 _________________COLEMAK_L3________________, _________________COLEMAK_R3________________ 53 _________________COLEMAK_L3________________, _________________COLEMAK_R3________________
50 ), 54 ),
51 55
52 [_DVORAK] = LAYOUT_5x6_right_base_wrapper( 56 [_DEFAULT_LAYER_4] = LAYOUT_base_wrapper(
53 _________________DVORAK_L1_________________, _________________DVORAK_R1_________________, 57 _________________DVORAK_L1_________________, _________________DVORAK_R1_________________,
54 _________________DVORAK_L2_________________, _________________DVORAK_R2_________________, 58 _________________DVORAK_L2_________________, _________________DVORAK_R2_________________,
55 _________________DVORAK_L3_________________, _________________DVORAK_R3_________________ 59 _________________DVORAK_L3_________________, _________________DVORAK_R3_________________
56 ), 60 ),
57 61
58 [_WORKMAN] = LAYOUT_5x6_right_base_wrapper(
59 _________________WORKMAN_L1________________, _________________WORKMAN_R1________________,
60 _________________WORKMAN_L2________________, _________________WORKMAN_R2________________,
61 _________________WORKMAN_L3________________, _________________WORKMAN_R3________________
62 ),
63
64 [_NORMAN] = LAYOUT_5x6_right_base_wrapper(
65 _________________NORMAN_L1_________________, _________________NORMAN_L1_________________,
66 _________________NORMAN_L2_________________, _________________NORMAN_R2_________________,
67 _________________NORMAN_L3_________________, _________________NORMAN_R3_________________
68 ),
69
70 [_MALTRON] = LAYOUT_5x6_right_base_wrapper(
71 _________________MALTRON_L1________________, _________________MALTRON_R1________________,
72 _________________MALTRON_L2________________, _________________MALTRON_R2________________,
73 _________________MALTRON_L3________________, _________________MALTRON_R3________________
74 ),
75
76 [_EUCALYN] = LAYOUT_5x6_right_base_wrapper(
77 _________________EUCALYN_L1________________, _________________EUCALYN_R1________________,
78 _________________EUCALYN_L2________________, _________________EUCALYN_R2________________,
79 _________________EUCALYN_L3________________, _________________EUCALYN_R3________________
80 ),
81
82 [_CARPLAX] = LAYOUT_5x6_right_base_wrapper(
83 _____________CARPLAX_QFMLWY_L1_____________, _____________CARPLAX_QFMLWY_R1_____________,
84 _____________CARPLAX_QFMLWY_L2_____________, _____________CARPLAX_QFMLWY_R2_____________,
85 _____________CARPLAX_QFMLWY_L3_____________, _____________CARPLAX_QFMLWY_R3_____________
86 ),
87
88 [_MOUSE] = LAYOUT_5x6_right( 62 [_MOUSE] = LAYOUT_5x6_right(
89 _______, _______, _______, _______, _______, _______, DPI_CONFIG, _______, _______, _______, _______, _______, 63 _______, _______, _______, _______, _______, _______, DPI_CONFIG, _______, _______, _______, _______, _______,
90 _______, _______, _______, _______, _______, _______, KC_WH_U, _______, _______, _______, _______, _______, 64 _______, _______, _______, _______, _______, _______, KC_WH_U, _______, _______, _______, _______, _______,
91 _______, _______, _______, _______, _______, _______, KC_WH_D, KC_BTN1, KC_BTN3, KC_BTN2, KC_BTN6, _______, 65 _______, _______, _______, _______, _______, _______, KC_WH_D, KC_BTN1, KC_BTN3, KC_BTN2, KC_BTN6, _______,
92 _______, _______, _______, _______, _______, _______, KC_BTN7, KC_BTN4, KC_BTN5, KC_BTN8, _______, _______, 66 _______, _______, _______, _______, _______, _______, KC_BTN7, KC_BTN4, KC_BTN5, KC_BTN8, _______, _______,
93 _______, _______, _______, _______, 67 _______, _______, _______, _______,
94 _______, _______, _______, 68 _______, _______, KC_BTN3,
95 _______, _______, _______, 69 _______, _______, _______,
96 _______, _______, _______, _______ 70 _______, _______, _______, _______
97 ), 71 ),
@@ -146,6 +120,33 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
146 _______, _______, KC_NUKE, _______ 120 _______, _______, KC_NUKE, _______
147 ), 121 ),
148}; 122};
123
124#define BASE_ENCODERS { { KC_VOLD, KC_VOLU }, { KC_WH_D, KC_WH_U } }
125
126#ifdef ENCODER_MAP_ENABLE
127const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][2] = {
128 [_DEFAULT_LAYER_1] = BASE_ENCODERS,
129 [_DEFAULT_LAYER_2] = BASE_ENCODERS,
130 [_DEFAULT_LAYER_3] = BASE_ENCODERS,
131 [_DEFAULT_LAYER_4] = BASE_ENCODERS,
132 [_GAMEPAD] = { { _______, _______ }, { _______, _______ } },
133 [_DIABLO] = { { _______, _______ }, { _______, _______ } },
134 [_MOUSE] = { { _______, _______ }, { KC_WH_D, KC_WH_U } },
135 [_MEDIA] = { { _______, _______ }, { _______, _______ } },
136 [_RAISE] = { { _______, _______ }, { KC_PGDN, KC_PGUP } },
137 [_LOWER] = { { RGB_MOD, RGB_RMOD}, { RGB_HUD, RGB_HUI } },
138 [_ADJUST] = { { CK_DOWN, CK_UP }, { _______, _______ } },
139};
140#else
141bool encoder_update_user(uint8_t index, bool clockwise) {
142 if (index == 0) {
143 tap_code_delay(clockwise ? KC_VOLU : KC_VOLD, 5);
144 } else if (index == 1) {
145 tap_code_delay(clockwise ? KC_WH_U : KC_WH_D, 5);
146 }
147 return false;
148}
149#endif
149// clang-format on 150// clang-format on
150 151
151#ifdef POINTING_DEVICE_ENABLE 152#ifdef POINTING_DEVICE_ENABLE
@@ -189,26 +190,27 @@ void matrix_scan_keymap(void) {
189 190
190bool process_record_keymap(uint16_t keycode, keyrecord_t* record) { 191bool process_record_keymap(uint16_t keycode, keyrecord_t* record) {
191 switch (keycode) { 192 switch (keycode) {
192 case TT(_MOUSE): { 193 case TT(_MOUSE):
193 if (record->event.pressed) { 194 {
194 mouse_keycode_tracker++; 195 if (record->event.pressed) {
195 } else { 196 mouse_keycode_tracker++;
197 } else {
196# if TAPPING_TOGGLE != 0 198# if TAPPING_TOGGLE != 0
197 if (record->tap.count == TAPPING_TOGGLE) { 199 if (record->tap.count == TAPPING_TOGGLE) {
198 tap_toggling ^= 1; 200 tap_toggling ^= 1;
199# if TAPPING_TOGGLE == 1 201# if TAPPING_TOGGLE == 1
200 if (!tap_toggling) mouse_keycode_tracker -= record->tap.count + 1; 202 if (!tap_toggling) mouse_keycode_tracker -= record->tap.count + 1;
201# else 203# else
202 if (!tap_toggling) mouse_keycode_tracker -= record->tap.count; 204 if (!tap_toggling) mouse_keycode_tracker -= record->tap.count;
203# endif 205# endif
204 } else { 206 } else {
205 mouse_keycode_tracker--; 207 mouse_keycode_tracker--;
206 } 208 }
207# endif 209# endif
210 }
211 mouse_timer = timer_read();
212 break;
208 } 213 }
209 mouse_timer = timer_read();
210 break;
211 }
212 case MO(_MOUSE): 214 case MO(_MOUSE):
213 case DPI_CONFIG: 215 case DPI_CONFIG:
214 case KC_MS_UP ... KC_MS_WH_RIGHT: 216 case KC_MS_UP ... KC_MS_WH_RIGHT:
@@ -216,11 +218,12 @@ bool process_record_keymap(uint16_t keycode, keyrecord_t* record) {
216 mouse_timer = timer_read(); 218 mouse_timer = timer_read();
217 break; 219 break;
218 default: 220 default:
221 if (IS_NOEVENT(record->event)) break;
219 if (layer_state_is(_MOUSE) && !mouse_keycode_tracker) { 222 if (layer_state_is(_MOUSE) && !mouse_keycode_tracker) {
220 layer_off(_MOUSE); 223 layer_off(_MOUSE);
221 } 224 }
222 mouse_keycode_tracker = 0; 225 mouse_keycode_tracker = 0;
223 mouse_debounce_timer = timer_read(); 226 mouse_debounce_timer = timer_read();
224 break; 227 break;
225 } 228 }
226 return true; 229 return true;
@@ -228,7 +231,7 @@ bool process_record_keymap(uint16_t keycode, keyrecord_t* record) {
228 231
229layer_state_t layer_state_set_keymap(layer_state_t state) { 232layer_state_t layer_state_set_keymap(layer_state_t state) {
230 if (layer_state_cmp(state, _GAMEPAD) || layer_state_cmp(state, _DIABLO)) { 233 if (layer_state_cmp(state, _GAMEPAD) || layer_state_cmp(state, _DIABLO)) {
231 state |= (1UL << _MOUSE); 234 state |= ((layer_state_t)1 << _MOUSE);
232 } 235 }
233 return state; 236 return state;
234} 237}
@@ -245,6 +248,4 @@ void matrix_init_keymap(void) {
245#endif 248#endif
246} 249}
247 250
248void keyboard_post_init_keymap(void) { 251void keyboard_post_init_keymap(void) { matrix_init_keymap(); }
249 matrix_init_keymap();
250}
diff --git a/keyboards/handwired/tractyl_manuform/5x6_right/keymaps/drashna/rgblight_breathe_table.h b/keyboards/handwired/tractyl_manuform/5x6_right/keymaps/drashna/rgblight_breathe_table.h
new file mode 100644
index 000000000..fb921079b
--- /dev/null
+++ b/keyboards/handwired/tractyl_manuform/5x6_right/keymaps/drashna/rgblight_breathe_table.h
@@ -0,0 +1,117 @@
1#pragma once
2
3#define RGBLIGHT_EFFECT_BREATHE_TABLE
4
5// clang-format off
6
7// Breathing center: 1.85
8// Breathing max: 100
9
10const uint8_t PROGMEM rgblight_effect_breathe_table[] = {
11#if RGBLIGHT_BREATHE_TABLE_SIZE == 256
12 0x0D, 0x0E, 0x0E, 0x0F, 0x0F, 0x10, 0x10, 0x11,
13 0x11, 0x12, 0x13, 0x13, 0x14, 0x14, 0x15, 0x16,
14 0x16, 0x17, 0x18, 0x18, 0x19, 0x19, 0x1A, 0x1B,
15 0x1B, 0x1C, 0x1D, 0x1E, 0x1E, 0x1F, 0x20, 0x20,
16 0x21, 0x22, 0x22, 0x23, 0x24, 0x25, 0x25, 0x26,
17 0x27, 0x28, 0x28, 0x29, 0x2A, 0x2B, 0x2B, 0x2C,
18 0x2D, 0x2E, 0x2E, 0x2F, 0x30, 0x31, 0x31, 0x32,
19 0x33, 0x34, 0x34, 0x35, 0x36, 0x37, 0x38, 0x38,
20 0x39, 0x3A, 0x3B, 0x3B, 0x3C, 0x3D, 0x3D, 0x3E,
21 0x3F, 0x40, 0x40, 0x41, 0x42, 0x42, 0x43, 0x44,
22 0x44, 0x45, 0x46, 0x46, 0x47, 0x48, 0x48, 0x49,
23 0x4A, 0x4A, 0x4B, 0x4B, 0x4C, 0x4C, 0x4D, 0x4D,
24 0x4E, 0x4E, 0x4F, 0x4F, 0x50, 0x50, 0x51, 0x51,
25 0x51, 0x52, 0x52, 0x53, 0x53, 0x53, 0x54, 0x54,
26 0x54, 0x54, 0x55, 0x55, 0x55, 0x55, 0x55, 0x56,
27 0x56, 0x56, 0x56, 0x56, 0x56, 0x56, 0x56, 0x56,
28 0x56, 0x56, 0x56, 0x56, 0x56, 0x56, 0x56, 0x56,
29 0x56, 0x55, 0x55, 0x55, 0x55, 0x55, 0x54, 0x54,
30 0x54, 0x54, 0x53, 0x53, 0x53, 0x52, 0x52, 0x51,
31 0x51, 0x51, 0x50, 0x50, 0x4F, 0x4F, 0x4E, 0x4E,
32 0x4D, 0x4D, 0x4C, 0x4C, 0x4B, 0x4B, 0x4A, 0x4A,
33 0x49, 0x48, 0x48, 0x47, 0x46, 0x46, 0x45, 0x44,
34 0x44, 0x43, 0x42, 0x42, 0x41, 0x40, 0x40, 0x3F,
35 0x3E, 0x3D, 0x3D, 0x3C, 0x3B, 0x3B, 0x3A, 0x39,
36 0x38, 0x38, 0x37, 0x36, 0x35, 0x34, 0x34, 0x33,
37 0x32, 0x31, 0x31, 0x30, 0x2F, 0x2E, 0x2E, 0x2D,
38 0x2C, 0x2B, 0x2B, 0x2A, 0x29, 0x28, 0x28, 0x27,
39 0x26, 0x25, 0x25, 0x24, 0x23, 0x22, 0x22, 0x21,
40 0x20, 0x20, 0x1F, 0x1E, 0x1E, 0x1D, 0x1C, 0x1B,
41 0x1B, 0x1A, 0x19, 0x19, 0x18, 0x18, 0x17, 0x16,
42 0x16, 0x15, 0x14, 0x14, 0x13, 0x13, 0x12, 0x11,
43 0x11, 0x10, 0x10, 0x0F, 0x0F, 0x0E, 0x0E, 0x0D
44#endif
45
46#if RGBLIGHT_BREATHE_TABLE_SIZE == 128
47 0x0D, 0x0E, 0x0F, 0x10,
48 0x11, 0x13, 0x14, 0x15,
49 0x16, 0x18, 0x19, 0x1A,
50 0x1B, 0x1D, 0x1E, 0x20,
51 0x21, 0x22, 0x24, 0x25,
52 0x27, 0x28, 0x2A, 0x2B,
53 0x2D, 0x2E, 0x30, 0x31,
54 0x33, 0x34, 0x36, 0x38,
55 0x39, 0x3B, 0x3C, 0x3D,
56 0x3F, 0x40, 0x42, 0x43,
57 0x44, 0x46, 0x47, 0x48,
58 0x4A, 0x4B, 0x4C, 0x4D,
59 0x4E, 0x4F, 0x50, 0x51,
60 0x51, 0x52, 0x53, 0x54,
61 0x54, 0x55, 0x55, 0x55,
62 0x56, 0x56, 0x56, 0x56,
63 0x56, 0x56, 0x56, 0x56,
64 0x56, 0x55, 0x55, 0x54,
65 0x54, 0x53, 0x53, 0x52,
66 0x51, 0x50, 0x4F, 0x4E,
67 0x4D, 0x4C, 0x4B, 0x4A,
68 0x49, 0x48, 0x46, 0x45,
69 0x44, 0x42, 0x41, 0x40,
70 0x3E, 0x3D, 0x3B, 0x3A,
71 0x38, 0x37, 0x35, 0x34,
72 0x32, 0x31, 0x2F, 0x2E,
73 0x2C, 0x2B, 0x29, 0x28,
74 0x26, 0x25, 0x23, 0x22,
75 0x20, 0x1F, 0x1E, 0x1C,
76 0x1B, 0x19, 0x18, 0x17,
77 0x16, 0x14, 0x13, 0x12,
78 0x11, 0x10, 0x0F, 0x0E
79#endif
80
81#if RGBLIGHT_BREATHE_TABLE_SIZE == 64
82 0x0D, 0x0F,
83 0x11, 0x14,
84 0x16, 0x19,
85 0x1B, 0x1E,
86 0x21, 0x24,
87 0x27, 0x2A,
88 0x2D, 0x30,
89 0x33, 0x36,
90 0x39, 0x3C,
91 0x3F, 0x42,
92 0x44, 0x47,
93 0x4A, 0x4C,
94 0x4E, 0x50,
95 0x51, 0x53,
96 0x54, 0x55,
97 0x56, 0x56,
98 0x56, 0x56,
99 0x56, 0x55,
100 0x54, 0x53,
101 0x51, 0x4F,
102 0x4D, 0x4B,
103 0x49, 0x46,
104 0x44, 0x41,
105 0x3E, 0x3B,
106 0x38, 0x35,
107 0x32, 0x2F,
108 0x2C, 0x29,
109 0x26, 0x23,
110 0x20, 0x1E,
111 0x1B, 0x18,
112 0x16, 0x13,
113 0x11, 0x0F
114#endif
115};
116
117static const int table_scale = 256 / sizeof(rgblight_effect_breathe_table);
diff --git a/keyboards/handwired/tractyl_manuform/5x6_right/keymaps/drashna/rules.mk b/keyboards/handwired/tractyl_manuform/5x6_right/keymaps/drashna/rules.mk
index 7e0eee8bd..b95b166d8 100644
--- a/keyboards/handwired/tractyl_manuform/5x6_right/keymaps/drashna/rules.mk
+++ b/keyboards/handwired/tractyl_manuform/5x6_right/keymaps/drashna/rules.mk
@@ -8,4 +8,5 @@ UNICODE_ENABLE = yes
8OLED_DRIVER_ENABLE = yes 8OLED_DRIVER_ENABLE = yes
9WPM_ENABLE = yes 9WPM_ENABLE = yes
10ENCODER_ENABLE = yes 10ENCODER_ENABLE = yes
11ENCODER_MAP_ENABLE = yes
11# DEBOUNCE_TYPE = sym_eager_pk 12# DEBOUNCE_TYPE = sym_eager_pk
diff --git a/keyboards/keebio/iris/keymaps/drashna/keymap.c b/keyboards/keebio/iris/keymaps/drashna/keymap.c
index fe5e67b52..45b05e350 100644
--- a/keyboards/keebio/iris/keymaps/drashna/keymap.c
+++ b/keyboards/keebio/iris/keymaps/drashna/keymap.c
@@ -38,58 +38,32 @@
38 OS_LSFT, CTL_T(K21), K22, K23, K24, K25, OS_LALT, OS_RGUI, K26, K27, K28, K29, RCTL_T(K2A), OS_RSFT, \ 38 OS_LSFT, CTL_T(K21), K22, K23, K24, K25, OS_LALT, OS_RGUI, K26, K27, K28, K29, RCTL_T(K2A), OS_RSFT, \
39 KC_GRV, KC_SPC, LT(_LOWER,KC_BSPC), LT(_RAISE,KC_DEL), KC_ENT, RAISE \ 39 KC_GRV, KC_SPC, LT(_LOWER,KC_BSPC), LT(_RAISE,KC_DEL), KC_ENT, RAISE \
40 ) 40 )
41#define LAYOUT_iris_base_wrapper(...) LAYOUT_iris_base(__VA_ARGS__) 41#define LAYOUT_base_wrapper(...) LAYOUT_iris_base(__VA_ARGS__)
42 42
43 43
44const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { 44const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
45 45 [_DEFAULT_LAYER_1] = LAYOUT_base_wrapper(
46 [_QWERTY] = LAYOUT_iris_base_wrapper( 46 _________________QWERTY_L1_________________, _________________QWERTY_R1_________________,
47 _________________QWERTY_L1_________________, _________________QWERTY_R1_________________, 47 _________________QWERTY_L2_________________, _________________QWERTY_R2_________________,
48 _________________QWERTY_L2_________________, _________________QWERTY_R2_________________, 48 _________________QWERTY_L3_________________, _________________QWERTY_R3_________________
49 _________________QWERTY_L3_________________, _________________QWERTY_R3_________________ 49 ),
50 ), 50
51 51 [_DEFAULT_LAYER_2] = LAYOUT_base_wrapper(
52 [_COLEMAK] = LAYOUT_iris_base_wrapper( 52 ______________COLEMAK_MOD_DH_L1____________, ______________COLEMAK_MOD_DH_R1____________,
53 _________________COLEMAK_L1________________, _________________COLEMAK_R1________________, 53 ______________COLEMAK_MOD_DH_L2____________, ______________COLEMAK_MOD_DH_R2____________,
54 _________________COLEMAK_L2________________, _________________COLEMAK_R2________________, 54 ______________COLEMAK_MOD_DH_L3____________, ______________COLEMAK_MOD_DH_R3____________
55 _________________COLEMAK_L3________________, _________________COLEMAK_R3________________ 55 ),
56 ), 56 [_DEFAULT_LAYER_3] = LAYOUT_base_wrapper(
57 57 _________________COLEMAK_L1________________, _________________COLEMAK_R1________________,
58 [_DVORAK] = LAYOUT_iris_base_wrapper( 58 _________________COLEMAK_L2________________, _________________COLEMAK_R2________________,
59 _________________DVORAK_L1_________________, _________________DVORAK_R1_________________, 59 _________________COLEMAK_L3________________, _________________COLEMAK_R3________________
60 _________________DVORAK_L2_________________, _________________DVORAK_R2_________________, 60 ),
61 _________________DVORAK_L3_________________, _________________DVORAK_R3_________________ 61
62 ), 62 [_DEFAULT_LAYER_4] = LAYOUT_base_wrapper(
63 63 _________________DVORAK_L1_________________, _________________DVORAK_R1_________________,
64 [_WORKMAN] = LAYOUT_iris_base_wrapper( 64 _________________DVORAK_L2_________________, _________________DVORAK_R2_________________,
65 _________________WORKMAN_L1________________, _________________WORKMAN_R1________________, 65 _________________DVORAK_L3_________________, _________________DVORAK_R3_________________
66 _________________WORKMAN_L2________________, _________________WORKMAN_R2________________, 66 ),
67 _________________WORKMAN_L3________________, _________________WORKMAN_R3________________
68 ),
69
70 [_NORMAN] = LAYOUT_iris_base_wrapper(
71 _________________NORMAN_L1_________________, _________________NORMAN_L1_________________,
72 _________________NORMAN_L2_________________, _________________NORMAN_R2_________________,
73 _________________NORMAN_L3_________________, _________________NORMAN_R3_________________
74 ),
75
76 [_MALTRON] = LAYOUT_iris_base_wrapper(
77 _________________MALTRON_L1________________, _________________MALTRON_R1________________,
78 _________________MALTRON_L2________________, _________________MALTRON_R2________________,
79 _________________MALTRON_L3________________, _________________MALTRON_R3________________
80 ),
81
82 [_EUCALYN] = LAYOUT_iris_base_wrapper(
83 _________________EUCALYN_L1________________, _________________EUCALYN_R1________________,
84 _________________EUCALYN_L2________________, _________________EUCALYN_R2________________,
85 _________________EUCALYN_L3________________, _________________EUCALYN_R3________________
86 ),
87
88 [_CARPLAX] = LAYOUT_iris_base_wrapper(
89 _____________CARPLAX_QFMLWY_L1_____________, _____________CARPLAX_QFMLWY_R1_____________,
90 _____________CARPLAX_QFMLWY_L2_____________, _____________CARPLAX_QFMLWY_R2_____________,
91 _____________CARPLAX_QFMLWY_L3_____________, _____________CARPLAX_QFMLWY_R3_____________
92 ),
93 67
94 [_GAMEPAD] = LAYOUT_wrapper( 68 [_GAMEPAD] = LAYOUT_wrapper(
95 KC_ESC, KC_NO, KC_1, KC_2, KC_3, KC_4, _______, _______, _______, _______, _______, _______, 69 KC_ESC, KC_NO, KC_1, KC_2, KC_3, KC_4, _______, _______, _______, _______, _______, _______,
diff --git a/keyboards/keebio/iris/keymaps/drashna_lp/config.h b/keyboards/keebio/iris/keymaps/drashna_lp/config.h
deleted file mode 100644
index 414acab84..000000000
--- a/keyboards/keebio/iris/keymaps/drashna_lp/config.h
+++ /dev/null
@@ -1,50 +0,0 @@
1/* Copyright 2020 Christopher Courtney, aka Drashna Jael're (@drashna) <drashna@live.com>
2 *
3 * This program is free software: you can redistribute it and/or modify
4 * it under the terms of the GNU General Public License as published by
5 * the Free Software Foundation, either version 2 of the License, or
6 * (at your option) any later version.
7 *
8 * This program is distributed in the hope that it will be useful,
9 * but WITHOUT ANY WARRANTY; without even the implied warranty of
10 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11 * GNU General Public License for more details.
12 *
13 * You should have received a copy of the GNU General Public License
14 * along with this program. If not, see <http://www.gnu.org/licenses/>.
15 */
16
17#pragma once
18
19/* Use I2C or Serial, not both */
20#include "../drashna/config.h"
21
22#ifdef RGBLIGHT_ENABLE
23# undef RGBLED_NUM
24# define RGBLED_NUM 16 // Number of LEDs
25# undef RGBLED_SPLIT
26# define RGBLED_SPLIT \
27 { 8, 8 }
28#endif
29
30#undef PRODUCT
31#ifdef KEYBOARD_keebio_iris_rev2
32# define PRODUCT Drashna Hacked Iris LP Rev .2(Backlit)
33#endif
34
35#undef SHFT_LED1
36#define SHFT_LED1 5
37#undef SHFT_LED2
38#define SHFT_LED2 10
39
40#undef CTRL_LED1
41#define CTRL_LED1 6
42#undef CTRL_LED2
43#define CTRL_LED2 9
44
45#undef ALT_LED1
46#define ALT_LED1 7
47#undef GUI_LED1
48#define GUI_LED1 8
49
50#define DRASHNA_LP
diff --git a/keyboards/keebio/iris/keymaps/drashna_lp/keymap.c b/keyboards/keebio/iris/keymaps/drashna_lp/keymap.c
deleted file mode 100644
index ff7bd09c0..000000000
--- a/keyboards/keebio/iris/keymaps/drashna_lp/keymap.c
+++ /dev/null
@@ -1 +0,0 @@
1// placeholder
diff --git a/keyboards/keebio/iris/keymaps/drashna_lp/rules.mk b/keyboards/keebio/iris/keymaps/drashna_lp/rules.mk
deleted file mode 100644
index d3f6f5550..000000000
--- a/keyboards/keebio/iris/keymaps/drashna_lp/rules.mk
+++ /dev/null
@@ -1,7 +0,0 @@
1USER_NAME := drashna
2SRC += ../drashna/keymap.c
3
4include $(KEYBOARD_PATH_2)/keymaps/drashna/rules.mk
5
6AUDIO_ENABLE = no
7BACKLIGHT_ENABLE = yes
diff --git a/keyboards/keebio/iris/keymaps/drashna_old/config.h b/keyboards/keebio/iris/keymaps/drashna_old/config.h
deleted file mode 100644
index f08b22dca..000000000
--- a/keyboards/keebio/iris/keymaps/drashna_old/config.h
+++ /dev/null
@@ -1,47 +0,0 @@
1/* Copyright 2020 Christopher Courtney, aka Drashna Jael're (@drashna) <drashna@live.com>
2 *
3 * This program is free software: you can redistribute it and/or modify
4 * it under the terms of the GNU General Public License as published by
5 * the Free Software Foundation, either version 2 of the License, or
6 * (at your option) any later version.
7 *
8 * This program is distributed in the hope that it will be useful,
9 * but WITHOUT ANY WARRANTY; without even the implied warranty of
10 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11 * GNU General Public License for more details.
12 *
13 * You should have received a copy of the GNU General Public License
14 * along with this program. If not, see <http://www.gnu.org/licenses/>.
15 */
16
17#pragma once
18
19/* Use I2C or Serial, not both */
20#include "../drashna/config.h"
21
22#ifdef RGBLIGHT_ENABLE
23# undef RGBLED_NUM
24# define RGBLED_NUM 16 // Number of LEDs
25# undef RGBLED_SPLIT
26# define RGBLED_SPLIT { 8, 8 }
27#endif
28
29#undef PRODUCT
30#ifdef KEYBOARD_keebio_iris_rev2
31# define PRODUCT Drashna Hacked Iris Rev.2 (16 LED)
32#endif
33
34#undef SHFT_LED1
35#define SHFT_LED1 5
36#undef SHFT_LED2
37#define SHFT_LED2 10
38
39#undef CTRL_LED1
40#define CTRL_LED1 6
41#undef CTRL_LED2
42#define CTRL_LED2 9
43
44#undef ALT_LED1
45#define ALT_LED1 7
46#undef GUI_LED1
47#define GUI_LED1 8
diff --git a/keyboards/keebio/iris/keymaps/drashna_old/keymap.c b/keyboards/keebio/iris/keymaps/drashna_old/keymap.c
deleted file mode 100644
index ff7bd09c0..000000000
--- a/keyboards/keebio/iris/keymaps/drashna_old/keymap.c
+++ /dev/null
@@ -1 +0,0 @@
1// placeholder
diff --git a/keyboards/keebio/iris/keymaps/drashna_old/rules.mk b/keyboards/keebio/iris/keymaps/drashna_old/rules.mk
deleted file mode 100644
index 73f37c6c5..000000000
--- a/keyboards/keebio/iris/keymaps/drashna_old/rules.mk
+++ /dev/null
@@ -1,4 +0,0 @@
1USER_NAME := drashna
2SRC += ../drashna/keymap.c
3
4include $(KEYBOARD_PATH_2)/keymaps/drashna/rules.mk
diff --git a/keyboards/keebio/viterbi/keymaps/drashna_old/config.h b/keyboards/keebio/viterbi/keymaps/drashna_old/config.h
deleted file mode 100644
index 5697f7f11..000000000
--- a/keyboards/keebio/viterbi/keymaps/drashna_old/config.h
+++ /dev/null
@@ -1,25 +0,0 @@
1/*
2Copyright 2017 Danny Nguyen <danny@hexwire.com>
3
4This program is free software: you can redistribute it and/or modify
5it under the terms of the GNU General Public License as published by
6the Free Software Foundation, either version 2 of the License, or
7(at your option) any later version.
8
9This program is distributed in the hope that it will be useful,
10but WITHOUT ANY WARRANTY; without even the implied warranty of
11MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12GNU General Public License for more details.
13
14You should have received a copy of the GNU General Public License
15along with this program. If not, see <http://www.gnu.org/licenses/>.
16*/
17
18#pragma once
19
20#include "../drashna/config.h"
21
22#ifdef RGBLIGHT_ENABLE
23# undef RGBLED_NUM
24# define RGBLED_NUM 12
25#endif
diff --git a/keyboards/keebio/viterbi/keymaps/drashna_old/keymap.c b/keyboards/keebio/viterbi/keymaps/drashna_old/keymap.c
deleted file mode 100644
index 2d361da9a..000000000
--- a/keyboards/keebio/viterbi/keymaps/drashna_old/keymap.c
+++ /dev/null
@@ -1 +0,0 @@
1//placeholder \ No newline at end of file
diff --git a/keyboards/keebio/viterbi/keymaps/drashna_old/rules.mk b/keyboards/keebio/viterbi/keymaps/drashna_old/rules.mk
deleted file mode 100644
index 73f37c6c5..000000000
--- a/keyboards/keebio/viterbi/keymaps/drashna_old/rules.mk
+++ /dev/null
@@ -1,4 +0,0 @@
1USER_NAME := drashna
2SRC += ../drashna/keymap.c
3
4include $(KEYBOARD_PATH_2)/keymaps/drashna/rules.mk
diff --git a/keyboards/moonlander/keymaps/drashna/keymap.c b/keyboards/moonlander/keymaps/drashna/keymap.c
index 57c69df48..f6af7e53a 100644
--- a/keyboards/moonlander/keymaps/drashna/keymap.c
+++ b/keyboards/moonlander/keymaps/drashna/keymap.c
@@ -39,68 +39,32 @@ enum more_custom_keycodes { KC_SWAP_NUM = NEW_SAFE_RANGE };
39 KC_SPC, BK_LWER, OS_LALT, OS_RGUI, DL_RAIS, KC_ENT \ 39 KC_SPC, BK_LWER, OS_LALT, OS_RGUI, DL_RAIS, KC_ENT \
40 ) 40 )
41 41
42#define LAYOUT_moonlander_base_wrapper(...) LAYOUT_moonlander_base(__VA_ARGS__) 42#define LAYOUT_base_wrapper(...) LAYOUT_moonlander_base(__VA_ARGS__)
43 43
44const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { 44const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
45 45 [_DEFAULT_LAYER_1] = LAYOUT_base_wrapper(
46 [_QWERTY] = LAYOUT_moonlander_base_wrapper(
47 _________________QWERTY_L1_________________, _________________QWERTY_R1_________________, 46 _________________QWERTY_L1_________________, _________________QWERTY_R1_________________,
48 _________________QWERTY_L2_________________, _________________QWERTY_R2_________________, 47 _________________QWERTY_L2_________________, _________________QWERTY_R2_________________,
49 _________________QWERTY_L3_________________, _________________QWERTY_R3_________________ 48 _________________QWERTY_L3_________________, _________________QWERTY_R3_________________
50 ), 49 ),
51 50
52 [_COLEMAK] = LAYOUT_moonlander_base_wrapper( 51 [_DEFAULT_LAYER_2] = LAYOUT_base_wrapper(
52 ______________COLEMAK_MOD_DH_L1____________, ______________COLEMAK_MOD_DH_R1____________,
53 ______________COLEMAK_MOD_DH_L2____________, ______________COLEMAK_MOD_DH_R2____________,
54 ______________COLEMAK_MOD_DH_L3____________, ______________COLEMAK_MOD_DH_R3____________
55 ),
56 [_DEFAULT_LAYER_3] = LAYOUT_base_wrapper(
53 _________________COLEMAK_L1________________, _________________COLEMAK_R1________________, 57 _________________COLEMAK_L1________________, _________________COLEMAK_R1________________,
54 _________________COLEMAK_L2________________, _________________COLEMAK_R2________________, 58 _________________COLEMAK_L2________________, _________________COLEMAK_R2________________,
55 _________________COLEMAK_L3________________, _________________COLEMAK_R3________________ 59 _________________COLEMAK_L3________________, _________________COLEMAK_R3________________
56 ), 60 ),
57 61
58 [_DVORAK] = LAYOUT_moonlander_base_wrapper( 62 [_DEFAULT_LAYER_4] = LAYOUT_base_wrapper(
59 _________________DVORAK_L1_________________, _________________DVORAK_R1_________________, 63 _________________DVORAK_L1_________________, _________________DVORAK_R1_________________,
60 _________________DVORAK_L2_________________, _________________DVORAK_R2_________________, 64 _________________DVORAK_L2_________________, _________________DVORAK_R2_________________,
61 _________________DVORAK_L3_________________, _________________DVORAK_R3_________________ 65 _________________DVORAK_L3_________________, _________________DVORAK_R3_________________
62 ), 66 ),
63 67
64 [_WORKMAN] = LAYOUT_moonlander_base_wrapper(
65 _________________WORKMAN_L1________________, _________________WORKMAN_R1________________,
66 _________________WORKMAN_L2________________, _________________WORKMAN_R2________________,
67 _________________WORKMAN_L3________________, _________________WORKMAN_R3________________
68 ),
69
70 [_NORMAN] = LAYOUT_moonlander_base_wrapper(
71 _________________NORMAN_L1_________________, _________________NORMAN_L1_________________,
72 _________________NORMAN_L2_________________, _________________NORMAN_R2_________________,
73 _________________NORMAN_L3_________________, _________________NORMAN_R3_________________
74 ),
75
76 [_MALTRON] = LAYOUT_moonlander_base_wrapper(
77 _________________MALTRON_L1________________, _________________MALTRON_R1________________,
78 _________________MALTRON_L2________________, _________________MALTRON_R2________________,
79 _________________MALTRON_L3________________, _________________MALTRON_R3________________
80 ),
81
82 [_EUCALYN] = LAYOUT_moonlander_base_wrapper(
83 _________________EUCALYN_L1________________, _________________EUCALYN_R1________________,
84 _________________EUCALYN_L2________________, _________________EUCALYN_R2________________,
85 _________________EUCALYN_L3________________, _________________EUCALYN_R3________________
86 ),
87
88 [_CARPLAX] = LAYOUT_moonlander_base_wrapper(
89 _____________CARPLAX_QFMLWY_L1_____________, _____________CARPLAX_QFMLWY_R1_____________,
90 _____________CARPLAX_QFMLWY_L2_____________, _____________CARPLAX_QFMLWY_R2_____________,
91 _____________CARPLAX_QFMLWY_L3_____________, _____________CARPLAX_QFMLWY_R3_____________
92 ),
93
94#ifdef _MODS
95 [_MODS] = LAYOUT_moonlander_wrapper(
96 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
97 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
98 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
99 KC_LSFT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_RSFT,
100 _______, KC_MEH, KC_HYPR, _______, _______, _______, _______, _______, _______, _______, _______, _______,
101 KC_LALT, _______, _______, _______, _______, KC_RGUI
102 ),
103#endif
104 68
105 [_GAMEPAD] = LAYOUT_moonlander_wrapper( 69 [_GAMEPAD] = LAYOUT_moonlander_wrapper(
106 KC_ESC, KC_NO, KC_1, KC_2, KC_3, KC_4, HYPR(KC_Q), KC_TRNS, KC_F9, KC_F10, KC_F11, KC_F12, KC_NO, KC_NO, 70 KC_ESC, KC_NO, KC_1, KC_2, KC_3, KC_4, HYPR(KC_Q), KC_TRNS, KC_F9, KC_F10, KC_F11, KC_F12, KC_NO, KC_NO,
@@ -214,29 +178,17 @@ void rgb_matrix_indicators_advanced_user(uint8_t led_min, uint8_t led_max) {
214 178
215 if (userspace_config.rgb_layer_change) { 179 if (userspace_config.rgb_layer_change) {
216 switch (get_highest_layer(layer_state|default_layer_state)) { 180 switch (get_highest_layer(layer_state|default_layer_state)) {
217 case _QWERTY: 181 case _DEFAULT_LAYER_1:
218 rgb_matrix_layer_helper(HSV_CYAN, 0, rgb_matrix_config.speed, LED_FLAG_MODIFIER, led_min, led_max); 182 rgb_matrix_layer_helper(DEFAULT_LAYER_1_HSV, 0, rgb_matrix_config.speed, LED_FLAG_MODIFIER, led_min, led_max);
219 break;
220 case _COLEMAK:
221 rgb_matrix_layer_helper(HSV_MAGENTA, 0, rgb_matrix_config.speed, LED_FLAG_MODIFIER, led_min, led_max);
222 break;
223 case _DVORAK:
224 rgb_matrix_layer_helper(HSV_SPRINGGREEN, 0, rgb_matrix_config.speed, LED_FLAG_MODIFIER, led_min, led_max);
225 break;
226 case _WORKMAN:
227 rgb_matrix_layer_helper(HSV_GOLDENROD, 0, rgb_matrix_config.speed, LED_FLAG_MODIFIER, led_min, led_max);
228 break;
229 case _NORMAN:
230 rgb_matrix_layer_helper(HSV_CORAL, 0, rgb_matrix_config.speed, LED_FLAG_MODIFIER, led_min, led_max);
231 break; 183 break;
232 case _MALTRON: 184 case _DEFAULT_LAYER_2:
233 rgb_matrix_layer_helper(HSV_YELLOW, 0, rgb_matrix_config.speed, LED_FLAG_MODIFIER, led_min, led_max); 185 rgb_matrix_layer_helper(DEFAULT_LAYER_2_HSV, 0, rgb_matrix_config.speed, LED_FLAG_MODIFIER, led_min, led_max);
234 break; 186 break;
235 case _EUCALYN: 187 case _DEFAULT_LAYER_3:
236 rgb_matrix_layer_helper(HSV_PINK, 0, rgb_matrix_config.speed, LED_FLAG_MODIFIER, led_min, led_max); 188 rgb_matrix_layer_helper(DEFAULT_LAYER_3_HSV, 0, rgb_matrix_config.speed, LED_FLAG_MODIFIER, led_min, led_max);
237 break; 189 break;
238 case _CARPLAX: 190 case _DEFAULT_LAYER_4:
239 rgb_matrix_layer_helper(HSV_BLUE, 0, rgb_matrix_config.speed, LED_FLAG_MODIFIER, led_min, led_max); 191 rgb_matrix_layer_helper(DEFAULT_LAYER_4_HSV, 0, rgb_matrix_config.speed, LED_FLAG_MODIFIER, led_min, led_max);
240 break; 192 break;
241 case _GAMEPAD: 193 case _GAMEPAD:
242 rgb_matrix_layer_helper(HSV_ORANGE, 1, rgb_matrix_config.speed, LED_FLAG_MODIFIER, led_min, led_max); 194 rgb_matrix_layer_helper(HSV_ORANGE, 1, rgb_matrix_config.speed, LED_FLAG_MODIFIER, led_min, led_max);
diff --git a/keyboards/orthodox/keymaps/drashna/keymap.c b/keyboards/orthodox/keymaps/drashna/keymap.c
index 643a5b6b0..b7d83a5f2 100644
--- a/keyboards/orthodox/keymaps/drashna/keymap.c
+++ b/keyboards/orthodox/keymaps/drashna/keymap.c
@@ -19,59 +19,34 @@
19 LALT_T(KC_TAB), K11, K12, K13, K14, K15, OS_LALT, OS_LGUI, OS_RALT, RAISE, K16, K17, K18, K19, K1A, RALT_T(K1B), \ 19 LALT_T(KC_TAB), K11, K12, K13, K14, K15, OS_LALT, OS_LGUI, OS_RALT, RAISE, K16, K17, K18, K19, K1A, RALT_T(K1B), \
20 KC_MLSF, CTL_T(K21), K22, K23, K24, K25, LOWER, KC_SPACE,KC_BSPC, KC_DEL, KC_ENT, RAISE, K26, K27, K28, K29, RCTL_T(K2A), KC_MRSF \ 20 KC_MLSF, CTL_T(K21), K22, K23, K24, K25, LOWER, KC_SPACE,KC_BSPC, KC_DEL, KC_ENT, RAISE, K26, K27, K28, K29, RCTL_T(K2A), KC_MRSF \
21 ) 21 )
22#define LAYOUT_orthodox_base_wrapper(...) LAYOUT_orthodox_base(__VA_ARGS__) 22#define LAYOUT_base_wrapper(...) LAYOUT_orthodox_base(__VA_ARGS__)
23 23
24 24
25 25
26const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { 26const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
27 [_DEFAULT_LAYER_1] = LAYOUT_base_wrapper(
28 _________________QWERTY_L1_________________, _________________QWERTY_R1_________________,
29 _________________QWERTY_L2_________________, _________________QWERTY_R2_________________,
30 _________________QWERTY_L3_________________, _________________QWERTY_R3_________________
31 ),
32
33 [_DEFAULT_LAYER_2] = LAYOUT_base_wrapper(
34 ______________COLEMAK_MOD_DH_L1____________, ______________COLEMAK_MOD_DH_R1____________,
35 ______________COLEMAK_MOD_DH_L2____________, ______________COLEMAK_MOD_DH_R2____________,
36 ______________COLEMAK_MOD_DH_L3____________, ______________COLEMAK_MOD_DH_R3____________
37 ),
38 [_DEFAULT_LAYER_3] = LAYOUT_base_wrapper(
39 _________________COLEMAK_L1________________, _________________COLEMAK_R1________________,
40 _________________COLEMAK_L2________________, _________________COLEMAK_R2________________,
41 _________________COLEMAK_L3________________, _________________COLEMAK_R3________________
42 ),
43
44 [_DEFAULT_LAYER_4] = LAYOUT_base_wrapper(
45 _________________DVORAK_L1_________________, _________________DVORAK_R1_________________,
46 _________________DVORAK_L2_________________, _________________DVORAK_R2_________________,
47 _________________DVORAK_L3_________________, _________________DVORAK_R3_________________
48 ),
27 49
28 [_QWERTY] = LAYOUT_orthodox_base_wrapper(
29 _________________QWERTY_L1_________________, _________________QWERTY_R1_________________,
30 _________________QWERTY_L2_________________, _________________QWERTY_R2_________________,
31 _________________QWERTY_L3_________________, _________________QWERTY_R3_________________
32 ),
33
34 [_COLEMAK] = LAYOUT_orthodox_base_wrapper(
35 _________________COLEMAK_L1________________, _________________COLEMAK_R1________________,
36 _________________COLEMAK_L2________________, _________________COLEMAK_R2________________,
37 _________________COLEMAK_L3________________, _________________COLEMAK_R3________________
38 ),
39
40 [_DVORAK] = LAYOUT_orthodox_base_wrapper(
41 _________________DVORAK_L1_________________, _________________DVORAK_R1_________________,
42 _________________DVORAK_L2_________________, _________________DVORAK_R2_________________,
43 _________________DVORAK_L3_________________, _________________DVORAK_R3_________________
44 ),
45
46 [_WORKMAN] = LAYOUT_orthodox_base_wrapper(
47 _________________WORKMAN_L1________________, _________________WORKMAN_R1________________,
48 _________________WORKMAN_L2________________, _________________WORKMAN_R2________________,
49 _________________WORKMAN_L3________________, _________________WORKMAN_R3________________
50 ),
51
52 [_NORMAN] = LAYOUT_orthodox_base_wrapper(
53 _________________NORMAN_L1_________________, _________________NORMAN_L1_________________,
54 _________________NORMAN_L2_________________, _________________NORMAN_R2_________________,
55 _________________NORMAN_L3_________________, _________________NORMAN_R3_________________
56 ),
57
58 [_MALTRON] = LAYOUT_orthodox_base_wrapper(
59 _________________MALTRON_L1________________, _________________MALTRON_R1________________,
60 _________________MALTRON_L2________________, _________________MALTRON_R2________________,
61 _________________MALTRON_L3________________, _________________MALTRON_R3________________
62 ),
63
64 [_EUCALYN] = LAYOUT_orthodox_base_wrapper(
65 _________________EUCALYN_L1________________, _________________EUCALYN_R1________________,
66 _________________EUCALYN_L2________________, _________________EUCALYN_R2________________,
67 _________________EUCALYN_L3________________, _________________EUCALYN_R3________________
68 ),
69
70 [_CARPLAX] = LAYOUT_orthodox_base_wrapper(
71 _____________CARPLAX_QFMLWY_L1_____________, _____________CARPLAX_QFMLWY_R1_____________,
72 _____________CARPLAX_QFMLWY_L2_____________, _____________CARPLAX_QFMLWY_R2_____________,
73 _____________CARPLAX_QFMLWY_L3_____________, _____________CARPLAX_QFMLWY_R3_____________
74 ),
75 50
76 [_LOWER] = LAYOUT_wrapper(\ 51 [_LOWER] = LAYOUT_wrapper(\
77 KC_TILD, _________________LOWER_L1__________________, _________________LOWER_R1__________________, KC_BSPC, 52 KC_TILD, _________________LOWER_L1__________________, _________________LOWER_R1__________________, KC_BSPC,
diff --git a/keyboards/ploopyco/mouse/keymaps/drashna/config.h b/keyboards/ploopyco/mouse/keymaps/drashna/config.h
index 5bc704fec..5a220c801 100644
--- a/keyboards/ploopyco/mouse/keymaps/drashna/config.h
+++ b/keyboards/ploopyco/mouse/keymaps/drashna/config.h
@@ -20,5 +20,10 @@
20 20
21#undef RGBLIGHT_LIMIT_VAL 21#undef RGBLIGHT_LIMIT_VAL
22#define RGBLIGHT_LIMIT_VAL 255 22#define RGBLIGHT_LIMIT_VAL 255
23#define RGBLIGHT_ANIMATIONS 23#define RGBLIGHT_EFFECT_BREATHING
24#define RGBLIGHT_EFFECT_RAINBOW_MOOD
25#define RGBLIGHT_EFFECT_RAINBOW_SWIRL
26#define RGBLIGHT_EFFECT_SNAKE
27#define RGBLIGHT_EFFECT_KNIGHT
28#define RGBLIGHT_EFFECT_TWINKLE
24#define RGBLIGHT_SLEEP 29#define RGBLIGHT_SLEEP
diff --git a/keyboards/ploopyco/mouse/keymaps/drashna/keymap.c b/keyboards/ploopyco/mouse/keymaps/drashna/keymap.c
index 68b846f7b..a9b1c46fc 100644
--- a/keyboards/ploopyco/mouse/keymaps/drashna/keymap.c
+++ b/keyboards/ploopyco/mouse/keymaps/drashna/keymap.c
@@ -29,6 +29,10 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
29 29
30void eeconkfig_init_user(void) { 30void eeconkfig_init_user(void) {
31 rgblight_enable(); 31 rgblight_enable();
32#ifdef RGBLIGHT_EFFECT_TWINKLE
32 rgblight_mode(RGBLIGHT_MODE_TWINKLE+5); 33 rgblight_mode(RGBLIGHT_MODE_TWINKLE+5);
34#else
35 rgblight_mode(RGBLIGHT_MODE_BREATHING+5);
36#endif
33 rgblight_sethsv(HSV_MAGENTA); 37 rgblight_sethsv(HSV_MAGENTA);
34} 38}
diff --git a/keyboards/splitkb/kyria/keymaps/drashna/keymap.c b/keyboards/splitkb/kyria/keymaps/drashna/keymap.c
index 14287d0ec..d55110e97 100644
--- a/keyboards/splitkb/kyria/keymaps/drashna/keymap.c
+++ b/keyboards/splitkb/kyria/keymaps/drashna/keymap.c
@@ -38,58 +38,32 @@
38 KC_MUTE, OS_LALT, KC_GRV, KC_SPC, BK_LWER, DL_RAIS, KC_ENT, OS_RGUI, UC(0x03A8), UC(0x2E2E) \ 38 KC_MUTE, OS_LALT, KC_GRV, KC_SPC, BK_LWER, DL_RAIS, KC_ENT, OS_RGUI, UC(0x03A8), UC(0x2E2E) \
39 ) 39 )
40/* Re-pass though to allow templates to be used */ 40/* Re-pass though to allow templates to be used */
41#define LAYOUT_kyria_base_wrapper(...) LAYOUT_kyria_base(__VA_ARGS__) 41#define LAYOUT_base_wrapper(...) LAYOUT_kyria_base(__VA_ARGS__)
42 42
43const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { 43const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
44 44 [_DEFAULT_LAYER_1] = LAYOUT_base_wrapper(
45 [_QWERTY] = LAYOUT_kyria_base_wrapper(
46 _________________QWERTY_L1_________________, _________________QWERTY_R1_________________, 45 _________________QWERTY_L1_________________, _________________QWERTY_R1_________________,
47 _________________QWERTY_L2_________________, _________________QWERTY_R2_________________, 46 _________________QWERTY_L2_________________, _________________QWERTY_R2_________________,
48 _________________QWERTY_L3_________________, _________________QWERTY_R3_________________ 47 _________________QWERTY_L3_________________, _________________QWERTY_R3_________________
49 ), 48 ),
50 49
51 [_COLEMAK] = LAYOUT_kyria_base_wrapper( 50 [_DEFAULT_LAYER_2] = LAYOUT_base_wrapper(
51 ______________COLEMAK_MOD_DH_L1____________, ______________COLEMAK_MOD_DH_R1____________,
52 ______________COLEMAK_MOD_DH_L2____________, ______________COLEMAK_MOD_DH_R2____________,
53 ______________COLEMAK_MOD_DH_L3____________, ______________COLEMAK_MOD_DH_R3____________
54 ),
55 [_DEFAULT_LAYER_3] = LAYOUT_base_wrapper(
52 _________________COLEMAK_L1________________, _________________COLEMAK_R1________________, 56 _________________COLEMAK_L1________________, _________________COLEMAK_R1________________,
53 _________________COLEMAK_L2________________, _________________COLEMAK_R2________________, 57 _________________COLEMAK_L2________________, _________________COLEMAK_R2________________,
54 _________________COLEMAK_L3________________, _________________COLEMAK_R3________________ 58 _________________COLEMAK_L3________________, _________________COLEMAK_R3________________
55 ), 59 ),
56 60
57 [_DVORAK] = LAYOUT_kyria_base_wrapper( 61 [_DEFAULT_LAYER_4] = LAYOUT_base_wrapper(
58 _________________DVORAK_L1_________________, _________________DVORAK_R1_________________, 62 _________________DVORAK_L1_________________, _________________DVORAK_R1_________________,
59 _________________DVORAK_L2_________________, _________________DVORAK_R2_________________, 63 _________________DVORAK_L2_________________, _________________DVORAK_R2_________________,
60 _________________DVORAK_L3_________________, _________________DVORAK_R3_________________ 64 _________________DVORAK_L3_________________, _________________DVORAK_R3_________________
61 ), 65 ),
62 66
63 [_WORKMAN] = LAYOUT_kyria_base_wrapper(
64 _________________WORKMAN_L1________________, _________________WORKMAN_R1________________,
65 _________________WORKMAN_L2________________, _________________WORKMAN_R2________________,
66 _________________WORKMAN_L3________________, _________________WORKMAN_R3________________
67 ),
68
69 [_NORMAN] = LAYOUT_kyria_base_wrapper(
70 _________________NORMAN_L1_________________, _________________NORMAN_L1_________________,
71 _________________NORMAN_L2_________________, _________________NORMAN_R2_________________,
72 _________________NORMAN_L3_________________, _________________NORMAN_R3_________________
73 ),
74
75 [_MALTRON] = LAYOUT_kyria_base_wrapper(
76 _________________MALTRON_L1________________, _________________MALTRON_R1________________,
77 _________________MALTRON_L2________________, _________________MALTRON_R2________________,
78 _________________MALTRON_L3________________, _________________MALTRON_R3________________
79 ),
80
81 [_EUCALYN] = LAYOUT_kyria_base_wrapper(
82 _________________EUCALYN_L1________________, _________________EUCALYN_R1________________,
83 _________________EUCALYN_L2________________, _________________EUCALYN_R2________________,
84 _________________EUCALYN_L3________________, _________________EUCALYN_R3________________
85 ),
86
87 [_CARPLAX] = LAYOUT_kyria_base_wrapper(
88 _____________CARPLAX_QFMLWY_L1_____________, _____________CARPLAX_QFMLWY_R1_____________,
89 _____________CARPLAX_QFMLWY_L2_____________, _____________CARPLAX_QFMLWY_R2_____________,
90 _____________CARPLAX_QFMLWY_L3_____________, _____________CARPLAX_QFMLWY_R3_____________
91 ),
92
93 [_GAMEPAD] = LAYOUT_wrapper( 67 [_GAMEPAD] = LAYOUT_wrapper(
94 KC_ESC, KC_K, KC_Q, KC_W, KC_E, KC_R, _______, _______, _______, _______, _______, _______, 68 KC_ESC, KC_K, KC_Q, KC_W, KC_E, KC_R, _______, _______, _______, _______, _______, _______,
95 KC_TAB, KC_G, KC_A, KC_S, KC_D, KC_F, _______, _______, _______, _______, _______, _______, 69 KC_TAB, KC_G, KC_A, KC_S, KC_D, KC_F, _______, _______, _______, _______, _______, _______,
@@ -128,6 +102,22 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
128// _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ 102// _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
129// ), 103// ),
130}; 104};
105
106#ifdef ENCODER_MAP_ENABLE
107const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][2] = {
108 [_DEFAULT_LAYER_1] = { { KC_DOWN, KC_UP }, { KC_VOLD, KC_VOLU } },
109 [_DEFAULT_LAYER_2] = { { _______, _______ }, { _______, _______ } },
110 [_DEFAULT_LAYER_3] = { { _______, _______ }, { _______, _______ } },
111 [_DEFAULT_LAYER_4] = { { _______, _______ }, { _______, _______ } },
112 [_GAMEPAD] = { { _______, _______ }, { _______, _______ } },
113 [_DIABLO] = { { _______, _______ }, { _______, _______ } },
114 [_MOUSE] = { { _______, _______ }, { KC_WH_D, KC_WH_U } },
115 [_MEDIA] = { { _______, _______ }, { _______, _______ } },
116 [_RAISE] = { { _______, _______ }, { KC_PGDN, KC_PGUP } },
117 [_LOWER] = { { RGB_MOD, RGB_RMOD}, { RGB_HUD, RGB_HUI } },
118 [_ADJUST] = { { CK_DOWN, CK_UP }, { _______, _______ } },
119};
120#endif
131// clang-format on 121// clang-format on
132 122
133#ifdef OLED_DRIVER_ENABLE 123#ifdef OLED_DRIVER_ENABLE
@@ -156,39 +146,20 @@ bool encoder_update_user(uint8_t index, bool clockwise) {
156#endif 146#endif
157 147
158#ifdef RGBLIGHT_LAYERS 148#ifdef RGBLIGHT_LAYERS
159const rgblight_segment_t PROGMEM shift_layers[] = RGBLIGHT_LAYER_SEGMENTS( 149const rgblight_segment_t PROGMEM shift_layers[] = RGBLIGHT_LAYER_SEGMENTS({8, 1, 120, 255, 255}, {18, 1, 120, 255, 255});
160 { 8, 1, 120, 255, 255}, 150const rgblight_segment_t PROGMEM control_layers[] = RGBLIGHT_LAYER_SEGMENTS({6, 1, 0, 255, 255}, {16, 1, 0, 255, 255});
161 { 18, 1, 120, 255, 255} 151const rgblight_segment_t PROGMEM alt_layers[] = RGBLIGHT_LAYER_SEGMENTS({2, 1, 240, 255, 255}, {17, 1, 250, 255, 255});
162); 152const rgblight_segment_t PROGMEM gui_layers[] = RGBLIGHT_LAYER_SEGMENTS({7, 1, 51, 255, 255}, {12, 1, 51, 255, 255});
163const rgblight_segment_t PROGMEM control_layers[] = RGBLIGHT_LAYER_SEGMENTS(
164 { 6, 1, 0, 255, 255},
165 { 16, 1, 0, 255, 255}
166);
167const rgblight_segment_t PROGMEM alt_layers[] = RGBLIGHT_LAYER_SEGMENTS(
168 { 2, 1, 240, 255, 255},
169 { 17, 1, 250, 255, 255}
170);
171const rgblight_segment_t PROGMEM gui_layers[] = RGBLIGHT_LAYER_SEGMENTS(
172 { 7, 1, 51, 255, 255},
173 { 12, 1, 51, 255, 255}
174);
175 153
176const rgblight_segment_t* const PROGMEM my_rgb_layers[] = RGBLIGHT_LAYERS_LIST( 154const rgblight_segment_t* const PROGMEM my_rgb_layers[] = RGBLIGHT_LAYERS_LIST(shift_layers, control_layers, alt_layers, gui_layers);
177 shift_layers,
178 control_layers,
179 alt_layers,
180 gui_layers
181);
182 155
183void keyboard_post_init_keymap(void) { 156void keyboard_post_init_keymap(void) { rgblight_layers = my_rgb_layers; }
184 rgblight_layers = my_rgb_layers;
185}
186 157
187void matrix_scan_keymap(void) { 158void matrix_scan_keymap(void) {
188 uint8_t mods = mod_config(get_mods()|get_oneshot_mods()); 159 uint8_t mods = mod_config(get_mods() | get_oneshot_mods());
189 rgblight_set_layer_state(0, mods & MOD_MASK_SHIFT); 160 rgblight_set_layer_state(0, mods & MOD_MASK_SHIFT);
190 rgblight_set_layer_state(1, mods & MOD_MASK_CTRL); 161 rgblight_set_layer_state(1, mods & MOD_MASK_CTRL);
191 rgblight_set_layer_state(2, mods & MOD_MASK_ALT); 162 rgblight_set_layer_state(2, mods & MOD_MASK_ALT);
192 rgblight_set_layer_state(3, mods & MOD_MASK_GUI); 163 rgblight_set_layer_state(3, mods & MOD_MASK_GUI);
193} 164}
194#endif 165#endif
diff --git a/keyboards/splitkb/kyria/keymaps/drashna/rules.mk b/keyboards/splitkb/kyria/keymaps/drashna/rules.mk
index 4036f9145..91d10f5dd 100644
--- a/keyboards/splitkb/kyria/keymaps/drashna/rules.mk
+++ b/keyboards/splitkb/kyria/keymaps/drashna/rules.mk
@@ -3,13 +3,15 @@ ENCODER_ENABLE = yes # ENables the use of one or more encoders
3RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow 3RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow
4RGBLIGHT_STARTUP_ANIMATION = no 4RGBLIGHT_STARTUP_ANIMATION = no
5 5
6BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration 6BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration
7MOUSEKEY_ENABLE = no # Mouse keys 7MOUSEKEY_ENABLE = no # Mouse keys
8EXTRAKEY_ENABLE = yes # Audio control and System control 8EXTRAKEY_ENABLE = yes # Audio control and System control
9CONSOLE_ENABLE = no # Console for debug 9CONSOLE_ENABLE = no # Console for debug
10COMMAND_ENABLE = no # Commands for debug and configuration 10COMMAND_ENABLE = no # Commands for debug and configuration
11NKRO_ENABLE = yes # USB Nkey Rollover 11NKRO_ENABLE = yes # USB Nkey Rollover
12UNICODE_ENABLE = yes # Unicode 12UNICODE_ENABLE = no # Unicode
13BOOTLOADER = atmel-dfu 13KEY_LOCK_ENABLE = no
14
14 15
16BOOTLOADER = atmel-dfu
15# TAP_DANCE_ENABLE = yes 17# TAP_DANCE_ENABLE = yes
diff --git a/keyboards/splitkb/zima/keymaps/drashna/keymap.c b/keyboards/splitkb/zima/keymaps/drashna/keymap.c
index d9e1f44e2..6e198e3dd 100644
--- a/keyboards/splitkb/zima/keymaps/drashna/keymap.c
+++ b/keyboards/splitkb/zima/keymaps/drashna/keymap.c
@@ -22,6 +22,7 @@
22extern haptic_config_t haptic_config; 22extern haptic_config_t haptic_config;
23#endif 23#endif
24 24
25// clang-format off
25const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { 26const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
26 [0] = LAYOUT_ortho_4x3( /* Base */ 27 [0] = LAYOUT_ortho_4x3( /* Base */
27 KC_MUTE, TG(1), TG(2), 28 KC_MUTE, TG(1), TG(2),
@@ -43,12 +44,20 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
43 ) 44 )
44}; 45};
45 46
47#ifdef ENCODER_MAP_ENABLE
48const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][2] = {
49 [0] = { { KC_DOWN, KC_UP } },
50 [1] = { { KC_VOLD, KC_VOLU } },
51 [2] = { { RGB_MOD, RGB_RMOD} },
52};
53#endif
54// clang-format on
46 55
47static bool is_asleep = false; 56static bool is_asleep = false;
48static uint32_t oled_timer; 57static uint32_t oled_timer;
49 58
50void render_oled_logo(void) { 59void render_oled_logo(void) {
51 // clang-format off 60 // clang-format off
52 static const char PROGMEM qmk_logo[] = { 61 static const char PROGMEM qmk_logo[] = {
53 0x80,0x81,0x82,0x83,0x84,0x85,0x86,0x87,0x88,0x89,0x8a,0x8b,0x8c,0x8d,0x8e,0x8f,0x90,0x91,0x92,0x93,0x94, 62 0x80,0x81,0x82,0x83,0x84,0x85,0x86,0x87,0x88,0x89,0x8a,0x8b,0x8c,0x8d,0x8e,0x8f,0x90,0x91,0x92,0x93,0x94,
54 0xa0,0xa1,0xa2,0xa3,0xa4,0xa5,0xa6,0xa7,0xa8,0xa9,0xaa,0xab,0xac,0xad,0xae,0xaf,0xb0,0xb1,0xb2,0xb3,0xb4, 63 0xa0,0xa1,0xa2,0xa3,0xa4,0xa5,0xa6,0xa7,0xa8,0xa9,0xaa,0xab,0xac,0xad,0xae,0xaf,0xb0,0xb1,0xb2,0xb3,0xb4,
@@ -68,9 +77,7 @@ void render_user_status(void) {
68 oled_write_P(nukem_good[0], haptic_config.enable); 77 oled_write_P(nukem_good[0], haptic_config.enable);
69} 78}
70 79
71void keyboard_post_init_user(void) { 80void keyboard_post_init_user(void) { oled_scroll_set_speed(0); }
72 oled_scroll_set_speed(0);
73}
74 81
75void oled_task_user(void) { 82void oled_task_user(void) {
76 if (is_asleep) { 83 if (is_asleep) {
@@ -107,13 +114,9 @@ void oled_task_user(void) {
107 } 114 }
108} 115}
109 116
110void suspend_power_down_user(void) { 117void suspend_power_down_user(void) { is_asleep = true; }
111 is_asleep = true;
112}
113 118
114void suspend_wakeup_init_user(void) { 119void suspend_wakeup_init_user(void) { is_asleep = false; }
115 is_asleep = false;
116}
117 120
118bool process_record_user(uint16_t keycode, keyrecord_t* record) { 121bool process_record_user(uint16_t keycode, keyrecord_t* record) {
119 oled_timer = timer_read32(); 122 oled_timer = timer_read32();
@@ -121,7 +124,6 @@ bool process_record_user(uint16_t keycode, keyrecord_t* record) {
121 return true; 124 return true;
122} 125}
123 126
124
125bool encoder_update_user(uint8_t index, bool clockwise) { 127bool encoder_update_user(uint8_t index, bool clockwise) {
126 if (clockwise) { 128 if (clockwise) {
127 tap_code16(KC_VOLU); 129 tap_code16(KC_VOLU);
diff --git a/keyboards/splitkb/zima/keymaps/drashna/rules.mk b/keyboards/splitkb/zima/keymaps/drashna/rules.mk
index b9a1f7f25..b9dc00915 100644
--- a/keyboards/splitkb/zima/keymaps/drashna/rules.mk
+++ b/keyboards/splitkb/zima/keymaps/drashna/rules.mk
@@ -1,2 +1,3 @@
1# is intentional. won't compile under size, otherwise. 1# is intentional. won't compile under size, otherwise.
2USER_NAME := not_drashna 2USER_NAME := not_drashna
3ENCODER_MAP_ENABLE = yes
diff --git a/layouts/community/ergodox/drashna/keymap.c b/layouts/community/ergodox/drashna/keymap.c
index 600e29020..430328fed 100644
--- a/layouts/community/ergodox/drashna/keymap.c
+++ b/layouts/community/ergodox/drashna/keymap.c
@@ -56,145 +56,33 @@ bool skip_leds = false;
56 KC_SPC, LT(_LOWER, KC_BSPC), OS_LWR, OS_RSE, LT(_RAISE, KC_DEL), KC_ENT \ 56 KC_SPC, LT(_LOWER, KC_BSPC), OS_LWR, OS_RSE, LT(_RAISE, KC_DEL), KC_ENT \
57 ) 57 )
58 58
59#define LAYOUT_ergodox_pretty_base_wrapper(...) LAYOUT_ergodox_pretty_base(__VA_ARGS__) 59#define LAYOUT_base_wrapper(...) LAYOUT_ergodox_pretty_base(__VA_ARGS__)
60 60
61 61
62 62
63const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { 63const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
64/* Keymap 0: QWERTY Layer 64 [_DEFAULT_LAYER_1] = LAYOUT_base_wrapper(
65 * 65 _________________QWERTY_L1_________________, _________________QWERTY_R1_________________,
66 * 66 _________________QWERTY_L2_________________, _________________QWERTY_R2_________________,
67 * ,--------------------------------------------------. ,--------------------------------------------------. 67 _________________QWERTY_L3_________________, _________________QWERTY_R3_________________
68 * | = + | 1 ! | 2 @ | 3 # | 4 $ | 5 % | TG(4)| | TG(4)| 6 ^ | 7 & | 8 * | 9 ( | 0 ) | - _ | 68 ),
69 * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| 69
70 * | TAB | Q | W | E | R | T | TG(3)| |TG(3) | Y | U | I | O | P | \ | | 70 [_DEFAULT_LAYER_2] = LAYOUT_base_wrapper(
71 * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| 71 ______________COLEMAK_MOD_DH_L1____________, ______________COLEMAK_MOD_DH_R1____________,
72 * | Bksp | A | S | D | F | G |------| |------| H | J | K | L | ; | ' " | 72 ______________COLEMAK_MOD_DH_L2____________, ______________COLEMAK_MOD_DH_R2____________,
73 * |--------+------+------+------+------+------| TG(2)| | TG(2)|------+------+------+------+------+--------| 73 ______________COLEMAK_MOD_DH_L3____________, ______________COLEMAK_MOD_DH_R3____________
74 * | Shift | Z | X | C | V | B | | | | N | M | , < | . > | ? / | Shift | 74 ),
75 * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' 75 [_DEFAULT_LAYER_3] = LAYOUT_base_wrapper(
76 * | `/SYM| MEH | LGUI | [ { | ] } | | LEFT | DOWN | UP |RIGHT | SYMB | 76 _________________COLEMAK_L1________________, _________________COLEMAK_R1________________,
77 * `----------------------------------' `----------------------------------' 77 _________________COLEMAK_L2________________, _________________COLEMAK_R2________________,
78 * ,--------------. ,--------------. 78 _________________COLEMAK_L3________________, _________________COLEMAK_R3________________
79 * |Alt/Ap| Win | | Alt |Ctl/Esc| 79 ),
80 * ,------|------|-------| |------+-------+------. 80
81 * | | | Home | | PgUp | | | 81 [_DEFAULT_LAYER_4] = LAYOUT_base_wrapper(
82 * | Space| Bksp |-------| |------| DEL |Enter | 82 _________________DVORAK_L1_________________, _________________DVORAK_R1_________________,
83 * | | | End | | PgDn | | | 83 _________________DVORAK_L2_________________, _________________DVORAK_R2_________________,
84 * `---------------------' `---------------------' 84 _________________DVORAK_L3_________________, _________________DVORAK_R3_________________
85 */ 85 ),
86 [_QWERTY] = LAYOUT_ergodox_pretty_base_wrapper(
87 _________________QWERTY_L1_________________, _________________QWERTY_R1_________________,
88 _________________QWERTY_L2_________________, _________________QWERTY_R2_________________,
89 _________________QWERTY_L3_________________, _________________QWERTY_R3_________________
90 ),
91/* Keymap 0: COLEMAK layer
92 *
93 * ,--------------------------------------------------. ,--------------------------------------------------.
94 * | = | 1 | 2 | 3 | 4 | 5 | LEFT | | RIGHT| 6 | 7 | 8 | 9 | 0 | - |
95 * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
96 * | Del | Q | W | F | P | G | L1 | | L1 | J | L | U | Y | ; | \ |
97 * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
98 * | BkSp | A | R | S | T | D |------| |------| H | N | E | I |O / L2| ' |
99 * |--------+------+------+------+------+------| OVER | | Meh |------+------+------+------+------+--------|
100 * | LShift |Z/Ctrl| X | C | V | B | | | | K | M | , | . |//Ctrl| RShift |
101 * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
102 * | `/SYM| MEH | LGUI | [ { | ] } | | LEFT | DOWN | UP |RIGHT | SYMB |
103 * `----------------------------------' `----------------------------------'
104 * ,-------------. ,-------------.
105 * | App | LGui | | Alt |Ctrl/Esc|
106 * ,------|------|------| |------+--------+------.
107 * | | | Home | | PgUp | | |
108 * | Space|Backsp|------| |------| Tab |Enter |
109 * | |ace | End | | PgDn | | |
110 * `--------------------' `----------------------'
111 */
112// If it accepts an argument (i.e, is a function), it doesn't need KC_.
113// Otherwise, it needs KC_*
114 [_COLEMAK] = LAYOUT_ergodox_pretty_base_wrapper(
115 _________________COLEMAK_L1________________, _________________COLEMAK_R1________________,
116 _________________COLEMAK_L2________________, _________________COLEMAK_R2________________,
117 _________________COLEMAK_L3________________, _________________COLEMAK_R3________________
118 ),
119/* Keymap 0: DVORAK Layout
120 *
121 * ,--------------------------------------------------. ,--------------------------------------------------.
122 * | = | 1 | 2 | 3 | 4 | 5 | LEFT | | RIGHT| 6 | 7 | 8 | 9 | 0 | \ |
123 * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
124 * | Del | ' | , | . | P | Y | L1 | | L1 | F | G | C | R | L | / |
125 * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
126 * | BkSp | A | O | E | U | I |------| |------| D | H | T | N |S / L2| - |
127 * |--------+------+------+------+------+------| Hyper| | Meh |------+------+------+------+------+--------|
128 * | LShift |:/Ctrl| Q | J | K | X | | | | B | M | W | V |Z/Ctrl| RShift |
129 * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
130 * | `/SYM| MEH | LGUI | [ { | ] } | | LEFT | DOWN | UP |RIGHT | SYMB |
131 * `----------------------------------' `----------------------------------'
132 * ,-------------. ,-------------.
133 * | App | LGui | | Alt |Ctrl/Esc|
134 * ,------|------|------| |------+--------+------.
135 * | | | Home | | PgUp | | |
136 * | Space|Backsp|------| |------| Tab |Enter |
137 * | |ace | End | | PgDn | | |
138 * `--------------------' `----------------------'
139 */
140// If it accepts an argument (i.e, is a function), it doesn't need KC_.
141// Otherwise, it needs KC_*
142 [_DVORAK] = LAYOUT_ergodox_pretty_base_wrapper(
143 _________________DVORAK_L1_________________, _________________DVORAK_R1_________________,
144 _________________DVORAK_L2_________________, _________________DVORAK_R2_________________,
145 _________________DVORAK_L3_________________, _________________DVORAK_R3_________________
146 ),
147/* Keymap 0: WORKMAN layer
148 *
149 * ,--------------------------------------------------. ,--------------------------------------------------.
150 * | = | 1 | 2 | 3 | 4 | 5 | LEFT | | RIGHT| 6 | 7 | 8 | 9 | 0 | - |
151 * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
152 * | Del | Q | D | R | W | B | L1 | | L1 | J | F | U | P | ; | \ |
153 * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
154 * | BkSp | A | S | H | T | D |------| |------| Y | N | E | O | I | ' |
155 * |--------+------+------+------+------+------| OVER | | Meh |------+------+------+------+------+--------|
156 * | LShift |Z/Ctrl| X | M | C | V | | | | K | L | , | . |//Ctrl| RShift |
157 * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
158 * | `/SYM| MEH | LGUI | [ { | ] } | | LEFT | DOWN | UP |RIGHT | SYMB |
159 * `----------------------------------' `----------------------------------'
160 * ,-------------. ,-------------.
161 * | App | LGui | | Alt |Ctrl/Esc|
162 * ,------|------|------| |------+--------+------.
163 * | | | Home | | PgUp | | |
164 * | Space|Backsp|------| |------| Tab |Enter |
165 * | |ace | End | | PgDn | | |
166 * `--------------------' `----------------------'
167 */
168
169 [_WORKMAN] = LAYOUT_ergodox_pretty_base_wrapper(
170 _________________WORKMAN_L1________________, _________________WORKMAN_R1________________,
171 _________________WORKMAN_L2________________, _________________WORKMAN_R2________________,
172 _________________WORKMAN_L3________________, _________________WORKMAN_R3________________
173 ),
174
175 [_NORMAN] = LAYOUT_ergodox_pretty_base_wrapper(
176 _________________NORMAN_L1_________________, _________________NORMAN_L1_________________,
177 _________________NORMAN_L2_________________, _________________NORMAN_R2_________________,
178 _________________NORMAN_L3_________________, _________________NORMAN_R3_________________
179 ),
180
181 [_MALTRON] = LAYOUT_ergodox_pretty_base_wrapper(
182 _________________MALTRON_L1________________, _________________MALTRON_R1________________,
183 _________________MALTRON_L2________________, _________________MALTRON_R2________________,
184 _________________MALTRON_L3________________, _________________MALTRON_R3________________
185 ),
186
187 [_EUCALYN] = LAYOUT_ergodox_pretty_base_wrapper(
188 _________________EUCALYN_L1________________, _________________EUCALYN_R1________________,
189 _________________EUCALYN_L2________________, _________________EUCALYN_R2________________,
190 _________________EUCALYN_L3________________, _________________EUCALYN_R3________________
191 ),
192
193 [_CARPLAX] = LAYOUT_ergodox_pretty_base_wrapper(
194 _____________CARPLAX_QFMLWY_L1_____________, _____________CARPLAX_QFMLWY_R1_____________,
195 _____________CARPLAX_QFMLWY_L2_____________, _____________CARPLAX_QFMLWY_R2_____________,
196 _____________CARPLAX_QFMLWY_L3_____________, _____________CARPLAX_QFMLWY_R3_____________
197 ),
198 86
199/* Keymap 4: Customized Overwatch Layout 87/* Keymap 4: Customized Overwatch Layout
200 * 88 *
@@ -311,9 +199,7 @@ void keyboard_post_init_keymap(void) {
311 // trackball_set_precision(1.5); 199 // trackball_set_precision(1.5);
312 trackball_set_rgbw(RGB_MAGENTA, 0x00); 200 trackball_set_rgbw(RGB_MAGENTA, 0x00);
313} 201}
314void shutdown_keymap(void) { 202void shutdown_keymap(void) { trackball_set_rgbw(RGB_RED, 0x00); }
315 trackball_set_rgbw(RGB_RED, 0x00);
316}
317 203
318static bool mouse_button_one, trackball_button_one; 204static bool mouse_button_one, trackball_button_one;
319 205
@@ -328,8 +214,6 @@ void trackball_register_button(bool pressed, enum mouse_buttons button) {
328} 214}
329#endif 215#endif
330 216
331
332
333bool process_record_keymap(uint16_t keycode, keyrecord_t *record) { 217bool process_record_keymap(uint16_t keycode, keyrecord_t *record) {
334 switch (keycode) { 218 switch (keycode) {
335 case KC_1: 219 case KC_1:
@@ -371,17 +255,17 @@ bool process_record_keymap(uint16_t keycode, keyrecord_t *record) {
371 } 255 }
372 run_trackball_cleanup(); 256 run_trackball_cleanup();
373 break; 257 break;
374#if !defined(MOUSEKEY_ENABLE) 258# if !defined(MOUSEKEY_ENABLE)
375 case KC_MS_BTN1: 259 case KC_MS_BTN1:
376 mouse_button_one = record->event.pressed; 260 mouse_button_one = record->event.pressed;
377 trackball_register_button(mouse_button_one | trackball_button_one, MOUSE_BTN1); 261 trackball_register_button(mouse_button_one | trackball_button_one, MOUSE_BTN1);
378 break; 262 break;
379 case KC_MS_BTN2: 263 case KC_MS_BTN2:
380 trackball_register_button(record->event.pressed, MOUSE_BTN2); 264 trackball_register_button(record->event.pressed, MOUSE_BTN2);
381 break; 265 break;
382 case KC_MS_BTN3: 266 case KC_MS_BTN3:
383 trackball_register_button(record->event.pressed, MOUSE_BTN3); 267 trackball_register_button(record->event.pressed, MOUSE_BTN3);
384 break; 268 break;
385# endif 269# endif
386#endif 270#endif
387 } 271 }
@@ -434,7 +318,6 @@ void suspend_power_down_keymap(void) { rgb_matrix_set_suspend_state(true); }
434void suspend_wakeup_init_keymap(void) { rgb_matrix_set_suspend_state(false); } 318void suspend_wakeup_init_keymap(void) { rgb_matrix_set_suspend_state(false); }
435 319
436void rgb_matrix_indicators_advanced_user(uint8_t led_min, uint8_t led_max) { 320void rgb_matrix_indicators_advanced_user(uint8_t led_min, uint8_t led_max) {
437
438 if (layer_state_is(_GAMEPAD)) { 321 if (layer_state_is(_GAMEPAD)) {
439 RGB_MATRIX_INDICATOR_SET_COLOR(32, 0x00, 0xFF, 0x00); // Q 322 RGB_MATRIX_INDICATOR_SET_COLOR(32, 0x00, 0xFF, 0x00); // Q
440 RGB_MATRIX_INDICATOR_SET_COLOR(31, 0x00, 0xFF, 0xFF); // W 323 RGB_MATRIX_INDICATOR_SET_COLOR(31, 0x00, 0xFF, 0xFF); // W
@@ -447,7 +330,7 @@ void rgb_matrix_indicators_advanced_user(uint8_t led_min, uint8_t led_max) {
447 330
448 RGB_MATRIX_INDICATOR_SET_COLOR((userspace_config.swapped_numbers ? 26 : 27), 0xFF, 0xFF, 0xFF); // 1 331 RGB_MATRIX_INDICATOR_SET_COLOR((userspace_config.swapped_numbers ? 26 : 27), 0xFF, 0xFF, 0xFF); // 1
449 RGB_MATRIX_INDICATOR_SET_COLOR((userspace_config.swapped_numbers ? 27 : 26), 0x00, 0xFF, 0x00); // 2 332 RGB_MATRIX_INDICATOR_SET_COLOR((userspace_config.swapped_numbers ? 27 : 26), 0x00, 0xFF, 0x00); // 2
450 RGB_MATRIX_INDICATOR_SET_COLOR(25, 0x7A, 0x00, 0xFF); // 3 333 RGB_MATRIX_INDICATOR_SET_COLOR(25, 0x7A, 0x00, 0xFF); // 3
451 } 334 }
452 335
453# if defined(RGBLIGHT_ENABLE) 336# if defined(RGBLIGHT_ENABLE)
@@ -456,7 +339,7 @@ void rgb_matrix_indicators_advanced_user(uint8_t led_min, uint8_t led_max) {
456 if (userspace_config.rgb_layer_change) 339 if (userspace_config.rgb_layer_change)
457# endif 340# endif
458 { 341 {
459 switch (get_highest_layer(layer_state|default_layer_state)) { 342 switch (get_highest_layer(layer_state | default_layer_state)) {
460 case _GAMEPAD: 343 case _GAMEPAD:
461 rgb_matrix_layer_helper(HSV_ORANGE, 1, rgb_matrix_config.speed, LED_FLAG_MODIFIER, led_min, led_max); 344 rgb_matrix_layer_helper(HSV_ORANGE, 1, rgb_matrix_config.speed, LED_FLAG_MODIFIER, led_min, led_max);
462 break; 345 break;
@@ -472,29 +355,17 @@ void rgb_matrix_indicators_advanced_user(uint8_t led_min, uint8_t led_max) {
472 case _ADJUST: 355 case _ADJUST:
473 rgb_matrix_layer_helper(HSV_RED, 1, rgb_matrix_config.speed, LED_FLAG_MODIFIER, led_min, led_max); 356 rgb_matrix_layer_helper(HSV_RED, 1, rgb_matrix_config.speed, LED_FLAG_MODIFIER, led_min, led_max);
474 break; 357 break;
475 case _QWERTY: 358 case _DEFAULT_LAYER_1:
476 rgb_matrix_layer_helper(HSV_CYAN, 1, rgb_matrix_config.speed, LED_FLAG_MODIFIER, led_min, led_max); 359 rgb_matrix_layer_helper(DEFAULT_LAYER_1_HSV, 1, rgb_matrix_config.speed, LED_FLAG_MODIFIER, led_min, led_max);
477 break; 360 break;
478 case _COLEMAK: 361 case _DEFAULT_LAYER_2:
479 rgb_matrix_layer_helper(HSV_MAGENTA, 1, rgb_matrix_config.speed, LED_FLAG_MODIFIER, led_min, led_max); 362 rgb_matrix_layer_helper(DEFAULT_LAYER_2_HSV, 1, rgb_matrix_config.speed, LED_FLAG_MODIFIER, led_min, led_max);
480 break;
481 case _DVORAK:
482 rgb_matrix_layer_helper(HSV_SPRINGGREEN, 1, rgb_matrix_config.speed, LED_FLAG_MODIFIER, led_min, led_max);
483 break;
484 case _WORKMAN:
485 rgb_matrix_layer_helper(HSV_GOLDENROD, 1, rgb_matrix_config.speed, LED_FLAG_MODIFIER, led_min, led_max);
486 break;
487 case _NORMAN:
488 rgb_matrix_layer_helper(HSV_CORAL, 1, rgb_matrix_config.speed, LED_FLAG_MODIFIER, led_min, led_max);
489 break;
490 case _MALTRON:
491 rgb_matrix_layer_helper(HSV_YELLOW, 1, rgb_matrix_config.speed, LED_FLAG_MODIFIER, led_min, led_max);
492 break; 363 break;
493 case _EUCALYN: 364 case _DEFAULT_LAYER_3:
494 rgb_matrix_layer_helper(HSV_PINK, 1, rgb_matrix_config.speed, LED_FLAG_MODIFIER, led_min, led_max); 365 rgb_matrix_layer_helper(DEFAULT_LAYER_3_HSV, 1, rgb_matrix_config.speed, LED_FLAG_MODIFIER, led_min, led_max);
495 break; 366 break;
496 case _CARPLAX: 367 case _DEFAULT_LAYER_4:
497 rgb_matrix_layer_helper(HSV_BLUE, 1, rgb_matrix_config.speed, LED_FLAG_MODIFIER, led_min, led_max); 368 rgb_matrix_layer_helper(DEFAULT_LAYER_4_HSV, 1, rgb_matrix_config.speed, LED_FLAG_MODIFIER, led_min, led_max);
498 break; 369 break;
499 } 370 }
500 } 371 }
diff --git a/layouts/community/ortho_4x12/drashna/keymap.c b/layouts/community/ortho_4x12/drashna/keymap.c
index 1384221b5..9ef2317f4 100644
--- a/layouts/community/ortho_4x12/drashna/keymap.c
+++ b/layouts/community/ortho_4x12/drashna/keymap.c
@@ -16,7 +16,6 @@
16 16
17#include "drashna.h" 17#include "drashna.h"
18 18
19
20#ifdef BACKLIGHT_ENABLE 19#ifdef BACKLIGHT_ENABLE
21enum planck_keycodes { 20enum planck_keycodes {
22 BACKLIT = NEW_SAFE_RANGE, 21 BACKLIT = NEW_SAFE_RANGE,
@@ -62,58 +61,32 @@ enum planck_keycodes {
62 KC_MLSF, CTL_T(K21), K22, K23, K24, K25, K26, K27, K28, K29, RCTL_T(K2A), KC_ENT, \ 61 KC_MLSF, CTL_T(K21), K22, K23, K24, K25, K26, K27, K28, K29, RCTL_T(K2A), KC_ENT, \
63 BACKLIT, OS_LCTL, OS_LALT, OS_LGUI, PLNK_1, PLNK_2, PLNK_3, PLNK_4, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT \ 62 BACKLIT, OS_LCTL, OS_LALT, OS_LGUI, PLNK_1, PLNK_2, PLNK_3, PLNK_4, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT \
64 ) 63 )
65#define LAYOUT_ortho_4x12_base_wrapper(...) LAYOUT_ortho_4x12_base(__VA_ARGS__) 64#define LAYOUT_base_wrapper(...) LAYOUT_ortho_4x12_base(__VA_ARGS__)
66 65
67 66
68const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { 67const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
69 68 [_DEFAULT_LAYER_1] = LAYOUT_base_wrapper(
70 [_QWERTY] = LAYOUT_ortho_4x12_base_wrapper( 69 _________________QWERTY_L1_________________, _________________QWERTY_R1_________________,
71 _________________QWERTY_L1_________________, _________________QWERTY_R1_________________, 70 _________________QWERTY_L2_________________, _________________QWERTY_R2_________________,
72 _________________QWERTY_L2_________________, _________________QWERTY_R2_________________, 71 _________________QWERTY_L3_________________, _________________QWERTY_R3_________________
73 _________________QWERTY_L3_________________, _________________QWERTY_R3_________________ 72 ),
74 ), 73
75 74 [_DEFAULT_LAYER_2] = LAYOUT_base_wrapper(
76 [_COLEMAK] = LAYOUT_ortho_4x12_base_wrapper( 75 ______________COLEMAK_MOD_DH_L1____________, ______________COLEMAK_MOD_DH_R1____________,
77 _________________COLEMAK_L1________________, _________________COLEMAK_R1________________, 76 ______________COLEMAK_MOD_DH_L2____________, ______________COLEMAK_MOD_DH_R2____________,
78 _________________COLEMAK_L2________________, _________________COLEMAK_R2________________, 77 ______________COLEMAK_MOD_DH_L3____________, ______________COLEMAK_MOD_DH_R3____________
79 _________________COLEMAK_L3________________, _________________COLEMAK_R3________________ 78 ),
80 ), 79 [_DEFAULT_LAYER_3] = LAYOUT_base_wrapper(
81 80 _________________COLEMAK_L1________________, _________________COLEMAK_R1________________,
82 [_DVORAK] = LAYOUT_ortho_4x12_base_wrapper( 81 _________________COLEMAK_L2________________, _________________COLEMAK_R2________________,
83 _________________DVORAK_L1_________________, _________________DVORAK_R1_________________, 82 _________________COLEMAK_L3________________, _________________COLEMAK_R3________________
84 _________________DVORAK_L2_________________, _________________DVORAK_R2_________________, 83 ),
85 _________________DVORAK_L3_________________, _________________DVORAK_R3_________________ 84
86 ), 85 [_DEFAULT_LAYER_4] = LAYOUT_base_wrapper(
87 86 _________________DVORAK_L1_________________, _________________DVORAK_R1_________________,
88 [_WORKMAN] = LAYOUT_ortho_4x12_base_wrapper( 87 _________________DVORAK_L2_________________, _________________DVORAK_R2_________________,
89 _________________WORKMAN_L1________________, _________________WORKMAN_R1________________, 88 _________________DVORAK_L3_________________, _________________DVORAK_R3_________________
90 _________________WORKMAN_L2________________, _________________WORKMAN_R2________________, 89 ),
91 _________________WORKMAN_L3________________, _________________WORKMAN_R3________________
92 ),
93
94 [_NORMAN] = LAYOUT_ortho_4x12_base_wrapper(
95 _________________NORMAN_L1_________________, _________________NORMAN_L1_________________,
96 _________________NORMAN_L2_________________, _________________NORMAN_R2_________________,
97 _________________NORMAN_L3_________________, _________________NORMAN_R3_________________
98 ),
99
100 [_MALTRON] = LAYOUT_ortho_4x12_base_wrapper(
101 _________________MALTRON_L1________________, _________________MALTRON_R1________________,
102 _________________MALTRON_L2________________, _________________MALTRON_R2________________,
103 _________________MALTRON_L3________________, _________________MALTRON_R3________________
104 ),
105
106 [_EUCALYN] = LAYOUT_ortho_4x12_base_wrapper(
107 _________________EUCALYN_L1________________, _________________EUCALYN_R1________________,
108 _________________EUCALYN_L2________________, _________________EUCALYN_R2________________,
109 _________________EUCALYN_L3________________, _________________EUCALYN_R3________________
110 ),
111
112 [_CARPLAX] = LAYOUT_ortho_4x12_base_wrapper(
113 _____________CARPLAX_QFMLWY_L1_____________, _____________CARPLAX_QFMLWY_R1_____________,
114 _____________CARPLAX_QFMLWY_L2_____________, _____________CARPLAX_QFMLWY_R2_____________,
115 _____________CARPLAX_QFMLWY_L3_____________, _____________CARPLAX_QFMLWY_R3_____________
116 ),
117 90
118 [_LOWER] = LAYOUT_ortho_4x12_wrapper( 91 [_LOWER] = LAYOUT_ortho_4x12_wrapper(
119 KC_TILD, _________________LOWER_L1__________________, _________________LOWER_R1__________________, KC_BSPC, 92 KC_TILD, _________________LOWER_L1__________________, _________________LOWER_R1__________________, KC_BSPC,
@@ -137,6 +110,22 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
137 ) 110 )
138 111
139}; 112};
113
114#ifdef ENCODER_MAP_ENABLE
115const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][2] = {
116 [_DEFAULT_LAYER_1] = { { KC_DOWN, KC_UP } },
117 [_DEFAULT_LAYER_2] = { { _______, _______ } },
118 [_DEFAULT_LAYER_3] = { { _______, _______ } },
119 [_DEFAULT_LAYER_4] = { { _______, _______ } },
120 [_GAMEPAD] = { { _______, _______ } },
121 [_DIABLO] = { { _______, _______ } },
122 [_MOUSE] = { { KC_WH_D, KC_WH_U } },
123 [_MEDIA] = { { _______, _______ } },
124 [_RAISE] = { { KC_VOLD, KC_VOLU } },
125 [_LOWER] = { { RGB_MOD, RGB_RMOD} },
126 [_ADJUST] = { { CK_DOWN, CK_UP } },
127};
128#endif
140// clang-format on 129// clang-format on
141 130
142bool process_record_keymap(uint16_t keycode, keyrecord_t *record) { 131bool process_record_keymap(uint16_t keycode, keyrecord_t *record) {
@@ -222,7 +211,6 @@ void suspend_wakeup_init_keymap(void) {
222} 211}
223// clang-format on 212// clang-format on
224 213
225
226void rgb_matrix_indicators_advanced_user(uint8_t led_min, uint8_t led_max) { 214void rgb_matrix_indicators_advanced_user(uint8_t led_min, uint8_t led_max) {
227 uint8_t this_mod = get_mods(); 215 uint8_t this_mod = get_mods();
228 uint8_t this_led = host_keyboard_leds(); 216 uint8_t this_led = host_keyboard_leds();
@@ -254,49 +242,38 @@ void rgb_matrix_indicators_advanced_user(uint8_t led_min, uint8_t led_max) {
254 case _ADJUST: 242 case _ADJUST:
255 rgb_matrix_layer_helper(HSV_RED, 1, rgb_matrix_config.speed, LED_FLAG_MODIFIER, led_min, led_max); 243 rgb_matrix_layer_helper(HSV_RED, 1, rgb_matrix_config.speed, LED_FLAG_MODIFIER, led_min, led_max);
256 break; 244 break;
257 default: { 245 default:
258 switch (get_highest_layer(default_layer_state)) { 246 {
259 case _QWERTY: 247 switch (get_highest_layer(default_layer_state)) {
260 rgb_matrix_layer_helper(HSV_CYAN, 0, rgb_matrix_config.speed, LED_FLAG_MODIFIER, led_min, led_max); 248 case _DEFAULT_LAYER_1:
261 break; 249 rgb_matrix_layer_helper(DEFAULT_LAYER_1_HSV, 0, rgb_matrix_config.speed, LED_FLAG_MODIFIER, led_min, led_max);
262 case _COLEMAK: 250 break;
263 rgb_matrix_layer_helper(HSV_MAGENTA, 0, rgb_matrix_config.speed, LED_FLAG_MODIFIER, led_min, led_max); 251 case _DEFAULT_LAYER_2:
264 break; 252 rgb_matrix_layer_helper(DEFAULT_LAYER_2_HSV, 0, rgb_matrix_config.speed, LED_FLAG_MODIFIER, led_min, led_max);
265 case _DVORAK: 253 break;
266 rgb_matrix_layer_helper(HSV_SPRINGGREEN, 0, rgb_matrix_config.speed, LED_FLAG_MODIFIER, led_min, led_max); 254 case _DEFAULT_LAYER_3:
267 break; 255 rgb_matrix_layer_helper(DEFAULT_LAYER_3_HSV, 0, rgb_matrix_config.speed, LED_FLAG_MODIFIER, led_min, led_max);
268 case _WORKMAN: 256 break;
269 rgb_matrix_layer_helper(HSV_GOLDENROD, 0, rgb_matrix_config.speed, LED_FLAG_MODIFIER, led_min, led_max); 257 case _DEFAULT_LAYER_4:
270 break; 258 rgb_matrix_layer_helper(DEFAULT_LAYER_4_HSV, 0, rgb_matrix_config.speed, LED_FLAG_MODIFIER, led_min, led_max);
271 case _NORMAN: 259 break;
272 rgb_matrix_layer_helper(HSV_CORAL, 0, rgb_matrix_config.speed, LED_FLAG_MODIFIER, led_min, led_max); 260 }
273 break; 261 break;
274 case _MALTRON:
275 rgb_matrix_layer_helper(HSV_YELLOW, 0, rgb_matrix_config.speed, LED_FLAG_MODIFIER, led_min, led_max);
276 break;
277 case _EUCALYN:
278 rgb_matrix_layer_helper(HSV_PINK, 0, rgb_matrix_config.speed, LED_FLAG_MODIFIER, led_min, led_max);
279 break;
280 case _CARPLAX:
281 rgb_matrix_layer_helper(HSV_BLUE, 0, rgb_matrix_config.speed, LED_FLAG_MODIFIER, led_min, led_max);
282 break;
283 } 262 }
284 break;
285 }
286 } 263 }
287 } 264 }
288 265
289 switch (get_highest_layer(default_layer_state)) { 266 switch (get_highest_layer(default_layer_state)) {
290 case _QWERTY: 267 case _DEFAULT_LAYER_1:
291 RGB_MATRIX_INDICATOR_SET_COLOR((is_ez ? 41 : 42), 0x00, 0xFF, 0xFF); 268 RGB_MATRIX_INDICATOR_SET_COLOR((is_ez ? 41 : 42), 0x00, 0xFF, 0xFF);
292 break; 269 break;
293 case _COLEMAK: 270 case _DEFAULT_LAYER_2:
294 RGB_MATRIX_INDICATOR_SET_COLOR((is_ez ? 41 : 42), 0xFF, 0x00, 0xFF); 271 RGB_MATRIX_INDICATOR_SET_COLOR((is_ez ? 41 : 42), 0xFF, 0x00, 0xFF);
295 break; 272 break;
296 case _DVORAK: 273 case _DEFAULT_LAYER_3:
297 RGB_MATRIX_INDICATOR_SET_COLOR((is_ez ? 41 : 42), 0x00, 0xFF, 0x00); 274 RGB_MATRIX_INDICATOR_SET_COLOR((is_ez ? 41 : 42), 0x00, 0xFF, 0x00);
298 break; 275 break;
299 case _WORKMAN: 276 case _DEFAULT_LAYER_4:
300 RGB_MATRIX_INDICATOR_SET_COLOR((is_ez ? 41 : 42), 0xD9, 0xA5, 0x21); 277 RGB_MATRIX_INDICATOR_SET_COLOR((is_ez ? 41 : 42), 0xD9, 0xA5, 0x21);
301 break; 278 break;
302 } 279 }
diff --git a/layouts/community/ortho_4x12/drashna/rules.mk b/layouts/community/ortho_4x12/drashna/rules.mk
index 06a250ee7..e78d073ae 100644
--- a/layouts/community/ortho_4x12/drashna/rules.mk
+++ b/layouts/community/ortho_4x12/drashna/rules.mk
@@ -22,6 +22,7 @@ else
22 RGB_MATRIX_ENABLE = no 22 RGB_MATRIX_ENABLE = no
23 AUDIO_ENABLE = yes 23 AUDIO_ENABLE = yes
24 EEPROM_DRIVER = i2c 24 EEPROM_DRIVER = i2c
25 ENCODER_MAP_ENABLE = yes
25endif 26endif
26ifeq ($(strip $(KEYBOARD)), planck/light) 27ifeq ($(strip $(KEYBOARD)), planck/light)
27 RGB_MATRIX_ENABLE = yes 28 RGB_MATRIX_ENABLE = yes
@@ -31,13 +32,14 @@ ifeq ($(strip $(KEYBOARD)), planck/light)
31 # HAPTIC_ENABLE += SOLENOID 32 # HAPTIC_ENABLE += SOLENOID
32endif 33endif
33ifeq ($(strip $(KEYBOARD)), planck/ez) 34ifeq ($(strip $(KEYBOARD)), planck/ez)
34 RGBLIGHT_ENABLE = no 35 RGBLIGHT_ENABLE = no
35 ENCODER_ENABLE = yes 36 ENCODER_ENABLE = yes
36 RGB_MATRIX_ENABLE = yes 37 ENCODER_MAP_ENABLE = yes
38 RGB_MATRIX_ENABLE = yes
37 INDICATOR_LIGHTS = yes 39 INDICATOR_LIGHTS = yes
38 RGBLIGHT_TWINKLE = yes 40 RGBLIGHT_TWINKLE = yes
39 RGBLIGHT_STARTUP_ANIMATION = yes 41 RGBLIGHT_STARTUP_ANIMATION = yes
40 CONSOLE_ENABLE = yes 42 CONSOLE_ENABLE = yes
41 COMMAND_ENABLE = yes 43 COMMAND_ENABLE = yes
42 AUDIO_ENABLE = yes 44 AUDIO_ENABLE = yes
43endif 45endif
diff --git a/layouts/community/ortho_5x12/drashna/keymap.c b/layouts/community/ortho_5x12/drashna/keymap.c
index f882ead17..01b06d627 100644
--- a/layouts/community/ortho_5x12/drashna/keymap.c
+++ b/layouts/community/ortho_5x12/drashna/keymap.c
@@ -38,34 +38,32 @@
38 KC_NO, OS_LCTL, OS_LALT, OS_LGUI, SP_LWER, BK_LWER, DL_RAIS, ET_RAIS, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT \ 38 KC_NO, OS_LCTL, OS_LALT, OS_LGUI, SP_LWER, BK_LWER, DL_RAIS, ET_RAIS, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT \
39 ) 39 )
40 40
41#define LAYOUT_ortho_5x12_base_wrapper(...) LAYOUT_ortho_5x12_base(__VA_ARGS__) 41#define LAYOUT_base_wrapper(...) LAYOUT_ortho_5x12_base(__VA_ARGS__)
42 42
43 43
44const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { 44const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
45 [_DEFAULT_LAYER_1] = LAYOUT_base_wrapper(
46 _________________QWERTY_L1_________________, _________________QWERTY_R1_________________,
47 _________________QWERTY_L2_________________, _________________QWERTY_R2_________________,
48 _________________QWERTY_L3_________________, _________________QWERTY_R3_________________
49 ),
45 50
46[_QWERTY] = LAYOUT_ortho_5x12_base_wrapper( 51 [_DEFAULT_LAYER_2] = LAYOUT_base_wrapper(
47 _________________QWERTY_L1_________________, _________________QWERTY_R1_________________, 52 ______________COLEMAK_MOD_DH_L1____________, ______________COLEMAK_MOD_DH_R1____________,
48 _________________QWERTY_L2_________________, _________________QWERTY_R2_________________, 53 ______________COLEMAK_MOD_DH_L2____________, ______________COLEMAK_MOD_DH_R2____________,
49 _________________QWERTY_L3_________________, _________________QWERTY_R3_________________ 54 ______________COLEMAK_MOD_DH_L3____________, ______________COLEMAK_MOD_DH_R3____________
50), 55 ),
51 56 [_DEFAULT_LAYER_3] = LAYOUT_base_wrapper(
52[_COLEMAK] = LAYOUT_ortho_5x12_base_wrapper( 57 _________________COLEMAK_L1________________, _________________COLEMAK_R1________________,
53 _________________COLEMAK_L1________________, _________________COLEMAK_R1________________, 58 _________________COLEMAK_L2________________, _________________COLEMAK_R2________________,
54 _________________COLEMAK_L2________________, _________________COLEMAK_R2________________, 59 _________________COLEMAK_L3________________, _________________COLEMAK_R3________________
55 _________________COLEMAK_L3________________, _________________COLEMAK_R3________________ 60 ),
56),
57 61
58[_DVORAK] = LAYOUT_ortho_5x12_base_wrapper( 62 [_DEFAULT_LAYER_4] = LAYOUT_base_wrapper(
59 _________________DVORAK_L1_________________, _________________DVORAK_R1_________________, 63 _________________DVORAK_L1_________________, _________________DVORAK_R1_________________,
60 _________________DVORAK_L2_________________, _________________DVORAK_R2_________________, 64 _________________DVORAK_L2_________________, _________________DVORAK_R2_________________,
61 _________________DVORAK_L3_________________, _________________DVORAK_R3_________________ 65 _________________DVORAK_L3_________________, _________________DVORAK_R3_________________
62), 66 ),
63
64[_WORKMAN] = LAYOUT_ortho_5x12_base_wrapper(
65 _________________WORKMAN_L1________________, _________________WORKMAN_R1________________,
66 _________________WORKMAN_L2________________, _________________WORKMAN_R2________________,
67 _________________WORKMAN_L3________________, _________________WORKMAN_R3________________
68),
69 67
70/* Lower 68/* Lower
71 * ,-----------------------------------------------------------------------------------. 69 * ,-----------------------------------------------------------------------------------.
diff --git a/layouts/community/split_3x6_3/drashna/config.h b/layouts/community/split_3x6_3/drashna/config.h
index 4a094e195..b86448c67 100644
--- a/layouts/community/split_3x6_3/drashna/config.h
+++ b/layouts/community/split_3x6_3/drashna/config.h
@@ -50,11 +50,13 @@
50# define RGB_DISABLE_WHEN_USB_SUSPENDED // turn off effects when suspended 50# define RGB_DISABLE_WHEN_USB_SUSPENDED // turn off effects when suspended
51// # define RGB_MATRIX_LED_PROCESS_LIMIT (DRIVER_LED_TOTAL + 4) / 5 // limits the number of LEDs to process in an animation per task run (increases keyboard responsiveness) 51// # define RGB_MATRIX_LED_PROCESS_LIMIT (DRIVER_LED_TOTAL + 4) / 5 // limits the number of LEDs to process in an animation per task run (increases keyboard responsiveness)
52// # define RGB_MATRIX_LED_FLUSH_LIMIT 16 // limits in milliseconds how frequently an animation will update the LEDs. 16 (16ms) is equivalent to limiting to 60fps (increases keyboard responsiveness) 52// # define RGB_MATRIX_LED_FLUSH_LIMIT 16 // limits in milliseconds how frequently an animation will update the LEDs. 16 (16ms) is equivalent to limiting to 60fps (increases keyboard responsiveness)
53# define RGB_MATRIX_MAXIMUM_BRIGHTNESS 120 // limits maximum brightness of LEDs to 200 out of 255. If not defined maximum brightness is set to 255 53# ifndef RGB_MATRIX_MAXIMUM_BRIGHTNESS
54# define RGB_MATRIX_HUE_STEP 8 54# define RGB_MATRIX_MAXIMUM_BRIGHTNESS 120 // limits maximum brightness of LEDs to 200 out of 255. If not defined maximum brightness is set to 255
55# define RGB_MATRIX_SAT_STEP 8 55# endif
56# define RGB_MATRIX_VAL_STEP 5 56# define RGB_MATRIX_HUE_STEP 8
57# define RGB_MATRIX_SPD_STEP 10 57# define RGB_MATRIX_SAT_STEP 8
58# define RGB_MATRIX_VAL_STEP 5
59# define RGB_MATRIX_SPD_STEP 10
58#endif 60#endif
59 61
60#ifdef CONVERT_TO_PROTON_C 62#ifdef CONVERT_TO_PROTON_C
diff --git a/layouts/community/split_3x6_3/drashna/keymap.c b/layouts/community/split_3x6_3/drashna/keymap.c
index e46b626ef..0840fc262 100644
--- a/layouts/community/split_3x6_3/drashna/keymap.c
+++ b/layouts/community/split_3x6_3/drashna/keymap.c
@@ -39,56 +39,32 @@ enum crkbd_keycodes { RGBRST = NEW_SAFE_RANGE };
39 OS_LSFT, CTL_T(K21), K22, K23, K24, K25, K26, K27, K28, K29, RCTL_T(K2A), OS_RSFT, \ 39 OS_LSFT, CTL_T(K21), K22, K23, K24, K25, K26, K27, K28, K29, RCTL_T(K2A), OS_RSFT, \
40 RGB_MOD, KC_SPC, BK_LWER, DL_RAIS, KC_ENT, OS_RGUI \ 40 RGB_MOD, KC_SPC, BK_LWER, DL_RAIS, KC_ENT, OS_RGUI \
41 ) 41 )
42#define LAYOUT_split_3x6_3_base_wrapper(...) LAYOUT_split_3x6_3_base(__VA_ARGS__) 42#define LAYOUT_base_wrapper(...) LAYOUT_split_3x6_3_base(__VA_ARGS__)
43 43
44const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { 44const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
45 [_QWERTY] = LAYOUT_split_3x6_3_base_wrapper( 45 [_DEFAULT_LAYER_1] = LAYOUT_base_wrapper(
46 _________________QWERTY_L1_________________, _________________QWERTY_R1_________________, 46 _________________QWERTY_L1_________________, _________________QWERTY_R1_________________,
47 _________________QWERTY_L2_________________, _________________QWERTY_R2_________________, 47 _________________QWERTY_L2_________________, _________________QWERTY_R2_________________,
48 _________________QWERTY_L3_________________, _________________QWERTY_R3_________________ 48 _________________QWERTY_L3_________________, _________________QWERTY_R3_________________
49 ), 49 ),
50 50
51 [_COLEMAK] = LAYOUT_split_3x6_3_base_wrapper( 51 [_DEFAULT_LAYER_2] = LAYOUT_base_wrapper(
52 _________________COLEMAK_L1________________, _________________COLEMAK_R1________________, 52 ______________COLEMAK_MOD_DH_L1____________, ______________COLEMAK_MOD_DH_R1____________,
53 _________________COLEMAK_L2________________, _________________COLEMAK_R2________________, 53 ______________COLEMAK_MOD_DH_L2____________, ______________COLEMAK_MOD_DH_R2____________,
54 _________________COLEMAK_L3________________, _________________COLEMAK_R3________________ 54 ______________COLEMAK_MOD_DH_L3____________, ______________COLEMAK_MOD_DH_R3____________
55 ), 55 ),
56 56
57 [_DVORAK] = LAYOUT_split_3x6_3_base_wrapper( 57 [_DEFAULT_LAYER_3] = LAYOUT_base_wrapper(
58 _________________DVORAK_L1_________________, _________________DVORAK_R1_________________, 58 _________________COLEMAK_L1________________, _________________COLEMAK_R1________________,
59 _________________DVORAK_L2_________________, _________________DVORAK_R2_________________, 59 _________________COLEMAK_L2________________, _________________COLEMAK_R2________________,
60 _________________DVORAK_L3_________________, _________________DVORAK_R3_________________ 60 _________________COLEMAK_L3________________, _________________COLEMAK_R3________________
61 ), 61 ),
62 62
63 [_WORKMAN] = LAYOUT_split_3x6_3_base_wrapper( 63 [_DEFAULT_LAYER_4] = LAYOUT_base_wrapper(
64 _________________WORKMAN_L1________________, _________________WORKMAN_R1________________, 64 _________________DVORAK_L1_________________, _________________DVORAK_R1_________________,
65 _________________WORKMAN_L2________________, _________________WORKMAN_R2________________, 65 _________________DVORAK_L2_________________, _________________DVORAK_R2_________________,
66 _________________WORKMAN_L3________________, _________________WORKMAN_R3________________ 66 _________________DVORAK_L3_________________, _________________DVORAK_R3_________________
67 ), 67 ),
68
69 [_NORMAN] = LAYOUT_split_3x6_3_base_wrapper(
70 _________________NORMAN_L1_________________, _________________NORMAN_L1_________________,
71 _________________NORMAN_L2_________________, _________________NORMAN_R2_________________,
72 _________________NORMAN_L3_________________, _________________NORMAN_R3_________________
73 ),
74
75 [_MALTRON] = LAYOUT_split_3x6_3_base_wrapper(
76 _________________MALTRON_L1________________, _________________MALTRON_R1________________,
77 _________________MALTRON_L2________________, _________________MALTRON_R2________________,
78 _________________MALTRON_L3________________, _________________MALTRON_R3________________
79 ),
80
81 [_EUCALYN] = LAYOUT_split_3x6_3_base_wrapper(
82 _________________EUCALYN_L1________________, _________________EUCALYN_R1________________,
83 _________________EUCALYN_L2________________, _________________EUCALYN_R2________________,
84 _________________EUCALYN_L3________________, _________________EUCALYN_R3________________
85 ),
86
87 [_CARPLAX] = LAYOUT_split_3x6_3_base_wrapper(
88 _____________CARPLAX_QFMLWY_L1_____________, _____________CARPLAX_QFMLWY_R1_____________,
89 _____________CARPLAX_QFMLWY_L2_____________, _____________CARPLAX_QFMLWY_R2_____________,
90 _____________CARPLAX_QFMLWY_L3_____________, _____________CARPLAX_QFMLWY_R3_____________
91 ),
92 68
93 [_LOWER] = LAYOUT_split_3x6_3_wrapper( 69 [_LOWER] = LAYOUT_split_3x6_3_wrapper(
94 KC_F11, _________________LOWER_L1__________________, _________________LOWER_R1__________________, KC_F11, 70 KC_F11, _________________LOWER_L1__________________, _________________LOWER_R1__________________, KC_F11,
@@ -114,9 +90,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
114// clang-format on 90// clang-format on
115 91
116#ifdef OLED_DRIVER_ENABLE 92#ifdef OLED_DRIVER_ENABLE
117oled_rotation_t oled_init_keymap(oled_rotation_t rotation) { 93oled_rotation_t oled_init_keymap(oled_rotation_t rotation) { return OLED_ROTATION_270; }
118 return OLED_ROTATION_270;
119}
120#endif 94#endif
121 95
122#ifdef TAPPING_TERM_PER_KEY 96#ifdef TAPPING_TERM_PER_KEY
@@ -130,7 +104,6 @@ uint16_t get_tapping_term(uint16_t keycode, keyrecord_t *record) {
130} 104}
131#endif 105#endif
132 106
133
134void matrix_slave_scan_user(void) { 107void matrix_slave_scan_user(void) {
135#ifdef RGB_MATRIX_ENABLE 108#ifdef RGB_MATRIX_ENABLE
136 rgb_matrix_task(); 109 rgb_matrix_task();
@@ -145,28 +118,16 @@ void suspend_wakeup_init_keymap(void) { rgb_matrix_set_suspend_state(false); }
145void check_default_layer(uint8_t mode, uint8_t type, uint8_t led_min, uint8_t led_max) { 118void check_default_layer(uint8_t mode, uint8_t type, uint8_t led_min, uint8_t led_max) {
146 switch (get_highest_layer(default_layer_state)) { 119 switch (get_highest_layer(default_layer_state)) {
147 case _QWERTY: 120 case _QWERTY:
148 rgb_matrix_layer_helper(HSV_CYAN, mode, rgb_matrix_config.speed, type, led_min, led_max); 121 rgb_matrix_layer_helper(DEFAULT_LAYER_1_HSV, mode, rgb_matrix_config.speed, type, led_min, led_max);
122 break;
123 case _COLEMAK_DH:
124 rgb_matrix_layer_helper(DEFAULT_LAYER_2_HSV, mode, rgb_matrix_config.speed, type, led_min, led_max);
149 break; 125 break;
150 case _COLEMAK: 126 case _COLEMAK:
151 rgb_matrix_layer_helper(HSV_MAGENTA, mode, rgb_matrix_config.speed, type, led_min, led_max); 127 rgb_matrix_layer_helper(DEFAULT_LAYER_3_HSV, mode, rgb_matrix_config.speed, type, led_min, led_max);
152 break; 128 break;
153 case _DVORAK: 129 case _DVORAK:
154 rgb_matrix_layer_helper(HSV_SPRINGGREEN, mode, rgb_matrix_config.speed, type, led_min, led_max); 130 rgb_matrix_layer_helper(DEFAULT_LAYER_4_HSV, mode, rgb_matrix_config.speed, type, led_min, led_max);
155 break;
156 case _WORKMAN:
157 rgb_matrix_layer_helper(HSV_GOLDENROD, mode, rgb_matrix_config.speed, type, led_min, led_max);
158 break;
159 case _NORMAN:
160 rgb_matrix_layer_helper(HSV_CORAL, mode, rgb_matrix_config.speed, type, led_min, led_max);
161 break;
162 case _MALTRON:
163 rgb_matrix_layer_helper(HSV_YELLOW, mode, rgb_matrix_config.speed, type, led_min, led_max);
164 break;
165 case _EUCALYN:
166 rgb_matrix_layer_helper(HSV_PINK, mode, rgb_matrix_config.speed, type, led_min, led_max);
167 break;
168 case _CARPLAX:
169 rgb_matrix_layer_helper(HSV_BLUE, mode, rgb_matrix_config.speed, type, led_min, led_max);
170 break; 131 break;
171 } 132 }
172} 133}
@@ -189,10 +150,11 @@ void rgb_matrix_indicators_advanced_user(uint8_t led_min, uint8_t led_max) {
189 case _ADJUST: 150 case _ADJUST:
190 rgb_matrix_layer_helper(HSV_RED, 0, rgb_matrix_config.speed, LED_FLAG_UNDERGLOW, led_min, led_max); 151 rgb_matrix_layer_helper(HSV_RED, 0, rgb_matrix_config.speed, LED_FLAG_UNDERGLOW, led_min, led_max);
191 break; 152 break;
192 default: { 153 default:
193 check_default_layer(0, LED_FLAG_UNDERGLOW, led_min, led_max); 154 {
194 break; 155 check_default_layer(0, LED_FLAG_UNDERGLOW, led_min, led_max);
195 } 156 break;
157 }
196 } 158 }
197 check_default_layer(0, LED_FLAG_MODIFIER, led_min, led_max); 159 check_default_layer(0, LED_FLAG_MODIFIER, led_min, led_max);
198 } 160 }
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