aboutsummaryrefslogtreecommitdiff
path: root/users/drashna
diff options
context:
space:
mode:
authorDrashna Jaelre <drashna@live.com>2018-05-15 19:34:34 -0700
committerJack Humbert <jack.humb@gmail.com>2018-05-15 22:34:34 -0400
commit53a6501d71cabbe4c5c41652cf24fdc059609e5d (patch)
tree4662908d245fe7176307f99a994d1f8d8ef12158 /users/drashna
parenta572323f94b533582edab4402867dc994cc8c75f (diff)
downloadqmk_firmware-53a6501d71cabbe4c5c41652cf24fdc059609e5d.tar.gz
qmk_firmware-53a6501d71cabbe4c5c41652cf24fdc059609e5d.zip
Yet another update to drashna keymaps and userspace (EEPROM, RGB indicators) (#2959)
* More Iris Tweaks * Mess with iris arrow keys * Massive layout overhaul to make everything more OLKB * Additional tweaks * Cleanup Userspace Remove unused layer code, and properly set userspace eeprom structure. * EEPROM stuff * Only use indicators if layer indication is enabled * Iris and Orthodox Tweaks (Status Indicators) * Additional tweaks to finish tri layer conversion * Disable ProMicro ligths globally * Add Pro Micro hacking info * Successfully get mod indication working on thumb clusters * Enable printing when console is enabled * Make Modifier Indicator lights more modular * Keymap cleanup * Tapping test changes * Cleanup and minor tweaks
Diffstat (limited to 'users/drashna')
-rw-r--r--users/drashna/config.h7
-rw-r--r--users/drashna/drashna.c132
-rw-r--r--users/drashna/drashna.h24
-rw-r--r--users/drashna/readme.md22
-rw-r--r--users/drashna/rules.mk4
5 files changed, 102 insertions, 87 deletions
diff --git a/users/drashna/config.h b/users/drashna/config.h
index 0a59ad026..ef1860778 100644
--- a/users/drashna/config.h
+++ b/users/drashna/config.h
@@ -4,7 +4,6 @@
4 4
5#ifdef AUDIO_ENABLE 5#ifdef AUDIO_ENABLE
6#define AUDIO_CLICKY 6#define AUDIO_CLICKY
7#define AUDIO_CLICKY_ON
8#define STARTUP_SONG SONG(E1M1_DOOM) 7#define STARTUP_SONG SONG(E1M1_DOOM)
9#define GOODBYE_SONG SONG(SONIC_RING) 8#define GOODBYE_SONG SONG(SONIC_RING)
10#define DEFAULT_LAYER_SONGS { SONG(QWERTY_SOUND), \ 9#define DEFAULT_LAYER_SONGS { SONG(QWERTY_SOUND), \
@@ -43,6 +42,8 @@
43#define IGNORE_MOD_TAP_INTERRUPT 42#define IGNORE_MOD_TAP_INTERRUPT
44#undef PERMISSIVE_HOLD 43#undef PERMISSIVE_HOLD
45#undef PREVENT_STUCK_MODIFIERS 44#undef PREVENT_STUCK_MODIFIERS
45#define TAPPING_FORCE_HOLD
46//#define RETRO_TAPPING
46 47
47#define FORCE_NKRO 48#define FORCE_NKRO
48 49
@@ -53,7 +54,7 @@
53#ifdef TAPPING_TERM 54#ifdef TAPPING_TERM
54#undef TAPPING_TERM 55#undef TAPPING_TERM
55#endif // TAPPING_TERM 56#endif // TAPPING_TERM
56#define TAPPING_TERM 176 57#define TAPPING_TERM 200
57 58
58 59
59// Disable action_get_macro and fn_actions, since we don't use these 60// Disable action_get_macro and fn_actions, since we don't use these
@@ -61,7 +62,7 @@
61#ifndef NO_DEBUG 62#ifndef NO_DEBUG
62#define NO_DEBUG 63#define NO_DEBUG
63#endif // !NO_DEBUG 64#endif // !NO_DEBUG
64#ifndef NO_PRINT 65#if !defined(NO_PRINT) && !defined(CONSOLE_ENABLE)
65#define NO_PRINT 66#define NO_PRINT
66#endif // !NO_PRINT 67#endif // !NO_PRINT
67#define NO_ACTION_MACRO 68#define NO_ACTION_MACRO
diff --git a/users/drashna/drashna.c b/users/drashna/drashna.c
index 86c16b826..6ce541bfb 100644
--- a/users/drashna/drashna.c
+++ b/users/drashna/drashna.c
@@ -38,10 +38,6 @@ float tone_paste[][2] = SONG(SCROLL_LOCK_OFF_SOUND);
38 38
39 39
40static uint16_t copy_paste_timer; 40static uint16_t copy_paste_timer;
41#ifdef RGBLIGHT_ENABLE
42bool rgb_layer_change = true;
43#endif
44
45userspace_config_t userspace_config; 41userspace_config_t userspace_config;
46 42
47// Helper Functions 43// Helper Functions
@@ -164,31 +160,42 @@ void led_set_keymap(uint8_t usb_led) {}
164// call the keymap's init function 160// call the keymap's init function
165void matrix_init_user(void) { 161void matrix_init_user(void) {
166 uint8_t default_layer = eeconfig_read_default_layer(); 162 uint8_t default_layer = eeconfig_read_default_layer();
163 userspace_config.raw = eeprom_read_byte(EECONFIG_USERSPACE);
167 164
168#ifdef RGBLIGHT_ENABLE 165#ifdef BOOTLOADER_CATERINA
169 rgblight_enable(); 166 DDRD &= ~(1<<5);
170#endif // RGBLIGHT_ENABLE 167 PORTD &= ~(1<<5);
171 168
172 if (default_layer & (1UL << _COLEMAK)) { 169 DDRB &= ~(1<<0);
173#ifdef RGBLIGHT_ENABLE 170 PORTB &= ~(1<<0);
174 rgblight_sethsv_magenta(); 171#endif
175#endif // RGBLIGHT_ENABLE 172
176 } else if (default_layer & (1UL << _DVORAK)) { 173 if (userspace_config.rgb_layer_change) {
177#ifdef RGBLIGHT_ENABLE
178 rgblight_sethsv_green();
179#endif // RGBLIGHT_ENABLE
180 } else if (default_layer & (1UL << _WORKMAN)) {
181#ifdef RGBLIGHT_ENABLE
182 rgblight_sethsv_goldenrod();
183#endif // RGBLIGHT_ENABLE
184 } else {
185#ifdef RGBLIGHT_ENABLE 174#ifdef RGBLIGHT_ENABLE
186 rgblight_sethsv_teal(); 175 rgblight_enable();
187#endif // RGBLIGHT_ENABLE 176#endif // RGBLIGHT_ENABLE
177 if (default_layer & (1UL << _COLEMAK)) {
178 #ifdef RGBLIGHT_ENABLE
179 rgblight_sethsv_magenta();
180 #endif // RGBLIGHT_ENABLE
181 } else if (default_layer & (1UL << _DVORAK)) {
182 #ifdef RGBLIGHT_ENABLE
183 rgblight_sethsv_green();
184 #endif // RGBLIGHT_ENABLE
185 } else if (default_layer & (1UL << _WORKMAN)) {
186 #ifdef RGBLIGHT_ENABLE
187 rgblight_sethsv_goldenrod();
188 #endif // RGBLIGHT_ENABLE
189 } else {
190 #ifdef RGBLIGHT_ENABLE
191 rgblight_sethsv_teal();
192 #endif // RGBLIGHT_ENABLE
193 }
188 } 194 }
189 195
190 userspace_config.raw = eeprom_read_byte(EECONFIG_USERSPACE); 196#ifdef AUDIO_CLICKY
191 clicky_enable = userspace_config.clicky_enable; 197 clicky_enable = userspace_config.clicky_enable;
198#endif
192 199
193#if ( defined(UNICODE_ENABLE) || defined(UNICODEMAP_ENABLE) || defined(UCIS_ENABLE) ) 200#if ( defined(UNICODE_ENABLE) || defined(UNICODEMAP_ENABLE) || defined(UCIS_ENABLE) )
194 set_unicode_input_mode(UC_WINC); 201 set_unicode_input_mode(UC_WINC);
@@ -364,8 +371,9 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
364 case KC_RGB_T: // This allows me to use underglow as layer indication, or as normal 371 case KC_RGB_T: // This allows me to use underglow as layer indication, or as normal
365#ifdef RGBLIGHT_ENABLE 372#ifdef RGBLIGHT_ENABLE
366 if (record->event.pressed) { 373 if (record->event.pressed) {
367 rgb_layer_change = !rgb_layer_change; 374 userspace_config.rgb_layer_change ^= 1;
368 if (rgb_layer_change) { 375 eeprom_update_byte(EECONFIG_USERSPACE, userspace_config.raw);
376 if (userspace_config.rgb_layer_change) {
369 layer_state_set(layer_state); // This is needed to immediately set the layer color (looks better) 377 layer_state_set(layer_state); // This is needed to immediately set the layer color (looks better)
370 } 378 }
371 } 379 }
@@ -374,7 +382,8 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
374#ifdef RGBLIGHT_ENABLE 382#ifdef RGBLIGHT_ENABLE
375 case RGB_MODE_FORWARD ... RGB_MODE_GRADIENT: // quantum_keycodes.h L400 for definitions 383 case RGB_MODE_FORWARD ... RGB_MODE_GRADIENT: // quantum_keycodes.h L400 for definitions
376 if (record->event.pressed) { //This disables layer indication, as it's assumed that if you're changing this ... you want that disabled 384 if (record->event.pressed) { //This disables layer indication, as it's assumed that if you're changing this ... you want that disabled
377 rgb_layer_change = false; 385 userspace_config.rgb_layer_change = false;
386 eeprom_update_byte(EECONFIG_USERSPACE, userspace_config.raw);
378 } 387 }
379 return true; break; 388 return true; break;
380#endif // RGBLIGHT_ENABLE 389#endif // RGBLIGHT_ENABLE
@@ -403,8 +412,10 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
403 return false; 412 return false;
404 break; 413 break;
405 case CLICKY_TOGGLE: 414 case CLICKY_TOGGLE:
415#ifdef AUDIO_CLICKY
406 userspace_config.clicky_enable = clicky_enable; 416 userspace_config.clicky_enable = clicky_enable;
407 eeprom_update_byte(EECONFIG_USERSPACE, userspace_config.raw); 417 eeprom_update_byte(EECONFIG_USERSPACE, userspace_config.raw);
418#endif
408 break; 419 break;
409#ifdef UNICODE_ENABLE 420#ifdef UNICODE_ENABLE
410 case UC_FLIP: // (╯°□°)╯ ︵ ┻━┻ 421 case UC_FLIP: // (╯°□°)╯ ︵ ┻━┻
@@ -445,123 +456,104 @@ uint32_t layer_state_set_user(uint32_t state) {
445 state = update_tri_layer_state(state, _RAISE, _LOWER, _ADJUST); 456 state = update_tri_layer_state(state, _RAISE, _LOWER, _ADJUST);
446 457
447 switch (biton32(state)) { 458 switch (biton32(state)) {
448 case _NAV:
449#ifdef RGBLIGHT_ENABLE
450 if (rgb_layer_change) {
451 rgblight_sethsv_blue();
452 rgblight_mode(1);
453 }
454#endif // RGBLIGHT_ENABLE
455 break;
456 case _SYMB:
457#ifdef RGBLIGHT_ENABLE
458 if (rgb_layer_change) {
459 rgblight_sethsv_blue();
460 rgblight_mode(2);
461 }
462#endif // RGBLIGHT_ENABLE
463 break;
464 case _MOUS:
465#ifdef RGBLIGHT_ENABLE
466 if (rgb_layer_change) {
467 rgblight_sethsv_yellow();
468 rgblight_mode(1);
469 }
470#endif // RGBLIGHT_ENABLE
471 break;
472 case _MACROS: 459 case _MACROS:
473#ifdef RGBLIGHT_ENABLE 460#ifdef RGBLIGHT_ENABLE
474 if (rgb_layer_change) { 461 if (userspace_config.rgb_layer_change) {
475 rgblight_sethsv_orange(); 462 rgblight_sethsv_orange();
476 userspace_config.is_overwatch ? rgblight_mode(17) : rgblight_mode(18); 463 userspace_config.is_overwatch ? rgblight_mode(17) : rgblight_mode(18);
477 } 464 }
478#endif // RGBLIGHT_ENABLE 465#endif // RGBLIGHT_ENABLE
466
479 break; 467 break;
480 case _MEDIA: 468 case _MEDIA:
481#ifdef RGBLIGHT_ENABLE 469#ifdef RGBLIGHT_ENABLE
482 if (rgb_layer_change) { 470 if (userspace_config.rgb_layer_change) {
483 rgblight_sethsv_chartreuse(); 471 rgblight_sethsv_chartreuse();
484 rgblight_mode(22); 472 rgblight_mode(22);
485 } 473 }
486#endif // RGBLIGHT_ENABLE 474#endif // RGBLIGHT_ENABLE
475
487 break; 476 break;
488 case _GAMEPAD: 477 case _GAMEPAD:
489#ifdef RGBLIGHT_ENABLE 478#ifdef RGBLIGHT_ENABLE
490 if (rgb_layer_change) { 479 if (userspace_config.rgb_layer_change) {
491 rgblight_sethsv_orange(); 480 rgblight_sethsv_orange();
492 rgblight_mode(17); 481 rgblight_mode(17);
493 } 482 }
494#endif // RGBLIGHT_ENABLE 483#endif // RGBLIGHT_ENABLE
484
495 break; 485 break;
496 case _DIABLO: 486 case _DIABLO:
497#ifdef RGBLIGHT_ENABLE 487#ifdef RGBLIGHT_ENABLE
498 if (rgb_layer_change) { 488 if (userspace_config.rgb_layer_change) {
499 rgblight_sethsv_red(); 489 rgblight_sethsv_red();
500 rgblight_mode(5); 490 rgblight_mode(5);
501 } 491 }
502#endif // RGBLIGHT_ENABLE 492#endif // RGBLIGHT_ENABLE
493
503 break; 494 break;
504 case _RAISE: 495 case _RAISE:
505#ifdef RGBLIGHT_ENABLE 496#ifdef RGBLIGHT_ENABLE
506 if (rgb_layer_change) { 497 if (userspace_config.rgb_layer_change) {
507 rgblight_sethsv_yellow(); 498 rgblight_sethsv_yellow();
508 rgblight_mode(5); 499 rgblight_mode(5);
509 } 500 }
510#endif // RGBLIGHT_ENABLE 501#endif // RGBLIGHT_ENABLE
502
511 break; 503 break;
512 case _LOWER: 504 case _LOWER:
513#ifdef RGBLIGHT_ENABLE 505#ifdef RGBLIGHT_ENABLE
514 if (rgb_layer_change) { 506 if (userspace_config.rgb_layer_change) {
515 rgblight_sethsv_orange(); 507 rgblight_sethsv_orange();
516 rgblight_mode(5); 508 rgblight_mode(5);
517 } 509 }
518#endif // RGBLIGHT_ENABLE 510#endif // RGBLIGHT_ENABLE
511
519 break; 512 break;
520 case _ADJUST: 513 case _ADJUST:
521#ifdef RGBLIGHT_ENABLE 514#ifdef RGBLIGHT_ENABLE
522 if (rgb_layer_change) { 515 if (userspace_config.rgb_layer_change) {
523 rgblight_sethsv_red(); 516 rgblight_sethsv_red();
524 rgblight_mode(23); 517 rgblight_mode(23);
525 } 518 }
526#endif // RGBLIGHT_ENABLE 519#endif // RGBLIGHT_ENABLE
527 break; 520
528 case _COVECUBE:
529#ifdef RGBLIGHT_ENABLE
530 if (rgb_layer_change) {
531 rgblight_sethsv_green();
532 rgblight_mode(2);
533 }
534#endif // RGBLIGHT_ENABLE
535 break; 521 break;
536 default: // for any other layers, or the default layer 522 default: // for any other layers, or the default layer
537 if (default_layer & (1UL << _COLEMAK)) { 523 if (default_layer & (1UL << _COLEMAK)) {
538#ifdef RGBLIGHT_ENABLE 524#ifdef RGBLIGHT_ENABLE
539 if (rgb_layer_change) { rgblight_sethsv_magenta(); } 525 if (userspace_config.rgb_layer_change) { rgblight_sethsv_magenta(); }
540#endif // RGBLIGHT_ENABLE 526#endif // RGBLIGHT_ENABLE
527
541 } 528 }
542 else if (default_layer & (1UL << _DVORAK)) { 529 else if (default_layer & (1UL << _DVORAK)) {
543#ifdef RGBLIGHT_ENABLE 530#ifdef RGBLIGHT_ENABLE
544 if (rgb_layer_change) { rgblight_sethsv_green(); } 531 if (userspace_config.rgb_layer_change) { rgblight_sethsv_green(); }
545#endif // RGBLIGHT_ENABLE 532#endif // RGBLIGHT_ENABLE
533
546 } 534 }
547 else if (default_layer & (1UL << _WORKMAN)) { 535 else if (default_layer & (1UL << _WORKMAN)) {
548#ifdef RGBLIGHT_ENABLE 536#ifdef RGBLIGHT_ENABLE
549 if (rgb_layer_change) { rgblight_sethsv_goldenrod(); } 537 if (userspace_config.rgb_layer_change) { rgblight_sethsv_goldenrod(); }
550#endif // RGBLIGHT_ENABLE 538#endif // RGBLIGHT_ENABLE
539
551 } 540 }
552 else { 541 else {
553#ifdef RGBLIGHT_ENABLE 542#ifdef RGBLIGHT_ENABLE
554 if (rgb_layer_change) { rgblight_sethsv_teal(); } 543 if (userspace_config.rgb_layer_change) { rgblight_sethsv_teal(); }
555#endif // RGBLIGHT_ENABLE 544#endif // RGBLIGHT_ENABLE
545
556 } 546 }
557 if (biton32(state) == _MODS) { // If the non-OSM layer is enabled, then breathe 547 if (biton32(state) == _MODS) { // If the non-OSM layer is enabled, then breathe
558#ifdef RGBLIGHT_ENABLE 548#ifdef RGBLIGHT_ENABLE
559 if (rgb_layer_change) { rgblight_mode(2); } 549 if (userspace_config.rgb_layer_change) { rgblight_mode(2); }
560#endif // RGBLIGHT_ENABLE 550#endif // RGBLIGHT_ENABLE
551
561 } else { // otherwise, stay solid 552 } else { // otherwise, stay solid
562#ifdef RGBLIGHT_ENABLE 553#ifdef RGBLIGHT_ENABLE
563 if (rgb_layer_change) { rgblight_mode(1); } 554 if (userspace_config.rgb_layer_change) { rgblight_mode(1); }
564#endif // RGBLIGHT_ENABLE 555#endif // RGBLIGHT_ENABLE
556
565 } 557 }
566 break; 558 break;
567 } 559 }
diff --git a/users/drashna/drashna.h b/users/drashna/drashna.h
index 5ef25333b..87a72f528 100644
--- a/users/drashna/drashna.h
+++ b/users/drashna/drashna.h
@@ -27,12 +27,8 @@ enum userspace_layers {
27 _DVORAK, 27 _DVORAK,
28 _WORKMAN, 28 _WORKMAN,
29 _MODS, 29 _MODS,
30 _NAV,
31 _COVECUBE,
32 _SYMB,
33 _GAMEPAD, 30 _GAMEPAD,
34 _DIABLO, 31 _DIABLO,
35 _MOUS,
36 _MACROS, 32 _MACROS,
37 _MEDIA, 33 _MEDIA,
38 _LOWER, 34 _LOWER,
@@ -49,7 +45,6 @@ enum userspace_layers {
49// RGB color codes are no longer located here anymore. Instead, you will want to 45// RGB color codes are no longer located here anymore. Instead, you will want to
50// head to https://github.com/qmk/qmk_firmware/blob/master/quantum/rgblight_list.h 46// head to https://github.com/qmk/qmk_firmware/blob/master/quantum/rgblight_list.h
51 47
52extern bool rgb_layer_change;
53extern bool clicky_enable; 48extern bool clicky_enable;
54 49
55#ifdef RGBLIGHT_ENABLE 50#ifdef RGBLIGHT_ENABLE
@@ -59,10 +54,11 @@ void rgblight_sethsv_default_helper(uint8_t index);
59#define EECONFIG_USERSPACE (uint8_t *)20 54#define EECONFIG_USERSPACE (uint8_t *)20
60 55
61typedef union { 56typedef union {
62 uint32_t raw; 57 uint8_t raw;
63 struct { 58 struct {
64 bool clicky_enable :1; 59 bool clicky_enable :1;
65 bool is_overwatch :1; 60 bool rgb_layer_change :1;
61 bool is_overwatch :1;
66 }; 62 };
67} userspace_config_t; 63} userspace_config_t;
68 64
@@ -166,10 +162,10 @@ enum {
166#define LAYOUT KEYMAP 162#define LAYOUT KEYMAP
167#endif 163#endif
168 164
169#define LAYOUT_ergodox_wrapper(...) LAYOUT_ergodox(__VA_ARGS__) 165#define LAYOUT_ergodox_wrapper(...) LAYOUT_ergodox(__VA_ARGS__)
170#define LAYOUT_ergodox_pretty_wrapper(...) LAYOUT_ergodox_pretty(__VA_ARGS__) 166#define LAYOUT_ergodox_pretty_wrapper(...) LAYOUT_ergodox_pretty(__VA_ARGS__)
171#define KEYMAP_wrapper(...) LAYOUT(__VA_ARGS__) 167#define KEYMAP_wrapper(...) LAYOUT(__VA_ARGS__)
172#define LAYOUT_wrapper(...) LAYOUT(__VA_ARGS__) 168#define LAYOUT_wrapper(...) LAYOUT(__VA_ARGS__)
173 169
174 170
175// Blocks for each of the four major keyboard layouts 171// Blocks for each of the four major keyboard layouts
@@ -236,6 +232,8 @@ enum {
236 232
237#define ________________NUMBER_LEFT________________ KC_1, KC_2, KC_3, KC_4, KC_5 233#define ________________NUMBER_LEFT________________ KC_1, KC_2, KC_3, KC_4, KC_5
238#define ________________NUMBER_RIGHT_______________ KC_6, KC_7, KC_8, KC_9, KC_0 234#define ________________NUMBER_RIGHT_______________ KC_6, KC_7, KC_8, KC_9, KC_0
235#define _________________FUNC_LEFT_________________ KC_F1, KC_F2, KC_F3, KC_F4, KC_F5
236#define _________________FUNC_RIGHT________________ KC_F6, KC_F7, KC_F8, KC_F9, KC_F10
239 237
240// Since we have 4 default layouts (QWERTY, DVORAK, COLEMAK and WORKMAN), 238// Since we have 4 default layouts (QWERTY, DVORAK, COLEMAK and WORKMAN),
241// this allows us to quickly modify the bottom row for all of the layouts 239// this allows us to quickly modify the bottom row for all of the layouts
@@ -245,9 +243,9 @@ enum {
245#define ___________ERGODOX_BOTTOM_RIGHT____________ KC_LEFT, KC_DOWN, KC_UP, KC_RGHT 243#define ___________ERGODOX_BOTTOM_RIGHT____________ KC_LEFT, KC_DOWN, KC_UP, KC_RGHT
246 244
247 245
248#define __________________ERGODOX_THUMB_CLUSTER_____________________ ALT_T(KC_APP), KC_LGUI, KC_RGUI, CTL_T(KC_ESCAPE), \ 246#define __________________ERGODOX_THUMB_CLUSTER_____________________ ALT_T(KC_APP), KC_LGUI, KC_RGUI, CTL_T(KC_ESCAPE), \
249 KC_HOME, KC_PGUP, \ 247 KC_HOME, KC_PGUP, \
250 KC_SPACE,KC_BSPC, KC_END, KC_PGDN, KC_DEL, KC_ENTER 248 LT(_LOWER, KC_SPACE),KC_BSPC, KC_END, KC_PGDN, KC_DEL, LT(_RAISE, KC_ENTER)
251 249
252 250
253#endif // !USERSPACE 251#endif // !USERSPACE
diff --git a/users/drashna/readme.md b/users/drashna/readme.md
index 79758e7e5..ddf24b24f 100644
--- a/users/drashna/readme.md
+++ b/users/drashna/readme.md
@@ -162,7 +162,7 @@ This tells us where in the EEPROM that the data structure is located, and this s
162 162
163```c 163```c
164typedef union { 164typedef union {
165 uint32_t raw; 165 uint8_t raw;
166 struct { 166 struct {
167 bool clicky_enable :1; 167 bool clicky_enable :1;
168 bool is_overwatch :1; 168 bool is_overwatch :1;
@@ -174,3 +174,23 @@ Then, in your C file, you want to add: `userspace_config_t userspace_config;`, a
174From there, you'd want to use the data structure (such as `userspace_config.is_overwatch`) when you want to check this value. 174From there, you'd want to use the data structure (such as `userspace_config.is_overwatch`) when you want to check this value.
175 175
176And if you want to update it, update directly and then use `eeprom_update_byte(EECONFIG_USERSPACE, userspace_config.raw);` to write the value back to the EEPROM. 176And if you want to update it, update directly and then use `eeprom_update_byte(EECONFIG_USERSPACE, userspace_config.raw);` to write the value back to the EEPROM.
177
178
179Pro Micro Hacking
180-----------------
181
182Well, you can get the QMK DFU bootloader working on the ProMicro. But you need to change fuses.
183
184What worked to get into the firmware properly was:
185
186```
187Low: 0x5E High: 0x99 Extended: 0xF3 Lock: 0xFF
188```
189
190But some of the columns and rows didn't work, like the pin mapping was wrong. Even when setting the bootloader settings.
191
192 This is here for future reference. And the default fuse settings I believe were:
193
194```
195Low: 0xFF High: 0xD8 Extended: 0xC3 Lock: 0x3F
196```
diff --git a/users/drashna/rules.mk b/users/drashna/rules.mk
index 123c0cc70..e2c5a2995 100644
--- a/users/drashna/rules.mk
+++ b/users/drashna/rules.mk
@@ -5,3 +5,7 @@ EXTRAFLAGS += -flto
5ifeq ($(strip $(NO_SECRETS)), yes) 5ifeq ($(strip $(NO_SECRETS)), yes)
6 OPT_DEFS += -DNO_SECRETS 6 OPT_DEFS += -DNO_SECRETS
7endif 7endif
8
9ifeq ($(strip $(INDICATOR_LIGHTS)), yes)
10 OPT_DEFS += -DINDICATOR_LIGHTS
11endif