From f3d5b1091d364468cd9f5510aef9e723d8542279 Mon Sep 17 00:00:00 2001 From: Drashna Jaelre Date: Mon, 6 May 2019 22:34:09 -0700 Subject: [Keymap] RGB Changes for Drashna Keyboards (#5803) * Disable a bunch of reactive modes * Enable rgb matrix for Corne Keyboard * Convert CRKBD to rgb matrix * Add Gergo keyboard layout * Make Diablo 3 tap dance better * Add basic support for Planck EZ * Fix RGB Matrix stuff * Fix keycodes for Planck EZ * Update CRKBD OLED stuff * Fix typo for sleep on ergodox glow * Improve my gergo layout * Scrolling OLED key logger! * Change gergo layout * Hnadle unicode keycodes if unicode is disabled * Disable COMMAND/CONSOLE for gergo * Fix right side control * Re-enable LTO for all platforms Since I got updated arm gcc binaries that no longer error out on lto * Update formatting to match newer community standards Poor 2 space * Re-alight startup animation to use new HUE range * Streamline gitlab ci scripts * Disabled Space Cadet * Add support for breathing table * Enable new LTO Option And clean up defines that will now be repeatitive * Remove vscode settings * Additional formatting cleanup of config.h files --- layouts/community/ergodox/drashna/config.h | 9 +- layouts/community/ergodox/drashna/keymap.c | 300 +++++++++++------------ layouts/community/ergodox/drashna/rules.mk | 23 +- layouts/community/ergodox/drashna_glow/config.h | 15 +- layouts/community/numpad_5x6/drashna/config.h | 19 +- layouts/community/ortho_4x12/drashna/config.h | 59 ++--- layouts/community/ortho_4x12/drashna/keymap.c | 312 +++++++++++++----------- layouts/community/ortho_4x12/drashna/rules.mk | 25 +- layouts/community/ortho_5x12/drashna/config.h | 29 ++- 9 files changed, 419 insertions(+), 372 deletions(-) (limited to 'layouts/community') diff --git a/layouts/community/ergodox/drashna/config.h b/layouts/community/ergodox/drashna/config.h index 7b2ad4fa1c..7feaf6f252 100644 --- a/layouts/community/ergodox/drashna/config.h +++ b/layouts/community/ergodox/drashna/config.h @@ -1,12 +1,11 @@ #pragma once #ifdef RGBLIGHT_ENABLE -#undef RGBLIGHT_SAT_STEP -#define RGBLIGHT_SAT_STEP 12 +# undef RGBLIGHT_SAT_STEP +# define RGBLIGHT_SAT_STEP 12 -#define RGBLIGHT_EFFECT_KNIGHT_LENGTH 3 -#define RGBLIGHT_EFFECT_SNAKE_LENGTH 3 -#define RGBLIGHT_EFFECT_BREATHE_CENTER 1 +# define RGBLIGHT_EFFECT_KNIGHT_LENGTH 3 +# define RGBLIGHT_EFFECT_SNAKE_LENGTH 3 #endif // RGBLIGHT_ENABLE diff --git a/layouts/community/ergodox/drashna/keymap.c b/layouts/community/ergodox/drashna/keymap.c index 26c2e33040..eeb21501ba 100644 --- a/layouts/community/ergodox/drashna/keymap.c +++ b/layouts/community/ergodox/drashna/keymap.c @@ -20,6 +20,9 @@ along with this program. If not, see . #ifdef UNICODEMAP_ENABLE #include "drashna_unicode.h" #endif // UNICODEMAP_ENABLE +#ifndef UNICODE_ENABLE +# define UC(x) KC_NO +#endif #ifdef RGB_MATRIX_ENABLE extern bool g_suspend_state; @@ -28,7 +31,7 @@ extern rgb_config_t rgb_matrix_config; extern userspace_config_t userspace_config; enum more_custom_keycodes { - KC_SWAP_NUM = NEW_SAFE_RANGE + KC_SWAP_NUM = NEW_SAFE_RANGE }; //define layer change stuff for underglow indicator @@ -43,7 +46,7 @@ bool skip_leds = false; KC_ESC, ________________NUMBER_LEFT________________, UC_FLIP, UC_TABL, ________________NUMBER_RIGHT_______________, KC_MINS, \ KC_TAB, K01, K02, K03, K04, K05, TG(_DIABLO), TG(_DIABLO), K06, K07, K08, K09, K0A, KC_BSLS, \ KC_C1R3, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, KC_QUOT, \ - KC_MLSF, CTL_T(K21), K22, K23, K24, K25, TG(_GAMEPAD), TG(_GAMEPAD), K26, K27, K28, K29, CTL_T(K2A), KC_MRSF, \ + KC_MLSF, CTL_T(K21), K22, K23, K24, K25, TG(_GAMEPAD), TG(_GAMEPAD), K26, K27, K28, K29, RCTL_T(K2A), KC_MRSF, \ KC_GRV, OS_MEH, OS_HYPR, KC_LBRC, KC_RBRC, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, UC(0x2E2E), \ OS_LALT, OS_LGUI, OS_RGUI, CTL_T(KC_ESCAPE), \ KC_APP, KC_MENU, \ @@ -305,87 +308,88 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { bool process_record_keymap(uint16_t keycode, keyrecord_t *record) { - switch (keycode) { - case KC_1: - if (IS_LAYER_ON(_GAMEPAD) && userspace_config.swapped_numbers) { - if (record->event.pressed) { - register_code(KC_2); - } else { - unregister_code(KC_2); - } - return false; - } - break; - case KC_2: - if (IS_LAYER_ON(_GAMEPAD) && userspace_config.swapped_numbers) { - if (record->event.pressed) { - register_code(KC_1); - } else { - unregister_code(KC_1); - } - return false; - } - break; - case KC_SWAP_NUM: - if (record->event.pressed) { - userspace_config.swapped_numbers ^= 1; - eeconfig_update_user(userspace_config.raw); - } - } - //switch (keycode) { - // case KC_P00: - // if (!record->event.pressed) { - // register_code(KC_KP_0); - // unregister_code(KC_KP_0); - // register_code(KC_KP_0); - // unregister_code(KC_KP_0); - // } - // return false; - // break; - //} - return true; + switch (keycode) { + case KC_1: + if (IS_LAYER_ON(_GAMEPAD) && userspace_config.swapped_numbers) { + if (record->event.pressed) { + register_code(KC_2); + } else { + unregister_code(KC_2); + } + return false; + } + break; + case KC_2: + if (IS_LAYER_ON(_GAMEPAD) && userspace_config.swapped_numbers) { + if (record->event.pressed) { + register_code(KC_1); + } else { + unregister_code(KC_1); + } + return false; + } + break; + case KC_SWAP_NUM: + if (record->event.pressed) { + userspace_config.swapped_numbers ^= 1; + eeconfig_update_user(userspace_config.raw); + } + break; + } + //switch (keycode) { + // case KC_P00: + // if (!record->event.pressed) { + // register_code(KC_KP_0); + // unregister_code(KC_KP_0); + // register_code(KC_KP_0); + // unregister_code(KC_KP_0); + // } + // return false; + // break; + //} + return true; } void matrix_scan_keymap(void) { // runs frequently to update info - uint8_t modifiers = get_mods(); - uint8_t led_usb_state = host_keyboard_leds(); - uint8_t one_shot = get_oneshot_mods(); - - if (!skip_leds) { - ergodox_board_led_off(); - ergodox_right_led_1_off(); - ergodox_right_led_2_off(); - ergodox_right_led_3_off(); - - // Since we're not using the LEDs here for layer indication anymore, - // then lets use them for modifier indicators. Shame we don't have 4... - // Also, no "else", since we want to know each, independently. - if ( ( modifiers | one_shot ) & MOD_MASK_SHIFT || led_usb_state & (1<event.pressed) { - register_code(KC_RSFT); - #ifdef BACKLIGHT_ENABLE - backlight_step(); - #endif - } else { - unregister_code(KC_RSFT); - } - return false; - break; + switch (keycode) { + #ifdef BACKLIGHT_ENABLE + case BACKLIT: + if (record->event.pressed) { + register_code(KC_RSFT); + #ifdef BACKLIGHT_ENABLE + backlight_step(); + #endif + } else { + unregister_code(KC_RSFT); + } + return false; + break; #endif - } - return true; + } + return true; } bool music_mask_user(uint16_t keycode) { - switch (keycode) { - case RAISE: - case LOWER: - case BK_LWER: - case SP_LWER: - case DL_RAIS: - case ET_RAIS: - return false; - default: - return true; - } + switch (keycode) { + case RAISE: + case LOWER: + case BK_LWER: + case SP_LWER: + case DL_RAIS: + case ET_RAIS: + return false; + default: + return true; + } } #ifdef RGB_MATRIX_ENABLE void suspend_power_down_keymap(void) { rgb_matrix_set_suspend_state(true); - rgb_matrix_config.enable = false; } void suspend_wakeup_init_keymap(void) { - rgb_matrix_config.enable = true; rgb_matrix_set_suspend_state(false); } -void rgb_matrix_layer_helper (uint8_t red, uint8_t green, uint8_t blue, bool default_layer) { - rgb_led led; - for (int i = 0; i < DRIVER_LED_TOTAL; i++) { - led = g_rgb_leds[i]; - if (HAS_FLAGS(led.flags, LED_FLAG_MODIFIER)) { - rgb_matrix_set_color( i, red, green, blue ); +void rgb_matrix_layer_helper (uint8_t red, uint8_t green, uint8_t blue) { + rgb_led led; + for (int i = 0; i < DRIVER_LED_TOTAL; i++) { + led = g_rgb_leds[i]; + if (HAS_FLAGS(led.flags, LED_FLAG_MODIFIER)) { + rgb_matrix_set_color( i, red, green, blue ); + } } - } } void rgb_matrix_indicators_user(void) { - uint8_t this_mod = get_mods(); - uint8_t this_led = host_keyboard_leds(); - uint8_t this_osm = get_oneshot_mods(); - - if (!g_suspend_state && userspace_config.rgb_layer_change && -#if defined(RGBLIGHT_ENABLE) && defined(RGB_MATRIX_ENABLE) - (!rgblight_config.enable && rgb_matrix_config.enable) + uint8_t this_mod = get_mods(); + uint8_t this_led = host_keyboard_leds(); + uint8_t this_osm = get_oneshot_mods(); + bool is_ez; + #ifdef KEYBOARD_planck_ez + is_ez = true; + #endif + + if ( userspace_config.rgb_layer_change && +#ifdef RGB_DISABLE_WHEN_USB_SUSPENDED + !g_suspend_state && +#endif +#if defined(RGBLIGHT_ENABLE) + (!rgblight_config.enable && rgb_matrix_config.enable) #else - rgb_matrix_config.enable + rgb_matrix_config.enable #endif - ) { - switch (biton32(layer_state)) { - case _RAISE: - rgb_matrix_layer_helper(0xFF, 0xFF, 0x00, false); break; - case _LOWER: - rgb_matrix_layer_helper(0x00, 0xFF, 0x00, false); break; - case _ADJUST: - rgb_matrix_layer_helper(0xFF, 0x00, 0x00, false); break; - default: - switch (biton32(default_layer_state)) { - case _QWERTY: - rgb_matrix_layer_helper(0x00, 0xFF, 0xFF, true); break; - case _COLEMAK: - rgb_matrix_layer_helper(0xFF, 0x00, 0xFF, true); break; - case _DVORAK: - rgb_matrix_layer_helper(0x00, 0xFF, 0x00, true); break; - case _WORKMAN: - rgb_matrix_layer_helper(0xD9, 0xA5, 0x21, true); break; - case _NORMAN: - rgb_matrix_layer_helper(0xFF, 0x7C, 0x4D, true); break; - case _MALTRON: - rgb_matrix_layer_helper(0xFF, 0xFF, 0x00, true); break; - case _EUCALYN: - rgb_matrix_layer_helper(0xFF, 0x80, 0xBF, true); break; - case _CARPLAX: - rgb_matrix_layer_helper(0x00, 0x00, 0xFF, true); break; + ) { + switch (biton32(layer_state)) { + case _RAISE: + rgb_matrix_layer_helper(0xFF, 0xFF, 0x00); break; + case _LOWER: + rgb_matrix_layer_helper(0x00, 0xFF, 0x00); break; + case _ADJUST: + rgb_matrix_layer_helper(0xFF, 0x00, 0x00); break; + default: + switch (biton32(default_layer_state)) { + case _QWERTY: + rgb_matrix_layer_helper(0x00, 0xFF, 0xFF); break; + case _COLEMAK: + rgb_matrix_layer_helper(0xFF, 0x00, 0xFF); break; + case _DVORAK: + rgb_matrix_layer_helper(0x00, 0xFF, 0x00); break; + case _WORKMAN: + rgb_matrix_layer_helper(0xD9, 0xA5, 0x21); break; + case _NORMAN: + rgb_matrix_layer_helper(0xFF, 0x7C, 0x4D); break; + case _MALTRON: + rgb_matrix_layer_helper(0xFF, 0xFF, 0x00); break; + case _EUCALYN: + rgb_matrix_layer_helper(0xFF, 0x80, 0xBF); break; + case _CARPLAX: + rgb_matrix_layer_helper(0x00, 0x00, 0xFF); break; + } } } - } - - switch (biton32(default_layer_state)) { - case _QWERTY: - rgb_matrix_set_color(42, 0x00, 0xFF, 0xFF); break; - case _COLEMAK: - rgb_matrix_set_color(42, 0xFF, 0x00, 0xFF); break; - case _DVORAK: - rgb_matrix_set_color(42, 0x00, 0xFF, 0x00); break; - case _WORKMAN: - rgb_matrix_set_color(42, 0xD9, 0xA5, 0x21); break; - } - if ( (this_mod | this_osm) & MOD_MASK_SHIFT || this_led & (1<