diff options
| author | Drashna Jaelre <drashna@live.com> | 2018-05-15 19:34:34 -0700 |
|---|---|---|
| committer | Jack Humbert <jack.humb@gmail.com> | 2018-05-15 22:34:34 -0400 |
| commit | 53a6501d71cabbe4c5c41652cf24fdc059609e5d (patch) | |
| tree | 4662908d245fe7176307f99a994d1f8d8ef12158 /users/drashna | |
| parent | a572323f94b533582edab4402867dc994cc8c75f (diff) | |
| download | qmk_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.h | 7 | ||||
| -rw-r--r-- | users/drashna/drashna.c | 132 | ||||
| -rw-r--r-- | users/drashna/drashna.h | 24 | ||||
| -rw-r--r-- | users/drashna/readme.md | 22 | ||||
| -rw-r--r-- | users/drashna/rules.mk | 4 |
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 | ||
| 40 | static uint16_t copy_paste_timer; | 40 | static uint16_t copy_paste_timer; |
| 41 | #ifdef RGBLIGHT_ENABLE | ||
| 42 | bool rgb_layer_change = true; | ||
| 43 | #endif | ||
| 44 | |||
| 45 | userspace_config_t userspace_config; | 41 | userspace_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 |
| 165 | void matrix_init_user(void) { | 161 | void 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 | ||
| 52 | extern bool rgb_layer_change; | ||
| 53 | extern bool clicky_enable; | 48 | extern 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 | ||
| 61 | typedef union { | 56 | typedef 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 |
| 164 | typedef union { | 164 | typedef 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 | |||
| 174 | From there, you'd want to use the data structure (such as `userspace_config.is_overwatch`) when you want to check this value. | 174 | From there, you'd want to use the data structure (such as `userspace_config.is_overwatch`) when you want to check this value. |
| 175 | 175 | ||
| 176 | And 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. | 176 | And 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 | |||
| 179 | Pro Micro Hacking | ||
| 180 | ----------------- | ||
| 181 | |||
| 182 | Well, you can get the QMK DFU bootloader working on the ProMicro. But you need to change fuses. | ||
| 183 | |||
| 184 | What worked to get into the firmware properly was: | ||
| 185 | |||
| 186 | ``` | ||
| 187 | Low: 0x5E High: 0x99 Extended: 0xF3 Lock: 0xFF | ||
| 188 | ``` | ||
| 189 | |||
| 190 | But 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 | ``` | ||
| 195 | Low: 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 | |||
| 5 | ifeq ($(strip $(NO_SECRETS)), yes) | 5 | ifeq ($(strip $(NO_SECRETS)), yes) |
| 6 | OPT_DEFS += -DNO_SECRETS | 6 | OPT_DEFS += -DNO_SECRETS |
| 7 | endif | 7 | endif |
| 8 | |||
| 9 | ifeq ($(strip $(INDICATOR_LIGHTS)), yes) | ||
| 10 | OPT_DEFS += -DINDICATOR_LIGHTS | ||
| 11 | endif | ||
