1
0
Fork 0

[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
This commit is contained in:
Drashna Jael're 2019-05-06 22:34:09 -07:00 committed by MechMerlin
parent 7a751f1141
commit f3d5b1091d
38 changed files with 1414 additions and 1444 deletions

View file

@ -2,49 +2,52 @@
#if defined(RGBLIGHT_ENABLE) && !defined(RGBLED_NUM)
#define RGB_DI_PIN B3
#define RGBLED_NUM 13 // Number of LEDs
#define RGBLIGHT_ANIMATIONS
#define RGBLIGHT_HUE_STEP 12
#define RGBLIGHT_SAT_STEP 12
#define RGBLIGHT_VAL_STEP 12
#define RGBLIGHT_EFFECT_KNIGHT_LENGTH 2
#define RGBLIGHT_EFFECT_SNAKE_LENGTH 2
#define RGBLIGHT_EFFECT_BREATHE_CENTER 1
# define RGB_DI_PIN B3
# define RGBLED_NUM 13 // Number of LEDs
# define RGBLIGHT_ANIMATIONS
# define RGBLIGHT_HUE_STEP 12
# define RGBLIGHT_SAT_STEP 12
# define RGBLIGHT_VAL_STEP 12
# define RGBLIGHT_EFFECT_KNIGHT_LENGTH 2
# define RGBLIGHT_EFFECT_SNAKE_LENGTH 2
# ifdef RGB_MATRIX_ENABLE
# define RGBLIGHT_DISABLE_KEYCODES
# endif
#endif // RGBLIGHT_ENABLE
#ifdef RGB_MATRIX_ENABLE
#define RGB_MATRIX_KEYPRESSES // reacts to keypresses (will slow down matrix scan by a lot)
# define RGB_MATRIX_KEYPRESSES // reacts to keypresses (will slow down matrix scan by a lot)
// #define RGB_MATRIX_KEYRELEASES // reacts to keyreleases (not recommened)
// #define RGB_DISABLE_AFTER_TIMEOUT 0 // number of ticks to wait until disabling effects
#define RGB_DISABLE_WHEN_USB_SUSPENDED true// turn off effects when suspended
// #define RGB_MATRIX_MAXIMUM_BRIGHTNESS 200 // limits maximum brightness of LEDs to 200 out of 255. If not defined maximum brightness is set to 255
#define EECONFIG_RGB_MATRIX (uint32_t *)15
# define RGB_DISABLE_WHEN_USB_SUSPENDED true// turn off effects when suspended
# ifndef KEYBOARD_planck_ez
# define EECONFIG_RGB_MATRIX (uint32_t *)15
# endif
#endif
#if defined(KEYBOARD_lets_split_rev2)
#define USE_SERIAL
#undef USE_I2C
#define EE_HANDS
# define USE_SERIAL
# undef USE_I2C
# define EE_HANDS
#endif
#if !defined(KEYBOARD_planck_light)
#ifdef RGBLIGHT_ENABLE
#define NO_MUSIC_MODE
#endif // RGBLIGHT_ENABLE
# ifdef RGBLIGHT_ENABLE
# define NO_MUSIC_MODE
# endif // RGBLIGHT_ENABLE
#endif // KEYBOARD_planck_light
#if defined(KEYBOARD_planck)
#undef PRODUCT
#if defined(KEYBOARD_planck_light)
#define PRODUCT Drashna Hacked RGB Beacon (Planck Light)
#elif defined(KEYBOARD_planck_rev6)
#define PRODUCT Drashna Hacked Planck Rev6
#elif defined(KEYBOARD_planck_EZ)
#define PRODUCT Drashna Hacked Planck EZ
#endif
# undef PRODUCT
# if defined(KEYBOARD_planck_light)
# define PRODUCT Drashna Hacked RGB Beacon (Planck Light)
# elif defined(KEYBOARD_planck_rev6)
# define PRODUCT Drashna Hacked Planck Rev6
# elif defined(KEYBOARD_planck_EZ)
# define PRODUCT Drashna Hacked Planck EZ
# endif
#endif
/*
@ -58,7 +61,7 @@
- MIDI notes can be sent when in Music mode is on
*/
#define MIDI_BASIC
// #define MIDI_BASIC
/* enable advanced MIDI features:
- MIDI notes can be added to the keymap

View file

@ -34,6 +34,18 @@ enum planck_keycodes {
#define BACKLIT OSM(MOD_LSFT)
#endif
#ifdef KEYBOARD_planck_ez
# define PLNK_1 BK_LWER
# define PLNK_2 SP_LWER
# define PLNK_3 KC_NO
# define PLNK_4 ET_RAIS
#else
# define PLNK_1 SP_LWER
# define PLNK_2 BK_LWER
# define PLNK_3 DL_RAIS
# define PLNK_4 ET_RAIS
#endif
#define LAYOUT_ortho_4x12_base( \
K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, \
K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, \
@ -42,8 +54,8 @@ enum planck_keycodes {
LAYOUT_ortho_4x12_wrapper( \
KC_ESC, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, KC_BSPC, \
KC_TAB, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, KC_QUOT, \
KC_MLSF, CTL_T(K21), K22, K23, K24, K25, K26, K27, K28, K29, CTL_T(K2A), KC_ENT, \
BACKLIT, OS_LCTL, OS_LALT, OS_LGUI, SP_LWER, BK_LWER, DL_RAIS, ET_RAIS, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT \
KC_MLSF, CTL_T(K21), K22, K23, K24, K25, K26, K27, K28, K29, RCTL_T(K2A), KC_ENT, \
BACKLIT, OS_LCTL, OS_LALT, OS_LGUI, PLNK_1, PLNK_2, PLNK_3, PLNK_4, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT \
)
#define LAYOUT_ortho_4x12_base_wrapper(...) LAYOUT_ortho_4x12_base(__VA_ARGS__)
@ -130,128 +142,132 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
bool process_record_keymap(uint16_t keycode, keyrecord_t *record) {
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;
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();
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 (!g_suspend_state && userspace_config.rgb_layer_change &&
#if defined(RGBLIGHT_ENABLE) && defined(RGB_MATRIX_ENABLE)
(!rgblight_config.enable && rgb_matrix_config.enable)
#else
rgb_matrix_config.enable
if ( userspace_config.rgb_layer_change &&
#ifdef RGB_DISABLE_WHEN_USB_SUSPENDED
!g_suspend_state &&
#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;
#if defined(RGBLIGHT_ENABLE)
(!rgblight_config.enable && rgb_matrix_config.enable)
#else
rgb_matrix_config.enable
#endif
) {
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<<USB_LED_CAPS_LOCK)) {
rgb_matrix_set_color(24, 0x00, 0xFF, 0x00);
rgb_matrix_set_color(36, 0x00, 0xFF, 0x00);
}
if ( (this_mod | this_osm) & MOD_MASK_CTRL) {
rgb_matrix_set_color(25, 0xFF, 0x00, 0x00);
rgb_matrix_set_color(34, 0xFF, 0x00, 0x00);
rgb_matrix_set_color(37, 0xFF, 0x00, 0x00);
switch (biton32(default_layer_state)) {
case _QWERTY:
rgb_matrix_set_color(is_ez ? 41 : 42, 0x00, 0xFF, 0xFF); break;
case _COLEMAK:
rgb_matrix_set_color(is_ez ? 41 : 42, 0xFF, 0x00, 0xFF); break;
case _DVORAK:
rgb_matrix_set_color(is_ez ? 41 : 42, 0x00, 0xFF, 0x00); break;
case _WORKMAN:
rgb_matrix_set_color(is_ez ? 41 : 42, 0xD9, 0xA5, 0x21); break;
}
if ( (this_mod | this_osm) & MOD_MASK_SHIFT || this_led & (1<<USB_LED_CAPS_LOCK)) {
rgb_matrix_set_color(24, 0x00, 0xFF, 0x00);
rgb_matrix_set_color(36, 0x00, 0xFF, 0x00);
}
if ( (this_mod | this_osm) & MOD_MASK_CTRL) {
rgb_matrix_set_color(25, 0xFF, 0x00, 0x00);
rgb_matrix_set_color(34, 0xFF, 0x00, 0x00);
rgb_matrix_set_color(37, 0xFF, 0x00, 0x00);
}
if ( (this_mod | this_osm) & MOD_MASK_GUI) {
rgb_matrix_set_color(39, 0xFF, 0xD9, 0x00);
}
if ( (this_mod | this_osm) & MOD_MASK_ALT) {
rgb_matrix_set_color(38, 0x00, 0x00, 0xFF);
}
}
if ( (this_mod | this_osm) & MOD_MASK_GUI) {
rgb_matrix_set_color(39, 0xFF, 0xD9, 0x00);
}
if ( (this_mod | this_osm) & MOD_MASK_ALT) {
rgb_matrix_set_color(38, 0x00, 0x00, 0xFF);
}
}
void matrix_init_keymap(void) {
@ -260,57 +276,81 @@ void matrix_init_keymap(void) {
#else //RGB_MATRIX_INIT
void matrix_init_keymap(void) {
#if !defined(CONVERT_TO_PROTON_C) && !defined(KEYBOARD_planck)
#if !defined(CONVERT_TO_PROTON_C) && !defined(KEYBOARD_planck)
setPinOutput(D5);
writePinHigh(D5);
setPinOutput(B0);
writePinHigh(B0);
#endif
#endif
}
#endif //RGB_MATRIX_INIT
#ifdef ENCODER_ENABLE
void encoder_update(bool clockwise) {
switch (biton32(layer_state)) {
case _RAISE:
clockwise ? tap_code(KC_VOLD) : tap_code(KC_VOLU);
break;
case _LOWER:
#ifdef RGB_MATRIX_ENABLE
clockwise ? rgb_matrix_step() : rgblight_step_reverse();
#else
clockwise ? tap_code(KC_PGDN) : tap_code(KC_PGUP);
#endif
case _ADJUST:
#ifdef AUDIO_CLICKY
clockwise ? clicky_freq_up() : clicky_freq_down();
#endif
break;
default:
clockwise ? tap_code(KC_DOWN) : tap_code(KC_UP);
}
#ifdef AUDIO_CLICKY
switch (biton32(layer_state)) {
case _RAISE:
clockwise ? tap_code(KC_VOLD) : tap_code(KC_VOLU);
break;
case _LOWER:
#ifdef RGB_MATRIX_ENABLE
clockwise ? rgb_matrix_step() : rgblight_step_reverse();
#else
clockwise ? tap_code(KC_PGDN) : tap_code(KC_PGUP);
#endif
break;
case _ADJUST:
#ifdef AUDIO_CLICKY
clockwise ? clicky_freq_up() : clicky_freq_down();
#endif
break;
default:
clockwise ? tap_code(KC_DOWN) : tap_code(KC_UP);
}
#ifdef AUDIO_CLICKY
clicky_play();
#endif
#endif
}
#endif // ENCODER_ENABLE
#ifdef KEYBOARD_planck_rev6
void dip_update(uint8_t index, bool active) {
switch (index) {
case 0:
if(active) { audio_on(); } else { audio_off(); }
break;
case 1:
if(active) { clicky_on(); } else { clicky_off(); }
break;
case 2:
keymap_config.swap_lalt_lgui = keymap_config.swap_ralt_rgui = active;
break;
case 3:
userspace_config.nuke_switch = active;
break;
}
switch (index) {
case 0:
if(active) { audio_on(); } else { audio_off(); }
break;
case 1:
if(active) { clicky_on(); } else { clicky_off(); }
break;
case 2:
keymap_config.swap_lalt_lgui = keymap_config.swap_ralt_rgui = active;
break;
case 3:
userspace_config.nuke_switch = active;
break;
}
}
#endif // KEYBOARD_planck_rev6
#ifdef KEYBOARD_planck_ez
uint32_t layer_state_set_keymap(uint32_t state) {
palClearPad(GPIOB, 8);
palClearPad(GPIOB, 9);
switch (biton32(state)) {
case _LOWER:
palSetPad(GPIOB, 9);
break;
case _RAISE:
palSetPad(GPIOB, 8);
break;
case _ADJUST:
palSetPad(GPIOB, 9);
palSetPad(GPIOB, 8);
break;
default:
break;
}
return state;
}
#endif

View file

@ -5,16 +5,27 @@ CONSOLE_ENABLE = no # Console for debug(+400)
COMMAND_ENABLE = no # Commands for debug and configuration
TAP_DANCE_ENABLE = no
AUDIO_ENABLE = yes
SPACE_CADET_ENABLE = no
ifeq (,$(findstring planck/rev6,$(KEYBOARD))) # Make sure it's NOT the Planck Rev6
RGBLIGHT_ENABLE = yes
INDICATOR_LIGHTS = yes
RGBLIGHT_TWINKLE = yes
RGBLIGHT_STARTUP_ANIMATION = yes
RGBLIGHT_ENABLE = yes
INDICATOR_LIGHTS = yes
RGBLIGHT_TWINKLE = yes
RGBLIGHT_STARTUP_ANIMATION = yes
endif
ifneq (,$(findstring planck/light,$(KEYBOARD))) # Make sure it IS the Planck Light
RGB_MATRIX_ENABLE = yes
RGBLIGHT_ENABLE = no
RGBLIGHT_STARTUP_ANIMATION = no
RGB_MATRIX_ENABLE = yes
RGBLIGHT_ENABLE = no
RGBLIGHT_STARTUP_ANIMATION = no
endif
ifneq (,$(findstring planck/ez,$(KEYBOARD))) # Make sure it IS the Planck Light
RGBLIGHT_ENABLE = no
# SERIAL_LINK_ENABLE = yes
ENCODER_ENABLE = no
RGB_MATRIX_ENABLE = IS31FL3737
INDICATOR_LIGHTS = yes
RGBLIGHT_TWINKLE = yes
RGBLIGHT_STARTUP_ANIMATION = yes
endif
ifeq ($(strip $(PROTOCOL)), VUSB)