aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--keyboards/c39/keymaps/drashna/config.h2
-rw-r--r--keyboards/c39/keymaps/drashna/rules.mk2
-rw-r--r--keyboards/keebio/iris/keymaps/drashna/config.h14
-rw-r--r--keyboards/kyria/keymaps/drashna/config.h1
-rw-r--r--keyboards/kyria/keymaps/drashna/keymap.c52
-rw-r--r--keyboards/kyria/keymaps/drashna/rules.mk2
-rw-r--r--layouts/community/ergodox/drashna/config.h15
-rw-r--r--layouts/community/ergodox/drashna/keymap.c41
-rw-r--r--layouts/community/ergodox/drashna/rules.mk17
-rw-r--r--layouts/community/ergodox/drashna_glow/config.h9
-rw-r--r--layouts/community/ergodox/drashna_glow/keymap.c2
-rw-r--r--layouts/community/ergodox/drashna_glow/rules.mk13
-rw-r--r--layouts/community/ortho_4x12/drashna/keymap.c13
-rw-r--r--layouts/community/ortho_4x12/drashna/rules.mk20
-rw-r--r--layouts/community/ortho_5x12/drashna/rules.mk1
-rw-r--r--users/drashna/drashna.c6
-rw-r--r--users/drashna/process_records.c8
-rw-r--r--users/drashna/rgb_stuff.c173
-rw-r--r--users/drashna/rules.mk6
19 files changed, 276 insertions, 121 deletions
diff --git a/keyboards/c39/keymaps/drashna/config.h b/keyboards/c39/keymaps/drashna/config.h
index 5d53fe54b..789b7cc14 100644
--- a/keyboards/c39/keymaps/drashna/config.h
+++ b/keyboards/c39/keymaps/drashna/config.h
@@ -10,3 +10,5 @@
10 10
11#define RGB_DI_PIN B10 11#define RGB_DI_PIN B10
12#define RGBLED_NUM 15 12#define RGBLED_NUM 15
13
14#define SOLENOID_PIN B11
diff --git a/keyboards/c39/keymaps/drashna/rules.mk b/keyboards/c39/keymaps/drashna/rules.mk
index d216f6abe..6ebd15a18 100644
--- a/keyboards/c39/keymaps/drashna/rules.mk
+++ b/keyboards/c39/keymaps/drashna/rules.mk
@@ -18,3 +18,5 @@ AUDIO_ENABLE = yes # Audio output on port C6
18RGBLIGHT_ENABLE = yes # RGB Enable / Disable 18RGBLIGHT_ENABLE = yes # RGB Enable / Disable
19 19
20RGBLIGHT_STARTUP_ANIMATION = yes 20RGBLIGHT_STARTUP_ANIMATION = yes
21
22HAPTIC_ENABLE = SOLENOID
diff --git a/keyboards/keebio/iris/keymaps/drashna/config.h b/keyboards/keebio/iris/keymaps/drashna/config.h
index 25678bd67..49381b60a 100644
--- a/keyboards/keebio/iris/keymaps/drashna/config.h
+++ b/keyboards/keebio/iris/keymaps/drashna/config.h
@@ -46,11 +46,13 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
46#ifdef AUDIO_ENABLE 46#ifdef AUDIO_ENABLE
47# define C6_AUDIO 47# define C6_AUDIO
48# ifdef RGBLIGHT_ENABLE 48# ifdef RGBLIGHT_ENABLE
49# define NO_MUSIC_MODE 49# ifndef __arm__
50# define NO_MUSIC_MODE
51# endif
50# endif // RGBLIGHT_ENABLE 52# endif // RGBLIGHT_ENABLE
51#endif // AUDIO_ENABLE 53#endif // AUDIO_ENABLE
52 54
53#ifndef KEYBOARD_keebio_iris_rev3 55#if defined(KEYBOARD_keebio_iris_rev1) || defined(KEYBOARD_keebio_iris_rev2)
54# define QMK_ESC_OUTPUT F6 // usually COL 56# define QMK_ESC_OUTPUT F6 // usually COL
55# define QMK_ESC_INPUT D7 // usually ROW 57# define QMK_ESC_INPUT D7 // usually ROW
56# define QMK_LED B0 58# define QMK_LED B0
@@ -58,10 +60,12 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
58#endif 60#endif
59 61
60#undef PRODUCT 62#undef PRODUCT
61#ifdef KEYBOARD_keebio_iris_rev2 63#if defined(KEYBOARD_keebio_iris_rev2)
62# define PRODUCT Drashna Hacked Iris Rev .2 64# define PRODUCT Drashna Hacked Iris Rev 2
63#elif defined(KEYBOARD_keebio_iris_rev3) 65#elif defined(KEYBOARD_keebio_iris_rev3)
64# define PRODUCT Drashna Hacked Iris Rev .3 66# define PRODUCT Drashna Hacked Iris Rev 3
67#elif defined(KEYBOARD_keebio_iris_rev4)
68# define PRODUCT Drashna Hacked Iris Rev 4
65#endif 69#endif
66 70
67#define SHFT_LED1 6 71#define SHFT_LED1 6
diff --git a/keyboards/kyria/keymaps/drashna/config.h b/keyboards/kyria/keymaps/drashna/config.h
index 83d6283f5..e566b16d5 100644
--- a/keyboards/kyria/keymaps/drashna/config.h
+++ b/keyboards/kyria/keymaps/drashna/config.h
@@ -31,6 +31,7 @@
31# define RGBLIGHT_HUE_STEP 8 31# define RGBLIGHT_HUE_STEP 8
32# define RGBLIGHT_SAT_STEP 8 32# define RGBLIGHT_SAT_STEP 8
33# define RGBLIGHT_VAL_STEP 8 33# define RGBLIGHT_VAL_STEP 8
34# define RGBLIGHT_SPLIT
34#endif 35#endif
35 36
36// If you are using an Elite C rev3 on the slave side, uncomment the lines below: 37// If you are using an Elite C rev3 on the slave side, uncomment the lines below:
diff --git a/keyboards/kyria/keymaps/drashna/keymap.c b/keyboards/kyria/keymaps/drashna/keymap.c
index bdb00e596..5604f1a69 100644
--- a/keyboards/kyria/keymaps/drashna/keymap.c
+++ b/keyboards/kyria/keymaps/drashna/keymap.c
@@ -52,7 +52,7 @@ void add_keylog(uint16_t keycode);
52 LAYOUT_wrapper( \ 52 LAYOUT_wrapper( \
53 KC_ESC, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, KC_MINS, \ 53 KC_ESC, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, KC_MINS, \
54 LALT_T(KC_TAB), K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, RALT_T(KC_QUOT), \ 54 LALT_T(KC_TAB), K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, RALT_T(KC_QUOT), \
55 OS_LSFT, CTL_T(K21), K22, K23, K24, K25, KC_NO, KC_NO, KC_NO, KC_NO, K26, K27, K28, K29, RCTL_T(K2A), OS_RSFT, \ 55 OS_LSFT, CTL_T(K21), K22, K23, K24, K25, KC_NO, KC_NO, MEH(KC_MINS), KC_NO, K26, K27, K28, K29, RCTL_T(K2A), OS_RSFT, \
56 KC_MUTE, OS_LALT, KC_GRV, KC_SPC, BK_LWER, DL_RAIS, KC_ENT, OS_RGUI, UC(0x03A8), UC(0x2E2E) \ 56 KC_MUTE, OS_LALT, KC_GRV, KC_SPC, BK_LWER, DL_RAIS, KC_ENT, OS_RGUI, UC(0x03A8), UC(0x2E2E) \
57 ) 57 )
58/* Re-pass though to allow templates to be used */ 58/* Re-pass though to allow templates to be used */
@@ -191,30 +191,14 @@ void render_keylogger_status(void) {
191void render_default_layer_state(void) { 191void render_default_layer_state(void) {
192 oled_write_P(PSTR("Layout: "), false); 192 oled_write_P(PSTR("Layout: "), false);
193 switch (get_highest_layer(default_layer_state)) { 193 switch (get_highest_layer(default_layer_state)) {
194 case _QWERTY: 194 case _QWERTY: oled_write_ln_P(PSTR("Qwerty"), false); break;
195 oled_write_ln_P(PSTR("Qwerty "), false); 195 case _COLEMAK: oled_write_ln_P(PSTR("Colemak"), false); break;
196 break; 196 case _DVORAK: oled_write_ln_P(PSTR("Dvorak"), false); break;
197 case _COLEMAK: 197 case _WORKMAN: oled_write_ln_P(PSTR("Workman"), false); break;
198 oled_write_ln_P(PSTR("Colemak"), false); 198 case _NORMAN: oled_write_ln_P(PSTR("Norman"), false); break;
199 break; 199 case _MALTRON: oled_write_ln_P(PSTR("Maltron"), false); break;
200 case _DVORAK: 200 case _EUCALYN: oled_write_ln_P(PSTR("Eucalyn"), false); break;
201 oled_write_ln_P(PSTR("Dvorak"), false); 201 case _CARPLAX: oled_write_ln_P(PSTR("Carplax"), false); break;
202 break;
203 case _WORKMAN:
204 oled_write_ln_P(PSTR("Workman"), false);
205 break;
206 case _NORMAN:
207 oled_write_ln_P(PSTR("Norman"), false);
208 break;
209 case _MALTRON:
210 oled_write_ln_P(PSTR("Maltron"), false);
211 break;
212 case _EUCALYN:
213 oled_write_ln_P(PSTR("Eucalyn"), false);
214 break;
215 case _CARPLAX:
216 oled_write_ln_P(PSTR("Carplax"), false);
217 break;
218 } 202 }
219} 203}
220 204
@@ -230,11 +214,11 @@ void render_layer_state(void) {
230 214
231void render_keylock_status(uint8_t led_usb_state) { 215void render_keylock_status(uint8_t led_usb_state) {
232 oled_write_P(PSTR("Lock: "), false); 216 oled_write_P(PSTR("Lock: "), false);
233 oled_write_P(PSTR("NUM"), led_usb_state & (1 << USB_LED_NUM_LOCK)); 217 oled_write_P(PSTR("NUML"), led_usb_state & (1 << USB_LED_NUM_LOCK));
234 oled_write_P(PSTR(" "), false); 218 oled_write_P(PSTR(" "), false);
235 oled_write_P(PSTR("CAPS"), led_usb_state & (1 << USB_LED_CAPS_LOCK)); 219 oled_write_P(PSTR("CAPS"), led_usb_state & (1 << USB_LED_CAPS_LOCK));
236 oled_write_P(PSTR(" "), false); 220 oled_write_P(PSTR(" "), false);
237 oled_write_ln_P(PSTR("SCL"), led_usb_state & (1 << USB_LED_SCROLL_LOCK)); 221 oled_write_ln_P(PSTR("SCLK"), led_usb_state & (1 << USB_LED_SCROLL_LOCK));
238} 222}
239 223
240void render_mod_status(uint8_t modifiers) { 224void render_mod_status(uint8_t modifiers) {
@@ -255,15 +239,21 @@ void render_bootmagic_status(void) {
255 {{0x95, 0x96, 0}, {0xb5, 0xb6, 0}}, 239 {{0x95, 0x96, 0}, {0xb5, 0xb6, 0}},
256 }; 240 };
257 oled_write_P(PSTR("Boot "), false); 241 oled_write_P(PSTR("Boot "), false);
258 oled_write_P(logo[0][0], !keymap_config.swap_lctl_lgui); 242 if (keymap_config.swap_lctl_lgui) {
259 oled_write_P(logo[1][0], keymap_config.swap_lctl_lgui); 243 oled_write_P(logo[1][0], false);
244 } else {
245 oled_write_P(logo[0][0], false);
246 }
260 oled_write_P(PSTR(" "), false); 247 oled_write_P(PSTR(" "), false);
261 oled_write_P(PSTR("NKRO"), keymap_config.nkro); 248 oled_write_P(PSTR("NKRO"), keymap_config.nkro);
262 oled_write_P(PSTR(" "), false); 249 oled_write_P(PSTR(" "), false);
263 oled_write_ln_P(PSTR("GUI"), !keymap_config.no_gui); 250 oled_write_ln_P(PSTR("GUI"), !keymap_config.no_gui);
264 oled_write_P(PSTR("Magic "), false); 251 oled_write_P(PSTR("Magic "), false);
265 oled_write_P(logo[0][1], !keymap_config.swap_lctl_lgui); 252 if (keymap_config.swap_lctl_lgui) {
266 oled_write_P(logo[1][1], keymap_config.swap_lctl_lgui); 253 oled_write_P(logo[1][1], false);
254 } else {
255 oled_write_P(logo[0][1], false);
256 }
267 oled_write_P(PSTR(" "), false); 257 oled_write_P(PSTR(" "), false);
268 oled_write_P(PSTR("GRV"), keymap_config.swap_grave_esc); 258 oled_write_P(PSTR("GRV"), keymap_config.swap_grave_esc);
269 oled_write_P(PSTR(" "), false); 259 oled_write_P(PSTR(" "), false);
diff --git a/keyboards/kyria/keymaps/drashna/rules.mk b/keyboards/kyria/keymaps/drashna/rules.mk
index c1a37f5c5..e835340bb 100644
--- a/keyboards/kyria/keymaps/drashna/rules.mk
+++ b/keyboards/kyria/keymaps/drashna/rules.mk
@@ -1,7 +1,7 @@
1OLED_DRIVER_ENABLE = yes # Enables the use of OLED displays 1OLED_DRIVER_ENABLE = yes # Enables the use of OLED displays
2ENCODER_ENABLE = yes # ENables the use of one or more encoders 2ENCODER_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 = yes 4RGBLIGHT_STARTUP_ANIMATION = no
5 5
6BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration 6BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration
7MOUSEKEY_ENABLE = no # Mouse keys 7MOUSEKEY_ENABLE = no # Mouse keys
diff --git a/layouts/community/ergodox/drashna/config.h b/layouts/community/ergodox/drashna/config.h
index 0091ebcde..ce25b0646 100644
--- a/layouts/community/ergodox/drashna/config.h
+++ b/layouts/community/ergodox/drashna/config.h
@@ -6,10 +6,13 @@
6 6
7# define RGBLIGHT_EFFECT_KNIGHT_LENGTH 3 7# define RGBLIGHT_EFFECT_KNIGHT_LENGTH 3
8# define RGBLIGHT_EFFECT_SNAKE_LENGTH 3 8# define RGBLIGHT_EFFECT_SNAKE_LENGTH 3
9# ifdef RGB_MATRIX_ENABLE
10# define RGBLIGHT_DISABLE_KEYCODES
11# endif
9#endif // RGBLIGHT_ENABLE 12#endif // RGBLIGHT_ENABLE
10 13
11#undef PRODUCT 14#undef PRODUCT
12#define PRODUCT DrashnaDox - Hacked ErgoDox EZ Shine 15#define PRODUCT DrashnaDox - Hacked ErgoDox EZ Hybrid Monstrosity
13 16
14#undef DEBOUNCE 17#undef DEBOUNCE
15#define DEBOUNCE 30 18#define DEBOUNCE 30
@@ -17,3 +20,13 @@
17#define TAPPING_TERM_PER_KEY 20#define TAPPING_TERM_PER_KEY
18 21
19#define ERGODOX_LED_30 22#define ERGODOX_LED_30
23
24#ifdef RGB_MATRIX_ENABLE
25# undef RGB_MATRIX_LED_PROCESS_LIMIT
26# undef RGB_MATRIX_LED_FLUSH_LIMIT
27# if defined(RGBLIGHT_ENABLE) && defined(RGB_MATRIX_ENABLE)
28# define RGBLIGHT_LIMIT_VAL 175
29# define RGB_MATRIX_MAXIMUM_BRIGHTNESS (RGBLIGHT_LIMIT_VAL + 25)
30# undef RGBLIGHT_SLEEP
31# endif
32#endif
diff --git a/layouts/community/ergodox/drashna/keymap.c b/layouts/community/ergodox/drashna/keymap.c
index 8308bfdaa..69066a47c 100644
--- a/layouts/community/ergodox/drashna/keymap.c
+++ b/layouts/community/ergodox/drashna/keymap.c
@@ -280,7 +280,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
280 ), 280 ),
281 281
282 [_ADJUST] = LAYOUT_ergodox_pretty_wrapper( 282 [_ADJUST] = LAYOUT_ergodox_pretty_wrapper(
283 KC_MAKE, _______, _______, _______, _______, _______, _______, KC_NUKE, _________________ADJUST_R1_________________, KC_RST, 283 KC_MAKE, _______, _______, _______, _______, _______, UC_MOD, KC_NUKE, _________________ADJUST_R1_________________, KC_RST,
284 VRSN, _________________ADJUST_L1_________________, _______, _______, _______, _______, _______, _______, _______, EEP_RST, 284 VRSN, _________________ADJUST_L1_________________, _______, _______, _______, _______, _______, _______, _______, EEP_RST,
285 _______, _________________ADJUST_L2_________________, _________________ADJUST_R2_________________, RGB_IDL, 285 _______, _________________ADJUST_L2_________________, _________________ADJUST_R2_________________, RGB_IDL,
286 _______, _________________ADJUST_L3_________________, _______, _______, _________________ADJUST_R3_________________, TG(_MODS), 286 _______, _________________ADJUST_L3_________________, _______, _______, _________________ADJUST_R3_________________, TG(_MODS),
@@ -382,31 +382,32 @@ void suspend_power_down_keymap(void) { rgb_matrix_set_suspend_state(true); }
382void suspend_wakeup_init_keymap(void) { rgb_matrix_set_suspend_state(false); } 382void suspend_wakeup_init_keymap(void) { rgb_matrix_set_suspend_state(false); }
383 383
384void rgb_matrix_indicators_user(void) { 384void rgb_matrix_indicators_user(void) {
385 if (userspace_config.rgb_layer_change && 385 if (g_suspend_state || !rgb_matrix_config.enable) return;
386# ifdef RGB_DISABLE_WHEN_USB_SUSPENDED 386
387 !g_suspend_state && 387 if (layer_state_is(_GAMEPAD)) {
388# endif 388 rgb_matrix_set_color(32, 0x00, 0xFF, 0x00); // Q
389 rgb_matrix_set_color(31, 0x00, 0xFF, 0xFF); // W
390 rgb_matrix_set_color(30, 0xFF, 0x00, 0x00); // E
391 rgb_matrix_set_color(29, 0xFF, 0x80, 0x00); // R
392 rgb_matrix_set_color(37, 0x00, 0xFF, 0xFF); // A
393 rgb_matrix_set_color(36, 0x00, 0xFF, 0xFF); // S
394 rgb_matrix_set_color(35, 0x00, 0xFF, 0xFF); // D
395 rgb_matrix_set_color(34, 0x7A, 0x00, 0xFF); // F
396
397 rgb_matrix_set_color(userspace_config.swapped_numbers ? 27 : 26, 0xFF, 0xFF, 0xFF); // 1
398 rgb_matrix_set_color(userspace_config.swapped_numbers ? 26 : 27, 0x00, 0xFF, 0x00); // 2
399 rgb_matrix_set_color(25, 0x7A, 0x00, 0xFF); // 3
400 }
401
389# if defined(RGBLIGHT_ENABLE) 402# if defined(RGBLIGHT_ENABLE)
390 (!rgblight_config.enable && rgb_matrix_config.enable) 403 if (!userspace_config.rgb_layer_change)
391# else 404# else
392 rgb_matrix_config.enable 405 if (userspace_config.rgb_layer_change)
393# endif 406# endif
394 ) { 407 {
395 switch (get_highest_layer(layer_state)) { 408 switch (get_highest_layer(layer_state)) {
396 case _GAMEPAD: 409 case _GAMEPAD:
397 rgb_matrix_layer_helper(HSV_ORANGE, 1, rgb_matrix_config.speed, LED_FLAG_MODIFIER); 410 rgb_matrix_layer_helper(HSV_ORANGE, 1, rgb_matrix_config.speed, LED_FLAG_MODIFIER);
398 rgb_matrix_set_color(32, 0x00, 0xFF, 0x00); // Q
399 rgb_matrix_set_color(31, 0x00, 0xFF, 0xFF); // W
400 rgb_matrix_set_color(30, 0xFF, 0x00, 0x00); // E
401 rgb_matrix_set_color(29, 0xFF, 0x80, 0x00); // R
402 rgb_matrix_set_color(37, 0x00, 0xFF, 0xFF); // A
403 rgb_matrix_set_color(36, 0x00, 0xFF, 0xFF); // S
404 rgb_matrix_set_color(35, 0x00, 0xFF, 0xFF); // D
405 rgb_matrix_set_color(34, 0x7A, 0x00, 0xFF); // F
406
407 rgb_matrix_set_color(userspace_config.swapped_numbers ? 27 : 26, 0xFF, 0xFF, 0xFF); // 1
408 rgb_matrix_set_color(userspace_config.swapped_numbers ? 26 : 27, 0x00, 0xFF, 0x00); // 2
409 rgb_matrix_set_color(25, 0x7A, 0x00, 0xFF); // 3
410 break; 411 break;
411 case _DIABLO: 412 case _DIABLO:
412 rgb_matrix_layer_helper(HSV_RED, 1, rgb_matrix_config.speed * 8, LED_FLAG_MODIFIER); 413 rgb_matrix_layer_helper(HSV_RED, 1, rgb_matrix_config.speed * 8, LED_FLAG_MODIFIER);
diff --git a/layouts/community/ergodox/drashna/rules.mk b/layouts/community/ergodox/drashna/rules.mk
index 3aee59df6..78a3d1584 100644
--- a/layouts/community/ergodox/drashna/rules.mk
+++ b/layouts/community/ergodox/drashna/rules.mk
@@ -1,19 +1,20 @@
1TAP_DANCE_ENABLE = yes 1BOOTMAGIC_ENABLE = lite
2TAP_DANCE_ENABLE = no
2SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend 3SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
3COMMAND_ENABLE = no # Commands for debug and configuration 4COMMAND_ENABLE = no # Commands for debug and configuration
5CONSOLE_ENABLE = no
4SPACE_CADET_ENABLE = no 6SPACE_CADET_ENABLE = no
7
5ifeq ($(strip $(KEYBOARD)), ergodox_ez) 8ifeq ($(strip $(KEYBOARD)), ergodox_ez)
6 RGBLIGHT_ENABLE = yes 9 RGBLIGHT_ENABLE = yes
7 RGB_MATRIX_ENABLE = no 10 RGB_MATRIX_ENABLE = yes
11 RGBLIGHT_TWINKLE = no
12 INDICATOR_LIGHTS = no
13 RGBLIGHT_STARTUP_ANIMATION = no
8endif 14endif
9CONSOLE_ENABLE = no
10BOOTMAGIC_ENABLE = yes
11 15
12UNICODE_ENABLE = yes 16UNICODE_ENABLE = yes
13UNICDOEMAP_ENABLE = no 17UNICDOEMAP_ENABLE = no
14 18
15RGBLIGHT_TWINKLE = no
16INDICATOR_LIGHTS = no
17RGBLIGHT_STARTUP_ANIMATION = yes
18 19
19DEBOUNCE_TYPE = eager_pr 20DEBOUNCE_TYPE = eager_pr
diff --git a/layouts/community/ergodox/drashna_glow/config.h b/layouts/community/ergodox/drashna_glow/config.h
deleted file mode 100644
index 6431cb4ff..000000000
--- a/layouts/community/ergodox/drashna_glow/config.h
+++ /dev/null
@@ -1,9 +0,0 @@
1#pragma once
2
3#include "../drashna/config.h"
4
5#undef PRODUCT
6#define PRODUCT DrashnaDox - Hacked ErgoDox EZ Glow
7
8#undef RGB_MATRIX_LED_PROCESS_LIMIT
9#undef RGB_MATRIX_LED_FLUSH_LIMIT
diff --git a/layouts/community/ergodox/drashna_glow/keymap.c b/layouts/community/ergodox/drashna_glow/keymap.c
deleted file mode 100644
index 7d4bdbec5..000000000
--- a/layouts/community/ergodox/drashna_glow/keymap.c
+++ /dev/null
@@ -1,2 +0,0 @@
1/* placeholder file */
2#include QMK_KEYBOARD_H
diff --git a/layouts/community/ergodox/drashna_glow/rules.mk b/layouts/community/ergodox/drashna_glow/rules.mk
deleted file mode 100644
index 45addc7c2..000000000
--- a/layouts/community/ergodox/drashna_glow/rules.mk
+++ /dev/null
@@ -1,13 +0,0 @@
1USER_NAME := drashna
2
3CORRECTED_LAYOUT := $(LAYOUTS_REPO)/$(LAYOUT)/drashna
4
5SRC += $(CORRECTED_LAYOUT)/keymap.c
6
7-include $(CORRECTED_LAYOUT)/rules.mk
8
9ifeq ($(strip $(KEYBOARD)), ergodox_ez)
10 RGBLIGHT_ENABLE = no
11 RGB_MATRIX_ENABLE = yes
12# TAP_DANCE_ENABLE = no
13endif
diff --git a/layouts/community/ortho_4x12/drashna/keymap.c b/layouts/community/ortho_4x12/drashna/keymap.c
index c3899cd03..d2957d8fd 100644
--- a/layouts/community/ortho_4x12/drashna/keymap.c
+++ b/layouts/community/ortho_4x12/drashna/keymap.c
@@ -224,16 +224,14 @@ void rgb_matrix_indicators_user(void) {
224 is_ez = true; 224 is_ez = true;
225# endif 225# endif
226 226
227 if (userspace_config.rgb_layer_change && 227 if (g_suspend_state || !rgb_matrix_config.enable) return;
228# ifdef RGB_DISABLE_WHEN_USB_SUSPENDED 228
229 !g_suspend_state &&
230# endif
231# if defined(RGBLIGHT_ENABLE) 229# if defined(RGBLIGHT_ENABLE)
232 (!rgblight_config.enable && rgb_matrix_config.enable) 230 if (!userspace_config.rgb_layer_change)
233# else 231# else
234 rgb_matrix_config.enable 232 if (userspace_config.rgb_layer_change)
235# endif 233# endif
236 ) { 234 {
237 switch (get_highest_layer(layer_state)) { 235 switch (get_highest_layer(layer_state)) {
238 case _GAMEPAD: 236 case _GAMEPAD:
239 rgb_matrix_layer_helper(HSV_ORANGE, 1, rgb_matrix_config.speed, LED_FLAG_MODIFIER); 237 rgb_matrix_layer_helper(HSV_ORANGE, 1, rgb_matrix_config.speed, LED_FLAG_MODIFIER);
@@ -297,6 +295,7 @@ void rgb_matrix_indicators_user(void) {
297 rgb_matrix_set_color(is_ez ? 41 : 42, 0xD9, 0xA5, 0x21); 295 rgb_matrix_set_color(is_ez ? 41 : 42, 0xD9, 0xA5, 0x21);
298 break; 296 break;
299 } 297 }
298
300 if ((this_mod | this_osm) & MOD_MASK_SHIFT || this_led & (1 << USB_LED_CAPS_LOCK)) { 299 if ((this_mod | this_osm) & MOD_MASK_SHIFT || this_led & (1 << USB_LED_CAPS_LOCK)) {
301 if (!layer_state_cmp(layer_state, _ADJUST)) { 300 if (!layer_state_cmp(layer_state, _ADJUST)) {
302 rgb_matrix_set_color(24, 0x00, 0xFF, 0x00); 301 rgb_matrix_set_color(24, 0x00, 0xFF, 0x00);
diff --git a/layouts/community/ortho_4x12/drashna/rules.mk b/layouts/community/ortho_4x12/drashna/rules.mk
index 38d0d4517..e4fe90534 100644
--- a/layouts/community/ortho_4x12/drashna/rules.mk
+++ b/layouts/community/ortho_4x12/drashna/rules.mk
@@ -2,7 +2,6 @@ BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration(+1000)
2MOUSEKEY_ENABLE = no # Mouse keys(+4700) 2MOUSEKEY_ENABLE = no # Mouse keys(+4700)
3EXTRAKEY_ENABLE = yes # Audio control and System control(+450) 3EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
4TAP_DANCE_ENABLE = no 4TAP_DANCE_ENABLE = no
5AUDIO_ENABLE = yes
6SPACE_CADET_ENABLE = no 5SPACE_CADET_ENABLE = no
7NKRO_ENABLE = yes 6NKRO_ENABLE = yes
8 7
@@ -11,20 +10,22 @@ ifneq ($(strip $(KEYBOARD)), planck/rev6)
11 COMMAND_ENABLE = no 10 COMMAND_ENABLE = no
12 ifeq ($(strip $(LAYOUT_HAS_RGB)), yes) 11 ifeq ($(strip $(LAYOUT_HAS_RGB)), yes)
13 RGBLIGHT_ENABLE = yes 12 RGBLIGHT_ENABLE = yes
14 endif 13 INDICATOR_LIGHTS = yes
15 INDICATOR_LIGHTS = yes 14 RGBLIGHT_TWINKLE = yes
16 RGBLIGHT_TWINKLE = yes 15 RGBLIGHT_STARTUP_ANIMATION = yes
17 RGBLIGHT_STARTUP_ANIMATION = yes 16 endif
18else 17else
19 CONSOLE_ENABLE = yes 18 CONSOLE_ENABLE = yes
20 COMMAND_ENABLE = yes 19 COMMAND_ENABLE = yes
21 RGBLIGHT_ENABLE = no 20 RGBLIGHT_ENABLE = yes
22 RGB_MATRIX_ENABLE = WS2812 21 RGB_MATRIX_ENABLE = no
22 AUDIO_ENABLE = yes
23endif 23endif
24ifeq ($(strip $(KEYBOARD)), planck/light) 24ifeq ($(strip $(KEYBOARD)), planck/light)
25 RGB_MATRIX_ENABLE = yes 25 RGB_MATRIX_ENABLE = yes
26 RGBLIGHT_ENABLE = no 26 RGBLIGHT_ENABLE = yes
27 RGBLIGHT_STARTUP_ANIMATION = no 27 RGBLIGHT_STARTUP_ANIMATION = yes
28 AUDIO_ENABLE = yes
28 # HAPTIC_ENABLE += SOLENOID 29 # HAPTIC_ENABLE += SOLENOID
29endif 30endif
30ifeq ($(strip $(KEYBOARD)), planck/ez) 31ifeq ($(strip $(KEYBOARD)), planck/ez)
@@ -37,4 +38,5 @@ ifeq ($(strip $(KEYBOARD)), planck/ez)
37 RGBLIGHT_STARTUP_ANIMATION = yes 38 RGBLIGHT_STARTUP_ANIMATION = yes
38 CONSOLE_ENABLE = yes 39 CONSOLE_ENABLE = yes
39 COMMAND_ENABLE = yes 40 COMMAND_ENABLE = yes
41 AUDIO_ENABLE = yes
40endif 42endif
diff --git a/layouts/community/ortho_5x12/drashna/rules.mk b/layouts/community/ortho_5x12/drashna/rules.mk
index cae4b27ba..b5d55a681 100644
--- a/layouts/community/ortho_5x12/drashna/rules.mk
+++ b/layouts/community/ortho_5x12/drashna/rules.mk
@@ -4,7 +4,6 @@ EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
4CONSOLE_ENABLE = no # Console for debug(+400) 4CONSOLE_ENABLE = no # Console for debug(+400)
5COMMAND_ENABLE = no # Commands for debug and configuration 5COMMAND_ENABLE = no # Commands for debug and configuration
6TAP_DANCE_ENABLE = no 6TAP_DANCE_ENABLE = no
7AUDIO_ENABLE = yes
8NKRO_ENABLE = yes 7NKRO_ENABLE = yes
9 8
10ifeq ($(strip $(KEYBOARD)), fractal) 9ifeq ($(strip $(KEYBOARD)), fractal)
diff --git a/users/drashna/drashna.c b/users/drashna/drashna.c
index 71779a621..1a4ee9b41 100644
--- a/users/drashna/drashna.c
+++ b/users/drashna/drashna.c
@@ -121,9 +121,13 @@ void shutdown_user(void) {
121 rgblight_setrgb_red(); 121 rgblight_setrgb_red();
122#endif // RGBLIGHT_ENABLE 122#endif // RGBLIGHT_ENABLE
123#ifdef RGB_MATRIX_ENABLE 123#ifdef RGB_MATRIX_ENABLE
124# ifdef __AVR__
124 rgb_matrix_set_color_all(0xFF, 0x00, 0x00); 125 rgb_matrix_set_color_all(0xFF, 0x00, 0x00);
125 rgb_matrix_update_pwm_buffers(); 126 rgb_matrix_update_pwm_buffers();
126 127# else
128 rgb_matrix_sethsv_noeeprom(0, 255, 255);
129 rgb_matrix_mode_noeeprom(1);
130# endif
127#endif // RGB_MATRIX_ENABLE 131#endif // RGB_MATRIX_ENABLE
128 shutdown_keymap(); 132 shutdown_keymap();
129} 133}
diff --git a/users/drashna/process_records.c b/users/drashna/process_records.c
index 2f79ad11c..af3ee9cf0 100644
--- a/users/drashna/process_records.c
+++ b/users/drashna/process_records.c
@@ -80,13 +80,9 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
80 copy_paste_timer = timer_read(); 80 copy_paste_timer = timer_read();
81 } else { 81 } else {
82 if (timer_elapsed(copy_paste_timer) > TAPPING_TERM) { // Hold, copy 82 if (timer_elapsed(copy_paste_timer) > TAPPING_TERM) { // Hold, copy
83 register_code(KC_LCTL); 83 tap_code16(LCTL(KC_C));
84 tap_code(KC_C);
85 unregister_code(KC_LCTL);
86 } else { // Tap, paste 84 } else { // Tap, paste
87 register_code(KC_LCTL); 85 tap_code16(LCTL(KC_V));
88 tap_code(KC_V);
89 unregister_code(KC_LCTL);
90 } 86 }
91 } 87 }
92 break; 88 break;
diff --git a/users/drashna/rgb_stuff.c b/users/drashna/rgb_stuff.c
index 52ec61c22..e7247f754 100644
--- a/users/drashna/rgb_stuff.c
+++ b/users/drashna/rgb_stuff.c
@@ -147,6 +147,7 @@ bool rgblight_twinkle_is_led_used(uint8_t index) {
147/* Handler for fading/twinkling effect */ 147/* Handler for fading/twinkling effect */
148void scan_rgblight_fadeout(void) { // Don't effing change this function .... rgblight_sethsv is supppppper intensive 148void scan_rgblight_fadeout(void) { // Don't effing change this function .... rgblight_sethsv is supppppper intensive
149 bool litup = false; 149 bool litup = false;
150
150 for (uint8_t light_index = 0; light_index < RGBLED_NUM; ++light_index) { 151 for (uint8_t light_index = 0; light_index < RGBLED_NUM; ++light_index) {
151 if (lights[light_index].enabled && timer_elapsed(lights[light_index].timer) > 10) { 152 if (lights[light_index].enabled && timer_elapsed(lights[light_index].timer) > 10) {
152 rgblight_fadeout *light = &lights[light_index]; 153 rgblight_fadeout *light = &lights[light_index];
@@ -179,6 +180,7 @@ void start_rgb_light(void) {
179 uint8_t indices_count = 0; 180 uint8_t indices_count = 0;
180 uint8_t min_life = 0xFF; 181 uint8_t min_life = 0xFF;
181 uint8_t min_life_index = -1; 182 uint8_t min_life_index = -1;
183
182 for (uint8_t index = 0; index < RGBLED_NUM; ++index) { 184 for (uint8_t index = 0; index < RGBLED_NUM; ++index) {
183 if (rgblight_twinkle_is_led_used(index)) { 185 if (rgblight_twinkle_is_led_used(index)) {
184 continue; 186 continue;
@@ -248,7 +250,14 @@ bool process_record_user_rgb(uint16_t keycode, keyrecord_t *record) {
248 dprintf("rgblight layer change [EEPROM]: %u\n", userspace_config.rgb_layer_change); 250 dprintf("rgblight layer change [EEPROM]: %u\n", userspace_config.rgb_layer_change);
249 eeconfig_update_user(userspace_config.raw); 251 eeconfig_update_user(userspace_config.raw);
250 if (userspace_config.rgb_layer_change) { 252 if (userspace_config.rgb_layer_change) {
253# if defined(RGBLIGHT_ENABLE) && defined(RGB_MATRIX_ENABLE)
254 rgblight_enable_noeeprom();
255# endif
251 layer_state_set(layer_state); // This is needed to immediately set the layer color (looks better) 256 layer_state_set(layer_state); // This is needed to immediately set the layer color (looks better)
257# if defined(RGBLIGHT_ENABLE) && defined(RGB_MATRIX_ENABLE)
258 } else {
259 rgblight_disable_noeeprom();
260# endif
252 } 261 }
253 } 262 }
254#endif // RGBLIGHT_ENABLE 263#endif // RGBLIGHT_ENABLE
@@ -265,28 +274,182 @@ bool process_record_user_rgb(uint16_t keycode, keyrecord_t *record) {
265 } 274 }
266#endif 275#endif
267 break; 276 break;
277#if defined(RGBLIGHT_ENABLE) || defined(RGB_MATRIX_ENABLE)
278 case RGB_TOG:
279 // Split keyboards need to trigger on key-up for edge-case issue
280# ifndef SPLIT_KEYBOARD
281 if (record->event.pressed) {
282# else
283 if (!record->event.pressed) {
284# endif
285# if defined(RGBLIGHT_ENABLE) && !defined(RGBLIGHT_DISABLE_KEYCODES)
286 rgblight_toggle();
287# endif
288# if defined(RGB_MATRIX_ENABLE) && !defined(RGB_MATRIX_DISABLE_KEYCODES)
289 rgb_matrix_toggle();
290# endif
291 }
292 return false;
293 break;
268 case RGB_MODE_FORWARD ... RGB_MODE_GRADIENT: // quantum_keycodes.h L400 for definitions 294 case RGB_MODE_FORWARD ... RGB_MODE_GRADIENT: // quantum_keycodes.h L400 for definitions
269 if (record->event.pressed) { 295 if (record->event.pressed) {
270 bool is_eeprom_updated = false; 296 bool is_eeprom_updated;
271#ifdef RGBLIGHT_ENABLE 297# if defined(RGBLIGHT_ENABLE) && !defined(RGBLIGHT_DISABLE_KEYCODES)
272 // This disables layer indication, as it's assumed that if you're changing this ... you want that disabled 298 // This disables layer indication, as it's assumed that if you're changing this ... you want that disabled
273 if (userspace_config.rgb_layer_change) { 299 if (userspace_config.rgb_layer_change) {
274 userspace_config.rgb_layer_change = false; 300 userspace_config.rgb_layer_change = false;
275 dprintf("rgblight layer change [EEPROM]: %u\n", userspace_config.rgb_layer_change); 301 dprintf("rgblight layer change [EEPROM]: %u\n", userspace_config.rgb_layer_change);
276 is_eeprom_updated = true; 302 is_eeprom_updated = true;
277 } 303 }
278#endif 304# endif
279#if defined(RGB_MATRIX_ENABLE) && defined(RGB_MATRIX_FRAMEBUFFER_EFFECTS) 305# if defined(RGB_MATRIX_ENABLE) && defined(RGB_MATRIX_FRAMEBUFFER_EFFECTS)
280 if (userspace_config.rgb_matrix_idle_anim) { 306 if (userspace_config.rgb_matrix_idle_anim) {
281 userspace_config.rgb_matrix_idle_anim = false; 307 userspace_config.rgb_matrix_idle_anim = false;
282 dprintf("RGB Matrix Idle Animation [EEPROM]: %u\n", userspace_config.rgb_matrix_idle_anim); 308 dprintf("RGB Matrix Idle Animation [EEPROM]: %u\n", userspace_config.rgb_matrix_idle_anim);
283 is_eeprom_updated = true; 309 is_eeprom_updated = true;
284 } 310 }
285#endif 311# endif
286 if (is_eeprom_updated) { 312 if (is_eeprom_updated) {
287 eeconfig_update_user(userspace_config.raw); 313 eeconfig_update_user(userspace_config.raw);
288 } 314 }
289 } 315 }
316
317# if defined(RGBLIGHT_DISABLE_KEYCODES) || defined(RGB_MATRIX_DISABLE_KEYCODES)
318 if (keycode == RGB_MODE_FORWARD && record->event.pressed) {
319 uint8_t shifted = get_mods() & (MOD_MASK_SHIFT);
320 if (shifted) {
321# if defined(RGBLIGHT_ENABLE) && !defined(RGBLIGHT_DISABLE_KEYCODES)
322 rgblight_step_reverse();
323# endif
324# if defined(RGB_MATRIX_ENABLE) && !defined(RGB_MATRIX_DISABLE_KEYCODES)
325 rgb_matrix_step_reverse();
326# endif
327 } else {
328# if defined(RGBLIGHT_ENABLE) && !defined(RGBLIGHT_DISABLE_KEYCODES)
329 rgblight_step();
330# endif
331# if defined(RGB_MATRIX_ENABLE) && !defined(RGB_MATRIX_DISABLE_KEYCODES)
332 rgb_matrix_step();
333# endif
334 }
335 } else if (keycode == RGB_MODE_REVERSE && record->event.pressed) {
336 uint8_t shifted = get_mods() & (MOD_MASK_SHIFT);
337 if (shifted) {
338# if defined(RGBLIGHT_ENABLE) && !defined(RGBLIGHT_DISABLE_KEYCODES)
339 rgblight_step();
340# endif
341# if defined(RGB_MATRIX_ENABLE) && !defined(RGB_MATRIX_DISABLE_KEYCODES)
342 rgb_matrix_step();
343# endif
344 } else {
345# if defined(RGBLIGHT_ENABLE) && !defined(RGBLIGHT_DISABLE_KEYCODES)
346 rgblight_step_reverse();
347# endif
348# if defined(RGB_MATRIX_ENABLE) && !defined(RGB_MATRIX_DISABLE_KEYCODES)
349 rgb_matrix_step_reverse();
350# endif
351 }
352 } else if (keycode == RGB_HUI) {
353# ifndef SPLIT_KEYBOARD
354 if (record->event.pressed) {
355# else
356 if (!record->event.pressed) {
357# endif
358# if defined(RGBLIGHT_ENABLE) && !defined(RGBLIGHT_DISABLE_KEYCODES)
359 rgblight_increase_hue();
360# endif
361# if defined(RGB_MATRIX_ENABLE) && !defined(RGB_MATRIX_DISABLE_KEYCODES)
362 rgb_matrix_increase_hue();
363# endif
364 }
365 } else if (keycode == RGB_HUD) {
366# ifndef SPLIT_KEYBOARD
367 if (record->event.pressed) {
368# else
369 if (!record->event.pressed) {
370# endif
371# if defined(RGBLIGHT_ENABLE) && !defined(RGBLIGHT_DISABLE_KEYCODES)
372 rgblight_decrease_hue();
373# endif
374# if defined(RGB_MATRIX_ENABLE) && !defined(RGB_MATRIX_DISABLE_KEYCODES)
375 rgb_matrix_decrease_hue();
376# endif
377 }
378 } else if (keycode == RGB_SAI) {
379# ifndef SPLIT_KEYBOARD
380 if (record->event.pressed) {
381# else
382 if (!record->event.pressed) {
383# endif
384# if defined(RGBLIGHT_ENABLE) && !defined(RGBLIGHT_DISABLE_KEYCODES)
385 rgblight_increase_sat();
386# endif
387# if defined(RGB_MATRIX_ENABLE) && !defined(RGB_MATRIX_DISABLE_KEYCODES)
388 rgb_matrix_increase_sat();
389# endif
390 }
391 } else if (keycode == RGB_SAD) {
392# ifndef SPLIT_KEYBOARD
393 if (record->event.pressed) {
394# else
395 if (!record->event.pressed) {
396# endif
397# if defined(RGBLIGHT_ENABLE) && !defined(RGBLIGHT_DISABLE_KEYCODES)
398 rgblight_decrease_sat();
399# endif
400# if defined(RGB_MATRIX_ENABLE) && !defined(RGB_MATRIX_DISABLE_KEYCODES)
401 rgb_matrix_decrease_sat();
402# endif
403 }
404 } else if (keycode == RGB_VAI) {
405# ifndef SPLIT_KEYBOARD
406 if (record->event.pressed) {
407# else
408 if (!record->event.pressed) {
409# endif
410# if defined(RGBLIGHT_ENABLE) && !defined(RGBLIGHT_DISABLE_KEYCODES)
411 rgblight_increase_val();
412# endif
413# if defined(RGB_MATRIX_ENABLE) && !defined(RGB_MATRIX_DISABLE_KEYCODES)
414 rgb_matrix_increase_val();
415# endif
416 }
417 } else if (keycode == RGB_VAD) {
418# ifndef SPLIT_KEYBOARD
419 if (record->event.pressed) {
420# else
421 if (!record->event.pressed) {
422# endif
423# if defined(RGBLIGHT_ENABLE) && !defined(RGBLIGHT_DISABLE_KEYCODES)
424 rgblight_decrease_val();
425# endif
426# if defined(RGB_MATRIX_ENABLE) && !defined(RGB_MATRIX_DISABLE_KEYCODES)
427 rgb_matrix_decrease_val();
428# endif
429 }
430 } else if (keycode == RGB_SPI) {
431 if (record->event.pressed) {
432# if defined(RGBLIGHT_ENABLE) && !defined(RGBLIGHT_DISABLE_KEYCODES)
433 rgblight_increase_speed();
434# endif
435# if defined(RGB_MATRIX_ENABLE) && !defined(RGB_MATRIX_DISABLE_KEYCODES)
436 rgb_matrix_increase_speed();
437# endif
438 }
439 } else if (keycode == RGB_SPD) {
440 if (record->event.pressed) {
441# if defined(RGBLIGHT_ENABLE) && !defined(RGBLIGHT_DISABLE_KEYCODES)
442 rgblight_decrease_speed();
443# endif
444# if defined(RGB_MATRIX_ENABLE) && !defined(RGB_MATRIX_DISABLE_KEYCODES)
445 rgb_matrix_decrease_speed();
446# endif
447 }
448 }
449 return false;
450# endif
451#endif
452
290 break; 453 break;
291 } 454 }
292 return true; 455 return true;
diff --git a/users/drashna/rules.mk b/users/drashna/rules.mk
index 882857fc8..4d55da803 100644
--- a/users/drashna/rules.mk
+++ b/users/drashna/rules.mk
@@ -1,7 +1,9 @@
1SRC += drashna.c \ 1SRC += drashna.c \
2 process_records.c 2 process_records.c
3 3
4LTO_ENABLE = yes 4ifneq ($(PLATFORM),CHIBIOS)
5 LTO_ENABLE = yes
6endif
5SPACE_CADET_ENABLE = no 7SPACE_CADET_ENABLE = no
6 8
7ifneq ($(strip $(NO_SECRETS)), yes) 9ifneq ($(strip $(NO_SECRETS)), yes)
@@ -58,4 +60,4 @@ endif
58# this should be handled per keyboard, but until that happens ... 60# this should be handled per keyboard, but until that happens ...
59ifeq ($(strip $(PROTOCOL)), VUSB) 61ifeq ($(strip $(PROTOCOL)), VUSB)
60 NKRO_ENABLE = no 62 NKRO_ENABLE = no
61endif \ No newline at end of file 63endif