diff options
| author | Drashna Jaelre <drashna@live.com> | 2021-01-22 08:23:03 -0800 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2021-01-22 08:23:03 -0800 |
| commit | 7a08b9d374dfcf9d872738af44b231862064b96f (patch) | |
| tree | a83e16b5b6afd67b22fcbdf81ced5896554ca631 /layouts | |
| parent | c16a3dcb5458bc8d237d26c20a434c333b48d5c8 (diff) | |
| download | qmk_firmware-7a08b9d374dfcf9d872738af44b231862064b96f.tar.gz qmk_firmware-7a08b9d374dfcf9d872738af44b231862064b96f.zip | |
[Keymap] Cleanup and updating of drashna keymap code (#11516)
* Update other keyboards for rgb matrix changes
* Remove customized bootmagic code
* Fix corne layout compilation error
* Fix compiler errors with all keymaps
* Add Simple Visualizer for ergodox infinity
* Fix compile issue with Corne
* Fix keymap stuff
* Add alias for mouse layer
* Add Halmak Keyboard layout
* Updates for Kyria
* Add support for oled interval
* Change RGB stuff
[CHANGE] Fix coexistence issues
* Fix rgb_stuff
* Add custom ploopyco mouse keymap
* Decrease default dwell time
* Updates based on last breaking changes update
* Disable command on dactyl
* Update ergodox to use proper commands for rgb matrix indicators
* Update all rgb matrix indicator functions
* Update rules for dactyl-manuform
* Reduce wait time for mouse layer off event
* Add more info to logger
* Add wrappers for get_tapping term
* Move version.h include into only file that actually needs it
* Update rgb sleep stuff
* Update key print function
* Change DM keymap settings
* Change pin for DM Manuform
* Add Proton C stuff for Corne keymap
* more arm corne tinkering
* Even more arm stuff for corne
* Cleanup corne stuff
* redirect default keymap to drashna
because I am a very bad man
* change corne rgb priority
* Update tractyl manuform to not conflict
* Add more secret stuff
* more dactyl tweaks
* Add more options to split transport
* Changes of oled support
* Change split settings
* Improve keylogger formatting more
* tweak oled stuff
* Oled and such tweaks
* Reduce brightness due to leds
* Decrease brightness more
* Only run layer code if master
Diffstat (limited to 'layouts')
| -rw-r--r-- | layouts/community/ergodox/drashna/config.h | 1 | ||||
| -rw-r--r-- | layouts/community/ergodox/drashna/keymap.c | 63 | ||||
| -rw-r--r-- | layouts/community/ergodox/drashna/visualizer.c | 77 | ||||
| -rw-r--r-- | layouts/community/ortho_4x12/drashna/config.h | 2 | ||||
| -rw-r--r-- | layouts/community/ortho_4x12/drashna/keymap.c | 56 | ||||
| -rw-r--r-- | layouts/community/split_3x6_3/drashna/config.h | 36 | ||||
| -rw-r--r-- | layouts/community/split_3x6_3/drashna/halconf.h | 22 | ||||
| -rw-r--r-- | layouts/community/split_3x6_3/drashna/keymap.c | 81 | ||||
| -rw-r--r-- | layouts/community/split_3x6_3/drashna/mcuconf.h | 32 | ||||
| -rw-r--r-- | layouts/community/split_3x6_3/drashna/rules.mk | 10 | ||||
| -rw-r--r-- | layouts/community/split_3x6_3/drashna/ssd1306.c | 0 |
11 files changed, 257 insertions, 123 deletions
diff --git a/layouts/community/ergodox/drashna/config.h b/layouts/community/ergodox/drashna/config.h index a595a93c4..4ccba8f04 100644 --- a/layouts/community/ergodox/drashna/config.h +++ b/layouts/community/ergodox/drashna/config.h | |||
| @@ -42,7 +42,6 @@ | |||
| 42 | # undef RGB_MATRIX_LED_FLUSH_LIMIT | 42 | # undef RGB_MATRIX_LED_FLUSH_LIMIT |
| 43 | # if defined(RGBLIGHT_ENABLE) && defined(RGB_MATRIX_ENABLE) | 43 | # if defined(RGBLIGHT_ENABLE) && defined(RGB_MATRIX_ENABLE) |
| 44 | # define RGBLIGHT_LIMIT_VAL 100 | 44 | # define RGBLIGHT_LIMIT_VAL 100 |
| 45 | # undef RGBLIGHT_SLEEP | ||
| 46 | # endif | 45 | # endif |
| 47 | #endif | 46 | #endif |
| 48 | 47 | ||
diff --git a/layouts/community/ergodox/drashna/keymap.c b/layouts/community/ergodox/drashna/keymap.c index 5f1c0c8a0..fb5bcc6bd 100644 --- a/layouts/community/ergodox/drashna/keymap.c +++ b/layouts/community/ergodox/drashna/keymap.c | |||
| @@ -446,70 +446,65 @@ void suspend_power_down_keymap(void) { rgb_matrix_set_suspend_state(true); } | |||
| 446 | 446 | ||
| 447 | void suspend_wakeup_init_keymap(void) { rgb_matrix_set_suspend_state(false); } | 447 | void suspend_wakeup_init_keymap(void) { rgb_matrix_set_suspend_state(false); } |
| 448 | 448 | ||
| 449 | void rgb_matrix_indicators_user(void) { | 449 | void rgb_matrix_indicators_advanced_user(uint8_t led_min, uint8_t led_max) { |
| 450 | if (g_suspend_state || !rgb_matrix_config.enable) return; | ||
| 451 | 450 | ||
| 452 | if (layer_state_is(_GAMEPAD)) { | 451 | if (layer_state_is(_GAMEPAD)) { |
| 453 | rgb_matrix_set_color(32, 0x00, 0xFF, 0x00); // Q | 452 | RGB_MATRIX_INDICATOR_SET_COLOR(32, 0x00, 0xFF, 0x00); // Q |
| 454 | rgb_matrix_set_color(31, 0x00, 0xFF, 0xFF); // W | 453 | RGB_MATRIX_INDICATOR_SET_COLOR(31, 0x00, 0xFF, 0xFF); // W |
| 455 | rgb_matrix_set_color(30, 0xFF, 0x00, 0x00); // E | 454 | RGB_MATRIX_INDICATOR_SET_COLOR(30, 0xFF, 0x00, 0x00); // E |
| 456 | rgb_matrix_set_color(29, 0xFF, 0x80, 0x00); // R | 455 | RGB_MATRIX_INDICATOR_SET_COLOR(29, 0xFF, 0x80, 0x00); // R |
| 457 | rgb_matrix_set_color(37, 0x00, 0xFF, 0xFF); // A | 456 | RGB_MATRIX_INDICATOR_SET_COLOR(37, 0x00, 0xFF, 0xFF); // A |
| 458 | rgb_matrix_set_color(36, 0x00, 0xFF, 0xFF); // S | 457 | RGB_MATRIX_INDICATOR_SET_COLOR(36, 0x00, 0xFF, 0xFF); // S |
| 459 | rgb_matrix_set_color(35, 0x00, 0xFF, 0xFF); // D | 458 | RGB_MATRIX_INDICATOR_SET_COLOR(35, 0x00, 0xFF, 0xFF); // D |
| 460 | rgb_matrix_set_color(34, 0x7A, 0x00, 0xFF); // F | 459 | RGB_MATRIX_INDICATOR_SET_COLOR(34, 0x7A, 0x00, 0xFF); // F |
| 461 | 460 | ||
| 462 | rgb_matrix_set_color(userspace_config.swapped_numbers ? 27 : 26, 0xFF, 0xFF, 0xFF); // 1 | 461 | RGB_MATRIX_INDICATOR_SET_COLOR((userspace_config.swapped_numbers ? 26 : 27), 0xFF, 0xFF, 0xFF); // 1 |
| 463 | rgb_matrix_set_color(userspace_config.swapped_numbers ? 26 : 27, 0x00, 0xFF, 0x00); // 2 | 462 | RGB_MATRIX_INDICATOR_SET_COLOR((userspace_config.swapped_numbers ? 27 : 26), 0x00, 0xFF, 0x00); // 2 |
| 464 | rgb_matrix_set_color(25, 0x7A, 0x00, 0xFF); // 3 | 463 | RGB_MATRIX_INDICATOR_SET_COLOR(25, 0x7A, 0x00, 0xFF); // 3 |
| 465 | } | 464 | } |
| 466 | 465 | ||
| 467 | # if defined(RGBLIGHT_ENABLE) | 466 | |
| 468 | if (!userspace_config.rgb_layer_change) | 467 | if (userspace_config.rgb_layer_change) { |
| 469 | # else | ||
| 470 | if (userspace_config.rgb_layer_change) | ||
| 471 | # endif | ||
| 472 | { | ||
| 473 | bool mods_enabled = IS_LAYER_ON(_MODS); | 468 | bool mods_enabled = IS_LAYER_ON(_MODS); |
| 474 | switch (get_highest_layer(layer_state|default_layer_state)) { | 469 | switch (get_highest_layer(layer_state|default_layer_state)) { |
| 475 | case _GAMEPAD: | 470 | case _GAMEPAD: |
| 476 | rgb_matrix_layer_helper(HSV_ORANGE, 1, rgb_matrix_config.speed, LED_FLAG_MODIFIER); | 471 | rgb_matrix_layer_helper(HSV_ORANGE, 1, rgb_matrix_config.speed, LED_FLAG_MODIFIER, led_min, led_max); |
| 477 | break; | 472 | break; |
| 478 | case _DIABLO: | 473 | case _DIABLO: |
| 479 | rgb_matrix_layer_helper(HSV_RED, 1, rgb_matrix_config.speed * 8, LED_FLAG_MODIFIER); | 474 | rgb_matrix_layer_helper(HSV_RED, 1, rgb_matrix_config.speed * 8, LED_FLAG_MODIFIER, led_min, led_max); |
| 480 | break; | 475 | break; |
| 481 | case _RAISE: | 476 | case _RAISE: |
| 482 | rgb_matrix_layer_helper(HSV_YELLOW, 1, rgb_matrix_config.speed, LED_FLAG_MODIFIER); | 477 | rgb_matrix_layer_helper(HSV_YELLOW, 1, rgb_matrix_config.speed, LED_FLAG_MODIFIER, led_min, led_max); |
| 483 | break; | 478 | break; |
| 484 | case _LOWER: | 479 | case _LOWER: |
| 485 | rgb_matrix_layer_helper(HSV_GREEN, 1, rgb_matrix_config.speed, LED_FLAG_MODIFIER); | 480 | rgb_matrix_layer_helper(HSV_GREEN, 1, rgb_matrix_config.speed, LED_FLAG_MODIFIER, led_min, led_max); |
| 486 | break; | 481 | break; |
| 487 | case _ADJUST: | 482 | case _ADJUST: |
| 488 | rgb_matrix_layer_helper(HSV_RED, 1, rgb_matrix_config.speed, LED_FLAG_MODIFIER); | 483 | rgb_matrix_layer_helper(HSV_RED, 1, rgb_matrix_config.speed, LED_FLAG_MODIFIER, led_min, led_max); |
| 489 | break; | 484 | break; |
| 490 | case _QWERTY: | 485 | case _QWERTY: |
| 491 | rgb_matrix_layer_helper(HSV_CYAN, mods_enabled, rgb_matrix_config.speed, LED_FLAG_MODIFIER); | 486 | rgb_matrix_layer_helper(HSV_CYAN, mods_enabled, rgb_matrix_config.speed, LED_FLAG_MODIFIER, led_min, led_max); |
| 492 | break; | 487 | break; |
| 493 | case _COLEMAK: | 488 | case _COLEMAK: |
| 494 | rgb_matrix_layer_helper(HSV_MAGENTA, mods_enabled, rgb_matrix_config.speed, LED_FLAG_MODIFIER); | 489 | rgb_matrix_layer_helper(HSV_MAGENTA, mods_enabled, rgb_matrix_config.speed, LED_FLAG_MODIFIER, led_min, led_max); |
| 495 | break; | 490 | break; |
| 496 | case _DVORAK: | 491 | case _DVORAK: |
| 497 | rgb_matrix_layer_helper(HSV_SPRINGGREEN, mods_enabled, rgb_matrix_config.speed, LED_FLAG_MODIFIER); | 492 | rgb_matrix_layer_helper(HSV_SPRINGGREEN, mods_enabled, rgb_matrix_config.speed, LED_FLAG_MODIFIER, led_min, led_max); |
| 498 | break; | 493 | break; |
| 499 | case _WORKMAN: | 494 | case _WORKMAN: |
| 500 | rgb_matrix_layer_helper(HSV_GOLDENROD, mods_enabled, rgb_matrix_config.speed, LED_FLAG_MODIFIER); | 495 | rgb_matrix_layer_helper(HSV_GOLDENROD, mods_enabled, rgb_matrix_config.speed, LED_FLAG_MODIFIER, led_min, led_max); |
| 501 | break; | 496 | break; |
| 502 | case _NORMAN: | 497 | case _NORMAN: |
| 503 | rgb_matrix_layer_helper(HSV_CORAL, mods_enabled, rgb_matrix_config.speed, LED_FLAG_MODIFIER); | 498 | rgb_matrix_layer_helper(HSV_CORAL, mods_enabled, rgb_matrix_config.speed, LED_FLAG_MODIFIER, led_min, led_max); |
| 504 | break; | 499 | break; |
| 505 | case _MALTRON: | 500 | case _MALTRON: |
| 506 | rgb_matrix_layer_helper(HSV_YELLOW, mods_enabled, rgb_matrix_config.speed, LED_FLAG_MODIFIER); | 501 | rgb_matrix_layer_helper(HSV_YELLOW, mods_enabled, rgb_matrix_config.speed, LED_FLAG_MODIFIER, led_min, led_max); |
| 507 | break; | 502 | break; |
| 508 | case _EUCALYN: | 503 | case _EUCALYN: |
| 509 | rgb_matrix_layer_helper(HSV_PINK, mods_enabled, rgb_matrix_config.speed, LED_FLAG_MODIFIER); | 504 | rgb_matrix_layer_helper(HSV_PINK, mods_enabled, rgb_matrix_config.speed, LED_FLAG_MODIFIER, led_min, led_max); |
| 510 | break; | 505 | break; |
| 511 | case _CARPLAX: | 506 | case _CARPLAX: |
| 512 | rgb_matrix_layer_helper(HSV_BLUE, mods_enabled, rgb_matrix_config.speed, LED_FLAG_MODIFIER); | 507 | rgb_matrix_layer_helper(HSV_BLUE, mods_enabled, rgb_matrix_config.speed, LED_FLAG_MODIFIER, led_min, led_max); |
| 513 | break; | 508 | break; |
| 514 | } | 509 | } |
| 515 | } | 510 | } |
| @@ -517,6 +512,7 @@ void rgb_matrix_indicators_user(void) { | |||
| 517 | 512 | ||
| 518 | #endif // RGB_MATRIX_INIT | 513 | #endif // RGB_MATRIX_INIT |
| 519 | 514 | ||
| 515 | #ifdef TAPPING_TERM_PER_KEY | ||
| 520 | uint16_t get_tapping_term(uint16_t keycode, keyrecord_t *record) { | 516 | uint16_t get_tapping_term(uint16_t keycode, keyrecord_t *record) { |
| 521 | if (keycode >= QK_MOD_TAP && keycode <= QK_MOD_TAP_MAX) { | 517 | if (keycode >= QK_MOD_TAP && keycode <= QK_MOD_TAP_MAX) { |
| 522 | if (mod_config(keycode & 0xf) & MOD_MASK_ALT) { | 518 | if (mod_config(keycode & 0xf) & MOD_MASK_ALT) { |
| @@ -525,3 +521,4 @@ uint16_t get_tapping_term(uint16_t keycode, keyrecord_t *record) { | |||
| 525 | } | 521 | } |
| 526 | return TAPPING_TERM; | 522 | return TAPPING_TERM; |
| 527 | } | 523 | } |
| 524 | #endif | ||
diff --git a/layouts/community/ergodox/drashna/visualizer.c b/layouts/community/ergodox/drashna/visualizer.c new file mode 100644 index 000000000..6b1c3ff49 --- /dev/null +++ b/layouts/community/ergodox/drashna/visualizer.c | |||
| @@ -0,0 +1,77 @@ | |||
| 1 | /* | ||
| 2 | Copyright 2017 Fred Sundvik | ||
| 3 | |||
| 4 | This program is free software: you can redistribute it and/or modify | ||
| 5 | it under the terms of the GNU General Public License as published by | ||
| 6 | the Free Software Foundation, either version 2 of the License, or | ||
| 7 | (at your option) any later version. | ||
| 8 | |||
| 9 | This program is distributed in the hope that it will be useful, | ||
| 10 | but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
| 11 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
| 12 | GNU General Public License for more details. | ||
| 13 | |||
| 14 | You should have received a copy of the GNU General Public License | ||
| 15 | along with this program. If not, see <http://www.gnu.org/licenses/>. | ||
| 16 | */ | ||
| 17 | |||
| 18 | #include "./simple_visualizer.h" | ||
| 19 | #include "util.h" | ||
| 20 | #include "drashna.h" | ||
| 21 | #include "rgblight_list.h" | ||
| 22 | |||
| 23 | #define LCD_COLOR_wrapper(...) LCD_COLOR(__VA_ARGS__) | ||
| 24 | // This function should be implemented by the keymap visualizer | ||
| 25 | // Don't change anything else than state->target_lcd_color and state->layer_text as that's the only thing | ||
| 26 | // that the simple_visualizer assumes that you are updating | ||
| 27 | // Also make sure that the buffer passed to state->layer_text remains valid until the previous animation is | ||
| 28 | // stopped. This can be done by either double buffering it or by using constant strings | ||
| 29 | static void get_visualizer_layer_and_color(visualizer_state_t* state) { | ||
| 30 | |||
| 31 | switch(get_highest_layer(state->status.layer|default_layer_state)) { | ||
| 32 | case _LOWER: | ||
| 33 | state->layer_text = "Lower"; | ||
| 34 | state->target_lcd_color = LCD_COLOR_wrapper(HSV_GREEN); | ||
| 35 | break; | ||
| 36 | case _RAISE: | ||
| 37 | state->layer_text = "Raise"; | ||
| 38 | state->target_lcd_color = LCD_COLOR_wrapper(HSV_YELLOW); | ||
| 39 | break; | ||
| 40 | case _ADJUST: | ||
| 41 | state->layer_text = "Adjust"; | ||
| 42 | state->target_lcd_color = LCD_COLOR_wrapper(HSV_RED); | ||
| 43 | break; | ||
| 44 | case _MACROS: | ||
| 45 | state->layer_text = "Macros"; | ||
| 46 | state->target_lcd_color = LCD_COLOR_wrapper(HSV_ORANGE); | ||
| 47 | break; | ||
| 48 | case _MEDIA: | ||
| 49 | state->layer_text = "Media"; | ||
| 50 | state->target_lcd_color = LCD_COLOR_wrapper(HSV_CHARTREUSE); | ||
| 51 | break; | ||
| 52 | case _GAMEPAD: | ||
| 53 | state->layer_text = "Game"; | ||
| 54 | state->target_lcd_color = LCD_COLOR_wrapper(HSV_ORANGE); | ||
| 55 | break; | ||
| 56 | case _QWERTY: | ||
| 57 | state->layer_text = "QWERTY"; | ||
| 58 | state->target_lcd_color = LCD_COLOR_wrapper(HSV_CYAN); | ||
| 59 | break; | ||
| 60 | case _WORKMAN: | ||
| 61 | state->layer_text = "Workman"; | ||
| 62 | state->target_lcd_color = LCD_COLOR_wrapper(HSV_GOLDENROD); | ||
| 63 | break; | ||
| 64 | case _DVORAK: | ||
| 65 | state->layer_text = "Dvorak"; | ||
| 66 | state->target_lcd_color = LCD_COLOR_wrapper(HSV_SPRINGGREEN); | ||
| 67 | break; | ||
| 68 | case _COLEMAK: | ||
| 69 | state->layer_text = "Colemak"; | ||
| 70 | state->target_lcd_color = LCD_COLOR_wrapper(HSV_MAGENTA); | ||
| 71 | break; break; | ||
| 72 | default: | ||
| 73 | state->layer_text = "NONE"; | ||
| 74 | state->target_lcd_color = LCD_COLOR_wrapper(HSV_RED); | ||
| 75 | break; | ||
| 76 | } | ||
| 77 | } | ||
diff --git a/layouts/community/ortho_4x12/drashna/config.h b/layouts/community/ortho_4x12/drashna/config.h index 6a99fcda0..4a1d1babe 100644 --- a/layouts/community/ortho_4x12/drashna/config.h +++ b/layouts/community/ortho_4x12/drashna/config.h | |||
| @@ -77,6 +77,8 @@ | |||
| 77 | # define PRODUCT Drashna Hacked Planck EZ | 77 | # define PRODUCT Drashna Hacked Planck EZ |
| 78 | # endif | 78 | # endif |
| 79 | #endif | 79 | #endif |
| 80 | #undef NO_USB_STARTUP_CHECK | ||
| 81 | |||
| 80 | 82 | ||
| 81 | #define EEPROM_I2C_RM24C512C | 83 | #define EEPROM_I2C_RM24C512C |
| 82 | 84 | ||
diff --git a/layouts/community/ortho_4x12/drashna/keymap.c b/layouts/community/ortho_4x12/drashna/keymap.c index 8070a7d35..d0df7f5c3 100644 --- a/layouts/community/ortho_4x12/drashna/keymap.c +++ b/layouts/community/ortho_4x12/drashna/keymap.c | |||
| @@ -16,9 +16,6 @@ | |||
| 16 | 16 | ||
| 17 | #include "drashna.h" | 17 | #include "drashna.h" |
| 18 | 18 | ||
| 19 | #ifdef RGBLIGHT_ENABLE | ||
| 20 | extern rgblight_config_t rgblight_config; | ||
| 21 | #endif | ||
| 22 | 19 | ||
| 23 | #ifdef BACKLIGHT_ENABLE | 20 | #ifdef BACKLIGHT_ENABLE |
| 24 | enum planck_keycodes { | 21 | enum planck_keycodes { |
| @@ -231,7 +228,8 @@ void suspend_wakeup_init_keymap(void) { | |||
| 231 | } | 228 | } |
| 232 | // clang-format on | 229 | // clang-format on |
| 233 | 230 | ||
| 234 | void rgb_matrix_indicators_user(void) { | 231 | |
| 232 | void rgb_matrix_indicators_advanced_user(uint8_t led_min, uint8_t led_max) { | ||
| 235 | uint8_t this_mod = get_mods(); | 233 | uint8_t this_mod = get_mods(); |
| 236 | uint8_t this_led = host_keyboard_leds(); | 234 | uint8_t this_led = host_keyboard_leds(); |
| 237 | uint8_t this_osm = get_oneshot_mods(); | 235 | uint8_t this_osm = get_oneshot_mods(); |
| @@ -240,8 +238,6 @@ void rgb_matrix_indicators_user(void) { | |||
| 240 | is_ez = true; | 238 | is_ez = true; |
| 241 | # endif | 239 | # endif |
| 242 | 240 | ||
| 243 | if (g_suspend_state || !rgb_matrix_config.enable) return; | ||
| 244 | |||
| 245 | # if defined(RGBLIGHT_ENABLE) | 241 | # if defined(RGBLIGHT_ENABLE) |
| 246 | if (!userspace_config.rgb_layer_change) | 242 | if (!userspace_config.rgb_layer_change) |
| 247 | # else | 243 | # else |
| @@ -250,46 +246,46 @@ void rgb_matrix_indicators_user(void) { | |||
| 250 | { | 246 | { |
| 251 | switch (get_highest_layer(layer_state)) { | 247 | switch (get_highest_layer(layer_state)) { |
| 252 | case _GAMEPAD: | 248 | case _GAMEPAD: |
| 253 | rgb_matrix_layer_helper(HSV_ORANGE, 1, rgb_matrix_config.speed, LED_FLAG_MODIFIER); | 249 | rgb_matrix_layer_helper(HSV_ORANGE, 1, rgb_matrix_config.speed, LED_FLAG_MODIFIER, led_min, led_max); |
| 254 | break; | 250 | break; |
| 255 | case _DIABLO: | 251 | case _DIABLO: |
| 256 | rgb_matrix_layer_helper(HSV_RED, 1, rgb_matrix_config.speed * 8, LED_FLAG_MODIFIER); | 252 | rgb_matrix_layer_helper(HSV_RED, 1, rgb_matrix_config.speed * 8, LED_FLAG_MODIFIER, led_min, led_max); |
| 257 | break; | 253 | break; |
| 258 | case _RAISE: | 254 | case _RAISE: |
| 259 | rgb_matrix_layer_helper(HSV_YELLOW, 1, rgb_matrix_config.speed, LED_FLAG_MODIFIER); | 255 | rgb_matrix_layer_helper(HSV_YELLOW, 1, rgb_matrix_config.speed, LED_FLAG_MODIFIER, led_min, led_max); |
| 260 | break; | 256 | break; |
| 261 | case _LOWER: | 257 | case _LOWER: |
| 262 | rgb_matrix_layer_helper(HSV_GREEN, 1, rgb_matrix_config.speed, LED_FLAG_MODIFIER); | 258 | rgb_matrix_layer_helper(HSV_GREEN, 1, rgb_matrix_config.speed, LED_FLAG_MODIFIER, led_min, led_max); |
| 263 | break; | 259 | break; |
| 264 | case _ADJUST: | 260 | case _ADJUST: |
| 265 | rgb_matrix_layer_helper(HSV_RED, 1, rgb_matrix_config.speed, LED_FLAG_MODIFIER); | 261 | rgb_matrix_layer_helper(HSV_RED, 1, rgb_matrix_config.speed, LED_FLAG_MODIFIER, led_min, led_max); |
| 266 | break; | 262 | break; |
| 267 | default: { | 263 | default: { |
| 268 | bool mods_enabled = IS_LAYER_ON(_MODS); | 264 | bool mods_enabled = IS_LAYER_ON(_MODS); |
| 269 | switch (get_highest_layer(default_layer_state)) { | 265 | switch (get_highest_layer(default_layer_state)) { |
| 270 | case _QWERTY: | 266 | case _QWERTY: |
| 271 | rgb_matrix_layer_helper(HSV_CYAN, mods_enabled, rgb_matrix_config.speed, LED_FLAG_MODIFIER); | 267 | rgb_matrix_layer_helper(HSV_CYAN, mods_enabled, rgb_matrix_config.speed, LED_FLAG_MODIFIER, led_min, led_max); |
| 272 | break; | 268 | break; |
| 273 | case _COLEMAK: | 269 | case _COLEMAK: |
| 274 | rgb_matrix_layer_helper(HSV_MAGENTA, mods_enabled, rgb_matrix_config.speed, LED_FLAG_MODIFIER); | 270 | rgb_matrix_layer_helper(HSV_MAGENTA, mods_enabled, rgb_matrix_config.speed, LED_FLAG_MODIFIER, led_min, led_max); |
| 275 | break; | 271 | break; |
| 276 | case _DVORAK: | 272 | case _DVORAK: |
| 277 | rgb_matrix_layer_helper(HSV_SPRINGGREEN, mods_enabled, rgb_matrix_config.speed, LED_FLAG_MODIFIER); | 273 | rgb_matrix_layer_helper(HSV_SPRINGGREEN, mods_enabled, rgb_matrix_config.speed, LED_FLAG_MODIFIER, led_min, led_max); |
| 278 | break; | 274 | break; |
| 279 | case _WORKMAN: | 275 | case _WORKMAN: |
| 280 | rgb_matrix_layer_helper(HSV_GOLDENROD, mods_enabled, rgb_matrix_config.speed, LED_FLAG_MODIFIER); | 276 | rgb_matrix_layer_helper(HSV_GOLDENROD, mods_enabled, rgb_matrix_config.speed, LED_FLAG_MODIFIER, led_min, led_max); |
| 281 | break; | 277 | break; |
| 282 | case _NORMAN: | 278 | case _NORMAN: |
| 283 | rgb_matrix_layer_helper(HSV_CORAL, mods_enabled, rgb_matrix_config.speed, LED_FLAG_MODIFIER); | 279 | rgb_matrix_layer_helper(HSV_CORAL, mods_enabled, rgb_matrix_config.speed, LED_FLAG_MODIFIER, led_min, led_max); |
| 284 | break; | 280 | break; |
| 285 | case _MALTRON: | 281 | case _MALTRON: |
| 286 | rgb_matrix_layer_helper(HSV_YELLOW, mods_enabled, rgb_matrix_config.speed, LED_FLAG_MODIFIER); | 282 | rgb_matrix_layer_helper(HSV_YELLOW, mods_enabled, rgb_matrix_config.speed, LED_FLAG_MODIFIER, led_min, led_max); |
| 287 | break; | 283 | break; |
| 288 | case _EUCALYN: | 284 | case _EUCALYN: |
| 289 | rgb_matrix_layer_helper(HSV_PINK, mods_enabled, rgb_matrix_config.speed, LED_FLAG_MODIFIER); | 285 | rgb_matrix_layer_helper(HSV_PINK, mods_enabled, rgb_matrix_config.speed, LED_FLAG_MODIFIER, led_min, led_max); |
| 290 | break; | 286 | break; |
| 291 | case _CARPLAX: | 287 | case _CARPLAX: |
| 292 | rgb_matrix_layer_helper(HSV_BLUE, mods_enabled, rgb_matrix_config.speed, LED_FLAG_MODIFIER); | 288 | rgb_matrix_layer_helper(HSV_BLUE, mods_enabled, rgb_matrix_config.speed, LED_FLAG_MODIFIER, led_min, led_max); |
| 293 | break; | 289 | break; |
| 294 | } | 290 | } |
| 295 | break; | 291 | break; |
| @@ -299,35 +295,35 @@ void rgb_matrix_indicators_user(void) { | |||
| 299 | 295 | ||
| 300 | switch (get_highest_layer(default_layer_state)) { | 296 | switch (get_highest_layer(default_layer_state)) { |
| 301 | case _QWERTY: | 297 | case _QWERTY: |
| 302 | rgb_matrix_set_color(is_ez ? 41 : 42, 0x00, 0xFF, 0xFF); | 298 | RGB_MATRIX_INDICATOR_SET_COLOR((is_ez ? 41 : 42), 0x00, 0xFF, 0xFF); |
| 303 | break; | 299 | break; |
| 304 | case _COLEMAK: | 300 | case _COLEMAK: |
| 305 | rgb_matrix_set_color(is_ez ? 41 : 42, 0xFF, 0x00, 0xFF); | 301 | RGB_MATRIX_INDICATOR_SET_COLOR((is_ez ? 41 : 42), 0xFF, 0x00, 0xFF); |
| 306 | break; | 302 | break; |
| 307 | case _DVORAK: | 303 | case _DVORAK: |
| 308 | rgb_matrix_set_color(is_ez ? 41 : 42, 0x00, 0xFF, 0x00); | 304 | RGB_MATRIX_INDICATOR_SET_COLOR((is_ez ? 41 : 42), 0x00, 0xFF, 0x00); |
| 309 | break; | 305 | break; |
| 310 | case _WORKMAN: | 306 | case _WORKMAN: |
| 311 | rgb_matrix_set_color(is_ez ? 41 : 42, 0xD9, 0xA5, 0x21); | 307 | RGB_MATRIX_INDICATOR_SET_COLOR((is_ez ? 41 : 42), 0xD9, 0xA5, 0x21); |
| 312 | break; | 308 | break; |
| 313 | } | 309 | } |
| 314 | 310 | ||
| 315 | if ((this_mod | this_osm) & MOD_MASK_SHIFT || this_led & (1 << USB_LED_CAPS_LOCK)) { | 311 | if ((this_mod | this_osm) & MOD_MASK_SHIFT || this_led & (1 << USB_LED_CAPS_LOCK)) { |
| 316 | if (!layer_state_cmp(layer_state, _ADJUST)) { | 312 | if (!layer_state_cmp(layer_state, _ADJUST)) { |
| 317 | rgb_matrix_set_color(24, 0x00, 0xFF, 0x00); | 313 | RGB_MATRIX_INDICATOR_SET_COLOR(24, 0x00, 0xFF, 0x00); |
| 318 | } | 314 | } |
| 319 | rgb_matrix_set_color(36, 0x00, 0xFF, 0x00); | 315 | RGB_MATRIX_INDICATOR_SET_COLOR(36, 0x00, 0xFF, 0x00); |
| 320 | } | 316 | } |
| 321 | if ((this_mod | this_osm) & MOD_MASK_CTRL) { | 317 | if ((this_mod | this_osm) & MOD_MASK_CTRL) { |
| 322 | rgb_matrix_set_color(25, 0xFF, 0x00, 0x00); | 318 | RGB_MATRIX_INDICATOR_SET_COLOR(25, 0xFF, 0x00, 0x00); |
| 323 | rgb_matrix_set_color(34, 0xFF, 0x00, 0x00); | 319 | RGB_MATRIX_INDICATOR_SET_COLOR(34, 0xFF, 0x00, 0x00); |
| 324 | rgb_matrix_set_color(37, 0xFF, 0x00, 0x00); | 320 | RGB_MATRIX_INDICATOR_SET_COLOR(37, 0xFF, 0x00, 0x00); |
| 325 | } | 321 | } |
| 326 | if ((this_mod | this_osm) & MOD_MASK_GUI) { | 322 | if ((this_mod | this_osm) & MOD_MASK_GUI) { |
| 327 | rgb_matrix_set_color(39, 0xFF, 0xD9, 0x00); | 323 | RGB_MATRIX_INDICATOR_SET_COLOR(39, 0xFF, 0xD9, 0x00); |
| 328 | } | 324 | } |
| 329 | if ((this_mod | this_osm) & MOD_MASK_ALT) { | 325 | if ((this_mod | this_osm) & MOD_MASK_ALT) { |
| 330 | rgb_matrix_set_color(38, 0x00, 0x00, 0xFF); | 326 | RGB_MATRIX_INDICATOR_SET_COLOR(38, 0x00, 0x00, 0xFF); |
| 331 | } | 327 | } |
| 332 | } | 328 | } |
| 333 | 329 | ||
diff --git a/layouts/community/split_3x6_3/drashna/config.h b/layouts/community/split_3x6_3/drashna/config.h index 7db51fb6e..b9b1d073d 100644 --- a/layouts/community/split_3x6_3/drashna/config.h +++ b/layouts/community/split_3x6_3/drashna/config.h | |||
| @@ -19,14 +19,11 @@ | |||
| 19 | /* Select hand configuration */ | 19 | /* Select hand configuration */ |
| 20 | 20 | ||
| 21 | // #define MASTER_LEFT | 21 | // #define MASTER_LEFT |
| 22 | // #define MASTER_RIGHT | 22 | #define MASTER_RIGHT |
| 23 | #define EE_HANDS | 23 | // #define EE_HAND |
| 24 | |||
| 25 | #undef USE_I2C | 24 | #undef USE_I2C |
| 26 | #undef SSD1306OLED | 25 | #undef SSD1306OLED |
| 27 | 26 | ||
| 28 | #define USE_SERIAL_PD2 | ||
| 29 | |||
| 30 | // #define TAPPING_FORCE_HOLD | 27 | // #define TAPPING_FORCE_HOLD |
| 31 | // #define TAPPING_TERM 100 | 28 | // #define TAPPING_TERM 100 |
| 32 | 29 | ||
| @@ -41,6 +38,10 @@ | |||
| 41 | #endif | 38 | #endif |
| 42 | 39 | ||
| 43 | #ifdef RGB_MATRIX_ENABLE | 40 | #ifdef RGB_MATRIX_ENABLE |
| 41 | # ifdef CONVERT_TO_PROTON_C | ||
| 42 | # undef RGB_DI_PIN | ||
| 43 | # define RGB_DI_PIN PAL_LINE(GPIOA, 3) | ||
| 44 | # endif | ||
| 44 | # define RGB_MATRIX_KEYPRESSES // reacts to keypresses | 45 | # define RGB_MATRIX_KEYPRESSES // reacts to keypresses |
| 45 | // # define RGB_MATRIX_KEYRELEASES // reacts to keyreleases (instead of keypresses) | 46 | // # define RGB_MATRIX_KEYRELEASES // reacts to keyreleases (instead of keypresses) |
| 46 | // # define RGB_DISABLE_AFTER_TIMEOUT 0 // number of ticks to wait until disabling effects | 47 | // # define RGB_DISABLE_AFTER_TIMEOUT 0 // number of ticks to wait until disabling effects |
| @@ -54,6 +55,24 @@ | |||
| 54 | # define RGB_MATRIX_SPD_STEP 10 | 55 | # define RGB_MATRIX_SPD_STEP 10 |
| 55 | #endif | 56 | #endif |
| 56 | 57 | ||
| 58 | #ifdef CONVERT_TO_PROTON_C | ||
| 59 | # define WS2812_PWM_DRIVER PWMD15 // default: PWMD2 | ||
| 60 | # define WS2812_PWM_CHANNEL 2 // default: 2 | ||
| 61 | # define WS2812_PWM_PAL_MODE 9 // Pin "alternate function", see the respective datasheet for the appropriate values for your MCU. default: 2 | ||
| 62 | # define WS2812_DMA_STREAM STM32_DMA1_STREAM5 // DMA Stream for TIMx_UP, see the respective reference manual for the appropriate values for your MCU. | ||
| 63 | # define WS2812_DMA_CHANNEL 5 // DMA Channel for TIMx_UP, see the respective reference manual for the appropriate values for your MCU. | ||
| 64 | # define WS2812_DMAMUX_ID STM32_DMAMUX1_TIM15_UP // DMAMUX configuration for TIMx_UP -- only required if your MCU has a DMAMUX peripheral, see the respective reference manual for the appropriate values for your MCU. | ||
| 65 | |||
| 66 | # undef SOFT_SERIAL_PIN | ||
| 67 | # define SOFT_SERIAL_PIN D3 | ||
| 68 | # define SERIAL_USART_DRIVER SD1 // USART driver of TX pin. default: SD1 | ||
| 69 | # define SERIAL_USART_TX_PAL_MODE 7 // Pin "alternate function", see the respective datasheet for the appropriate values for your MCU. default: 7 | ||
| 70 | |||
| 71 | |||
| 72 | // #define INIT_EE_HANDS_LEFT | ||
| 73 | // #define INIT_EE_HANDS_RIGHT | ||
| 74 | #endif | ||
| 75 | |||
| 57 | #ifdef AUDIO_ENABLE | 76 | #ifdef AUDIO_ENABLE |
| 58 | # define B6_AUDIO | 77 | # define B6_AUDIO |
| 59 | # define NO_MUSIC_MODE | 78 | # define NO_MUSIC_MODE |
| @@ -64,8 +83,11 @@ | |||
| 64 | #endif | 83 | #endif |
| 65 | 84 | ||
| 66 | #undef PRODUCT | 85 | #undef PRODUCT |
| 67 | #define PRODUCT Drashna Hacked Corne Keyboard | 86 | #ifdef CONVERT_TO_PROTON_C |
| 68 | 87 | # define PRODUCT Drashna Hacked ARM Corne Keyboard | |
| 88 | #else | ||
| 89 | # define PRODUCT Drashna Hacked Corne Keyboard | ||
| 90 | #endif | ||
| 69 | #define OLED_FONT_H "layouts/community/split_3x6_3/drashna/glcdfont.c" | 91 | #define OLED_FONT_H "layouts/community/split_3x6_3/drashna/glcdfont.c" |
| 70 | // #define OLED_FONT_WIDTH 5 | 92 | // #define OLED_FONT_WIDTH 5 |
| 71 | // #define OLED_FONT_HEIGHT 7 | 93 | // #define OLED_FONT_HEIGHT 7 |
diff --git a/layouts/community/split_3x6_3/drashna/halconf.h b/layouts/community/split_3x6_3/drashna/halconf.h new file mode 100644 index 000000000..b099320b3 --- /dev/null +++ b/layouts/community/split_3x6_3/drashna/halconf.h | |||
| @@ -0,0 +1,22 @@ | |||
| 1 | /* Copyright 2020 Nick Brassel (tzarc) | ||
| 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 3 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 <https://www.gnu.org/licenses/>. | ||
| 15 | */ | ||
| 16 | #pragma once | ||
| 17 | |||
| 18 | // #define HAL_USE_DAC TRUE | ||
| 19 | #define HAL_USE_PWM TRUE | ||
| 20 | #define HAL_USE_SERIAL TRUE | ||
| 21 | |||
| 22 | #include_next <halconf.h> | ||
diff --git a/layouts/community/split_3x6_3/drashna/keymap.c b/layouts/community/split_3x6_3/drashna/keymap.c index e53d05397..513cc7f7d 100644 --- a/layouts/community/split_3x6_3/drashna/keymap.c +++ b/layouts/community/split_3x6_3/drashna/keymap.c | |||
| @@ -16,11 +16,6 @@ | |||
| 16 | 16 | ||
| 17 | #include "drashna.h" | 17 | #include "drashna.h" |
| 18 | 18 | ||
| 19 | #ifdef RGBLIGHT_ENABLE | ||
| 20 | // Following line allows macro to read current RGB settings | ||
| 21 | extern rgblight_config_t rgblight_config; | ||
| 22 | #endif | ||
| 23 | |||
| 24 | enum crkbd_keycodes { RGBRST = NEW_SAFE_RANGE }; | 19 | enum crkbd_keycodes { RGBRST = NEW_SAFE_RANGE }; |
| 25 | 20 | ||
| 26 | /* | 21 | /* |
| @@ -31,6 +26,7 @@ enum crkbd_keycodes { RGBRST = NEW_SAFE_RANGE }; | |||
| 31 | * of use. K## is a placeholder to pass through the individual keycodes | 26 | * of use. K## is a placeholder to pass through the individual keycodes |
| 32 | */ | 27 | */ |
| 33 | 28 | ||
| 29 | // clang-format off | ||
| 34 | #define LAYOUT_split_3x6_3_base( \ | 30 | #define LAYOUT_split_3x6_3_base( \ |
| 35 | K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, \ | 31 | K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, \ |
| 36 | K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, \ | 32 | K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, \ |
| @@ -40,7 +36,7 @@ enum crkbd_keycodes { RGBRST = NEW_SAFE_RANGE }; | |||
| 40 | KC_ESC, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, KC_MINS, \ | 36 | KC_ESC, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, KC_MINS, \ |
| 41 | ALT_T(KC_TAB), K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, RALT_T(KC_QUOT), \ | 37 | ALT_T(KC_TAB), K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, RALT_T(KC_QUOT), \ |
| 42 | OS_LSFT, CTL_T(K21), K22, K23, K24, K25, K26, K27, K28, K29, RCTL_T(K2A), OS_RSFT, \ | 38 | OS_LSFT, CTL_T(K21), K22, K23, K24, K25, K26, K27, K28, K29, RCTL_T(K2A), OS_RSFT, \ |
| 43 | KC_GRV, KC_SPC, BK_LWER, DL_RAIS, KC_ENT, OS_RGUI \ | 39 | RGB_MOD, KC_SPC, BK_LWER, DL_RAIS, KC_ENT, OS_RGUI \ |
| 44 | ) | 40 | ) |
| 45 | #define LAYOUT_split_3x6_3_base_wrapper(...) LAYOUT_split_3x6_3_base(__VA_ARGS__) | 41 | #define LAYOUT_split_3x6_3_base_wrapper(...) LAYOUT_split_3x6_3_base(__VA_ARGS__) |
| 46 | 42 | ||
| @@ -123,31 +119,17 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { | |||
| 123 | }; | 119 | }; |
| 124 | // clang-format on | 120 | // clang-format on |
| 125 | 121 | ||
| 126 | bool process_record_keymap(uint16_t keycode, keyrecord_t *record) { | ||
| 127 | if (record->event.pressed) { | ||
| 128 | #ifndef SPLIT_KEYBOARD | ||
| 129 | if (keycode == RESET && !is_master) { | ||
| 130 | return false; | ||
| 131 | } | ||
| 132 | #endif | ||
| 133 | } | ||
| 134 | return true; | ||
| 135 | } | ||
| 136 | |||
| 137 | #ifdef OLED_DRIVER_ENABLE | 122 | #ifdef OLED_DRIVER_ENABLE |
| 138 | oled_rotation_t oled_init_user(oled_rotation_t rotation) { | 123 | oled_rotation_t oled_init_user(oled_rotation_t rotation) { |
| 139 | # ifndef SPLIT_KEYBOARD | 124 | if (is_keyboard_master()) { |
| 140 | if (is_master) { | ||
| 141 | # endif | ||
| 142 | return OLED_ROTATION_270; | 125 | return OLED_ROTATION_270; |
| 143 | # ifndef SPLIT_KEYBOARD | 126 | } else { |
| 144 | } else { | ||
| 145 | return rotation; | 127 | return rotation; |
| 146 | } | 128 | } |
| 147 | # endif | ||
| 148 | } | 129 | } |
| 149 | #endif | 130 | #endif |
| 150 | 131 | ||
| 132 | #ifdef TAPPING_TERM_PER_KEY | ||
| 151 | uint16_t get_tapping_term(uint16_t keycode, keyrecord_t *record) { | 133 | uint16_t get_tapping_term(uint16_t keycode, keyrecord_t *record) { |
| 152 | switch (keycode) { | 134 | switch (keycode) { |
| 153 | case ALT_T(KC_A): | 135 | case ALT_T(KC_A): |
| @@ -156,75 +138,74 @@ uint16_t get_tapping_term(uint16_t keycode, keyrecord_t *record) { | |||
| 156 | return TAPPING_TERM; | 138 | return TAPPING_TERM; |
| 157 | } | 139 | } |
| 158 | } | 140 | } |
| 141 | #endif | ||
| 142 | |||
| 159 | 143 | ||
| 144 | void matrix_slave_scan_user(void) { | ||
| 160 | #ifdef RGB_MATRIX_ENABLE | 145 | #ifdef RGB_MATRIX_ENABLE |
| 146 | rgb_matrix_task(); | ||
| 147 | #endif | ||
| 148 | } | ||
| 161 | 149 | ||
| 150 | #ifdef RGB_MATRIX_ENABLE | ||
| 162 | void suspend_power_down_keymap(void) { rgb_matrix_set_suspend_state(true); } | 151 | void suspend_power_down_keymap(void) { rgb_matrix_set_suspend_state(true); } |
| 163 | 152 | ||
| 164 | void suspend_wakeup_init_keymap(void) { rgb_matrix_set_suspend_state(false); } | 153 | void suspend_wakeup_init_keymap(void) { rgb_matrix_set_suspend_state(false); } |
| 165 | 154 | ||
| 166 | void check_default_layer(uint8_t mode, uint8_t type) { | 155 | void check_default_layer(uint8_t mode, uint8_t type, uint8_t led_min, uint8_t led_max) { |
| 167 | switch (get_highest_layer(default_layer_state)) { | 156 | switch (get_highest_layer(default_layer_state)) { |
| 168 | case _QWERTY: | 157 | case _QWERTY: |
| 169 | rgb_matrix_layer_helper(HSV_CYAN, mode, rgb_matrix_config.speed, type); | 158 | rgb_matrix_layer_helper(HSV_CYAN, mode, rgb_matrix_config.speed, type, led_min, led_max); |
| 170 | break; | 159 | break; |
| 171 | case _COLEMAK: | 160 | case _COLEMAK: |
| 172 | rgb_matrix_layer_helper(HSV_MAGENTA, mode, rgb_matrix_config.speed, type); | 161 | rgb_matrix_layer_helper(HSV_MAGENTA, mode, rgb_matrix_config.speed, type, led_min, led_max); |
| 173 | break; | 162 | break; |
| 174 | case _DVORAK: | 163 | case _DVORAK: |
| 175 | rgb_matrix_layer_helper(HSV_SPRINGGREEN, mode, rgb_matrix_config.speed, type); | 164 | rgb_matrix_layer_helper(HSV_SPRINGGREEN, mode, rgb_matrix_config.speed, type, led_min, led_max); |
| 176 | break; | 165 | break; |
| 177 | case _WORKMAN: | 166 | case _WORKMAN: |
| 178 | rgb_matrix_layer_helper(HSV_GOLDENROD, mode, rgb_matrix_config.speed, type); | 167 | rgb_matrix_layer_helper(HSV_GOLDENROD, mode, rgb_matrix_config.speed, type, led_min, led_max); |
| 179 | break; | 168 | break; |
| 180 | case _NORMAN: | 169 | case _NORMAN: |
| 181 | rgb_matrix_layer_helper(HSV_CORAL, mode, rgb_matrix_config.speed, type); | 170 | rgb_matrix_layer_helper(HSV_CORAL, mode, rgb_matrix_config.speed, type, led_min, led_max); |
| 182 | break; | 171 | break; |
| 183 | case _MALTRON: | 172 | case _MALTRON: |
| 184 | rgb_matrix_layer_helper(HSV_YELLOW, mode, rgb_matrix_config.speed, type); | 173 | rgb_matrix_layer_helper(HSV_YELLOW, mode, rgb_matrix_config.speed, type, led_min, led_max); |
| 185 | break; | 174 | break; |
| 186 | case _EUCALYN: | 175 | case _EUCALYN: |
| 187 | rgb_matrix_layer_helper(HSV_PINK, mode, rgb_matrix_config.speed, type); | 176 | rgb_matrix_layer_helper(HSV_PINK, mode, rgb_matrix_config.speed, type, led_min, led_max); |
| 188 | break; | 177 | break; |
| 189 | case _CARPLAX: | 178 | case _CARPLAX: |
| 190 | rgb_matrix_layer_helper(HSV_BLUE, mode, rgb_matrix_config.speed, type); | 179 | rgb_matrix_layer_helper(HSV_BLUE, mode, rgb_matrix_config.speed, type, led_min, led_max); |
| 191 | break; | 180 | break; |
| 192 | } | 181 | } |
| 193 | } | 182 | } |
| 194 | 183 | ||
| 195 | void rgb_matrix_indicators_user(void) { | 184 | void rgb_matrix_indicators_advanced_user(uint8_t led_min, uint8_t led_max) { |
| 196 | if (userspace_config.rgb_layer_change && | 185 | if (!is_keyboard_master()) return; |
| 197 | # ifdef RGB_DISABLE_WHEN_USB_SUSPENDED | 186 | if (userspace_config.rgb_layer_change) { |
| 198 | !g_suspend_state && | ||
| 199 | # endif | ||
| 200 | # if defined(RGBLIGHT_ENABLE) | ||
| 201 | (!rgblight_config.enable && rgb_matrix_config.enable) | ||
| 202 | # else | ||
| 203 | rgb_matrix_config.enable | ||
| 204 | # endif | ||
| 205 | ) { | ||
| 206 | switch (get_highest_layer(layer_state)) { | 187 | switch (get_highest_layer(layer_state)) { |
| 207 | case _GAMEPAD: | 188 | case _GAMEPAD: |
| 208 | rgb_matrix_layer_helper(HSV_ORANGE, 0, rgb_matrix_config.speed, LED_FLAG_UNDERGLOW); | 189 | rgb_matrix_layer_helper(HSV_ORANGE, 0, rgb_matrix_config.speed, LED_FLAG_UNDERGLOW, led_min, led_max); |
| 209 | break; | 190 | break; |
| 210 | case _DIABLO: | 191 | case _DIABLO: |
| 211 | rgb_matrix_layer_helper(HSV_RED, 0, rgb_matrix_config.speed, LED_FLAG_UNDERGLOW); | 192 | rgb_matrix_layer_helper(HSV_RED, 0, rgb_matrix_config.speed, LED_FLAG_UNDERGLOW, led_min, led_max); |
| 212 | break; | 193 | break; |
| 213 | case _RAISE: | 194 | case _RAISE: |
| 214 | rgb_matrix_layer_helper(HSV_YELLOW, 0, rgb_matrix_config.speed, LED_FLAG_UNDERGLOW); | 195 | rgb_matrix_layer_helper(HSV_YELLOW, 0, rgb_matrix_config.speed, LED_FLAG_UNDERGLOW, led_min, led_max); |
| 215 | break; | 196 | break; |
| 216 | case _LOWER: | 197 | case _LOWER: |
| 217 | rgb_matrix_layer_helper(HSV_GREEN, 0, rgb_matrix_config.speed, LED_FLAG_UNDERGLOW); | 198 | rgb_matrix_layer_helper(HSV_GREEN, 0, rgb_matrix_config.speed, LED_FLAG_UNDERGLOW, led_min, led_max); |
| 218 | break; | 199 | break; |
| 219 | case _ADJUST: | 200 | case _ADJUST: |
| 220 | rgb_matrix_layer_helper(HSV_RED, 0, rgb_matrix_config.speed, LED_FLAG_UNDERGLOW); | 201 | rgb_matrix_layer_helper(HSV_RED, 0, rgb_matrix_config.speed, LED_FLAG_UNDERGLOW, led_min, led_max); |
| 221 | break; | 202 | break; |
| 222 | default: { | 203 | default: { |
| 223 | check_default_layer(IS_LAYER_ON(_MODS), LED_FLAG_UNDERGLOW); | 204 | check_default_layer(IS_LAYER_ON(_MODS), LED_FLAG_UNDERGLOW, led_min, led_max); |
| 224 | break; | 205 | break; |
| 225 | } | 206 | } |
| 226 | } | 207 | } |
| 227 | check_default_layer(0, LED_FLAG_MODIFIER); | 208 | check_default_layer(0, LED_FLAG_MODIFIER, led_min, led_max); |
| 228 | } | 209 | } |
| 229 | } | 210 | } |
| 230 | #endif | 211 | #endif |
diff --git a/layouts/community/split_3x6_3/drashna/mcuconf.h b/layouts/community/split_3x6_3/drashna/mcuconf.h new file mode 100644 index 000000000..429e4e1cd --- /dev/null +++ b/layouts/community/split_3x6_3/drashna/mcuconf.h | |||
| @@ -0,0 +1,32 @@ | |||
| 1 | /* Copyright 2020 Nick Brassel (tzarc) | ||
| 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 3 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 <https://www.gnu.org/licenses/>. | ||
| 15 | */ | ||
| 16 | #pragma once | ||
| 17 | |||
| 18 | #include_next <mcuconf.h> | ||
| 19 | |||
| 20 | // #undef STM32_HSE_ENABLED | ||
| 21 | // #define STM32_HSE_ENABLED FALSE | ||
| 22 | #undef STM32_GPT_USE_TIM15 | ||
| 23 | #define STM32_GPT_USE_TIM15 FALSE | ||
| 24 | |||
| 25 | #undef STM32_PWM_USE_TIM15 | ||
| 26 | #define STM32_PWM_USE_TIM15 TRUE | ||
| 27 | |||
| 28 | #undef STM32_SERIAL_USE_USART1 | ||
| 29 | #define STM32_SERIAL_USE_USART1 TRUE | ||
| 30 | |||
| 31 | #undef STM32_PWM_TIM15_IRQ_PRIORITY | ||
| 32 | #define STM32_PWM_TIM15_IRQ_PRIORITY 16 | ||
diff --git a/layouts/community/split_3x6_3/drashna/rules.mk b/layouts/community/split_3x6_3/drashna/rules.mk index 46f543f4e..5358cb0ac 100644 --- a/layouts/community/split_3x6_3/drashna/rules.mk +++ b/layouts/community/split_3x6_3/drashna/rules.mk | |||
| @@ -3,7 +3,7 @@ | |||
| 3 | # change to "no" to disable the options, or define them in the Makefile in | 3 | # change to "no" to disable the options, or define them in the Makefile in |
| 4 | # the appropriate keymap folder that will get included automatically | 4 | # the appropriate keymap folder that will get included automatically |
| 5 | # | 5 | # |
| 6 | BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000) | 6 | BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration(+1000) |
| 7 | MOUSEKEY_ENABLE = no # Mouse keys(+4700) | 7 | MOUSEKEY_ENABLE = no # Mouse keys(+4700) |
| 8 | EXTRAKEY_ENABLE = yes # Audio control and System control(+450) | 8 | EXTRAKEY_ENABLE = yes # Audio control and System control(+450) |
| 9 | CONSOLE_ENABLE = no # Console for debug(+400) | 9 | CONSOLE_ENABLE = no # Console for debug(+400) |
| @@ -20,9 +20,15 @@ SWAP_HANDS_ENABLE = no # Enable one-hand typing | |||
| 20 | # Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE | 20 | # Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE |
| 21 | SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend | 21 | SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend |
| 22 | 22 | ||
| 23 | ifeq ($(strip $(KEYBOARD)), crkbd/rev1) | 23 | ifeq ($(strip $(KEYBOARD)), crkbd/rev1/common) |
| 24 | OLED_DRIVER_ENABLE = yes | 24 | OLED_DRIVER_ENABLE = yes |
| 25 | RGB_MATRIX_ENABLE = yes | 25 | RGB_MATRIX_ENABLE = yes |
| 26 | HAPTIC_ENABLE = SOLENOID | 26 | HAPTIC_ENABLE = SOLENOID |
| 27 | BOOTLOADER = qmk-dfu | 27 | BOOTLOADER = qmk-dfu |
| 28 | endif | 28 | endif |
| 29 | |||
| 30 | ifeq ($(strip $(CTPC)), yes) | ||
| 31 | HAPTIC_ENABLE = no | ||
| 32 | WS2812_DRIVER = pwm | ||
| 33 | SERIAL_DRIVER = usart | ||
| 34 | endif | ||
diff --git a/layouts/community/split_3x6_3/drashna/ssd1306.c b/layouts/community/split_3x6_3/drashna/ssd1306.c new file mode 100644 index 000000000..e69de29bb --- /dev/null +++ b/layouts/community/split_3x6_3/drashna/ssd1306.c | |||
