[Keymap] Drashna Corne Keyboard updates (#5903)

* Re-enable Audio

And there was much rejoicingmake keebio/iris/rev2:drashna AUDIO_ENABLE=yes!

* Re-add debounce to ergodox EZ

* Fix rgb matrix helper function

* Make sure that RGM Matrix is checked properly

* Fix merge commit?

* Disable more RGB matrix modes

* Increase Debounce for Ergodox EZ

The performance improvements have made it necessary, actually

* Consolidate RGB Matrix layer indication function

And changes to iris

* Fix lighting issue for gamepad

* Update Corne Keyboard configuration

* Update Corne Keyboard layout

* Update KC_MAKE macro to better handle crkbd split

* Tweaks to Corne Keyboard Layout

* Enable RGB Matrix Sleep

* Update my code to use layer_state_t typedef
This commit is contained in:
Drashna Jaelre 2019-05-19 10:01:16 -07:00 committed by GitHub
commit 6b8be98555
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
15 changed files with 151 additions and 76 deletions

View File

@ -48,17 +48,24 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#ifdef RGB_MATRIX_ENABLE
# define RGB_MATRIX_KEYPRESSES // reacts to keypresses
# define RGB_DISABLE_WHEN_USB_SUSPENDED true // turn off effects when suspended
# define RGB_MATRIX_FRAMEBUFFER_EFFECTS
// # define DISABLE_RGB_MATRIX_ALPHAS_MODS
# define DISABLE_RGB_MATRIX_GRADIENT_UP_DOWN
# define DISABLE_RGB_MATRIX_BREATHING
# define DISABLE_RGB_MATRIX_CYCLE_ALL
# define DISABLE_RGB_MATRIX_CYCLE_LEFT_RIGHT
# define DISABLE_RGB_MATRIX_CYCLE_UP_DOWN
// # define DISABLE_RGB_MATRIX_CYCLE_OUT_IN
// # define DISABLE_RGB_MATRIX_CYCLE_OUT_IN_DUAL
# define DISABLE_RGB_MATRIX_RAINBOW_MOVING_CHEVRON
# define DISABLE_RGB_MATRIX_DUAL_BEACON
# define DISABLE_RGB_MATRIX_RAINBOW_BEACON
# define DISABLE_RGB_MATRIX_RAINBOW_PINWHEELS
// # define DISABLE_RGB_MATRIX_RAINDROPS
// # define DISABLE_RGB_MATRIX_JELLYBEAN_RAINDROPS
# define DISABLE_RGB_MATRIX_DIGITAL_RAIN
// # define DISABLE_RGB_MATRIX_TYPING_HEATMAP
// # define DISABLE_RGB_MATRIX_DIGITAL_RAIN
# define DISABLE_RGB_MATRIX_SOLID_REACTIVE
# define DISABLE_RGB_MATRIX_SOLID_REACTIVE_SIMPLE
# define DISABLE_RGB_MATRIX_SOLID_REACTIVE_WIDE
@ -67,8 +74,11 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
# define DISABLE_RGB_MATRIX_SOLID_REACTIVE_MULTICROSS
# define DISABLE_RGB_MATRIX_SOLID_REACTIVE_NEXUS
# define DISABLE_RGB_MATRIX_SOLID_REACTIVE_MULTINEXUS
# define DISABLE_RGB_MATRIX_SPLASH
// # define DISABLE_RGB_MATRIX_MULTISPLASH
# define DISABLE_RGB_MATRIX_SOLID_SPLASH
# define DISABLE_RGB_MATRIX_SOLID_MULTISPLASH
#endif
#ifdef AUDIO_ENABLE
# define B6_AUDIO

View File

@ -20,9 +20,9 @@ enum crkbd_keycodes {
) \
LAYOUT_wrapper( \
KC_ESC, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, KC_MINS, \
KC_TAB, ALT_T(K11), K12, K13, K14, K15, K16, K17, K18, K19, K1A, RGUI_T(KC_QUOT), \
KC_TAB, ALT_T(K11), K12, K13, K14, K15, K16, K17, K18, K19, K1A, KC_QUOT, \
OS_LSFT, CTL_T(K21), K22, K23, K24, K25, K26, K27, K28, K29, RCTL_T(K2A), OS_RSFT, \
LT(_LOWER,KC_GRV), KC_SPC, KC_BSPC, KC_DEL, KC_ENT, RAISE \
KC_GRV, KC_SPC, BK_LWER, DL_RAIS, KC_ENT, OS_RGUI \
)
#define LAYOUT_crkbd_base_wrapper(...) LAYOUT_crkbd_base(__VA_ARGS__)
@ -100,7 +100,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
KC_MAKE, _________________ADJUST_L1_________________, _________________ADJUST_R1_________________, KC_RESET,
VRSN, _________________ADJUST_L2_________________, _________________ADJUST_R2_________________, EEP_RST,
_______, _________________ADJUST_L3_________________, _________________ADJUST_R3_________________, KC_MPLY,
_______, _______, _______, KC_NUKE, TG_MODS, _______
_______, KC_NUKE, _______, _______, TG_MODS, _______
)
};
@ -156,6 +156,8 @@ void add_keylog(uint16_t keycode) {
if (keycode < 60) {
keylog_str[0] = code_to_name[keycode];
}
keylog_str[KEYLOG_LEN] = 0;
log_timer = timer_read();
}
@ -267,3 +269,61 @@ uint16_t get_tapping_term(uint16_t keycode) {
return TAPPING_TERM;
}
}
#ifdef RGB_MATRIX_ENABLE
void suspend_power_down_keymap(void) {
rgb_matrix_set_suspend_state(true);
}
void suspend_wakeup_init_keymap(void) {
rgb_matrix_set_suspend_state(false);
}
void rgb_matrix_indicators_user(void) {
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
#endif
) {
switch (biton32(layer_state)) {
case _MODS:
rgb_matrix_layer_helper(0xFF, 0xFF, 0x00, LED_FLAG_UNDERGLOW); break;
case _GAMEPAD:
rgb_matrix_layer_helper(0xFF, 0x80, 0x00, LED_FLAG_UNDERGLOW); break;
case _DIABLO:
rgb_matrix_layer_helper(0xFF, 0x00, 0x00, LED_FLAG_UNDERGLOW); break;
case _RAISE:
rgb_matrix_layer_helper(0xFF, 0xFF, 0x00, LED_FLAG_UNDERGLOW); break;
case _LOWER:
rgb_matrix_layer_helper(0x00, 0xFF, 0x00, LED_FLAG_UNDERGLOW); break;
case _ADJUST:
rgb_matrix_layer_helper(0xFF, 0x00, 0x00, LED_FLAG_UNDERGLOW); break;
default:
switch (biton32(default_layer_state)) {
case _QWERTY:
rgb_matrix_layer_helper(0x00, 0xFF, 0xFF, LED_FLAG_UNDERGLOW); break;
case _COLEMAK:
rgb_matrix_layer_helper(0xFF, 0x00, 0xFF, LED_FLAG_UNDERGLOW); break;
case _DVORAK:
rgb_matrix_layer_helper(0x00, 0xFF, 0x00, LED_FLAG_UNDERGLOW); break;
case _WORKMAN:
rgb_matrix_layer_helper(0xD9, 0xA5, 0x21, LED_FLAG_UNDERGLOW); break;
case _NORMAN:
rgb_matrix_layer_helper(0xFF, 0x7C, 0x4D, LED_FLAG_UNDERGLOW); break;
case _MALTRON:
rgb_matrix_layer_helper(0xFF, 0xFF, 0x00, LED_FLAG_UNDERGLOW); break;
case _EUCALYN:
rgb_matrix_layer_helper(0xFF, 0x80, 0xBF, LED_FLAG_UNDERGLOW); break;
case _CARPLAX:
rgb_matrix_layer_helper(0x00, 0x00, 0xFF, LED_FLAG_UNDERGLOW); break;
}
}
}
}
#endif

View File

@ -13,7 +13,7 @@
KC_TAB , K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, KC_BSLS, \
KC_C1R3, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, KC_QUOT, \
OS_LSFT, CTL_T(K21), K22, K23, K24, K25, OS_LALT, OS_RGUI, K26, K27, K28, K29, RCTL_T(K2A), OS_RSFT, \
LT(_LOWER,KC_GRV), KC_SPC, KC_BSPC, KC_DEL, KC_ENT, RAISE \
KC_GRV, KC_SPC, LT(_LOWER,KC_BSPC), LT(_RAISE,KC_DEL), KC_ENT, RAISE \
)
#define LAYOUT_iris_base_wrapper(...) LAYOUT_iris_base(__VA_ARGS__)

View File

@ -5,7 +5,7 @@ CONSOLE_ENABLE = no # Console for debug(+400)
COMMAND_ENABLE = no # Commands for debug and configuration
TAP_DANCE_ENABLE = no
RGBLIGHT_ENABLE = yes
AUDIO_ENABLE = no
AUDIO_ENABLE = yes
NKRO_ENABLE = yes
BACKLIGHT_ENABLE = no
SWAP_HANDS_ENABLE = no

View File

@ -13,3 +13,4 @@
#define PRODUCT DrashnaDox - Hacked ErgoDox EZ Shine
#undef DEBOUNCE
#define DEBOUNCE 15

View File

@ -399,14 +399,6 @@ void suspend_wakeup_init_keymap(void) {
rgb_matrix_set_suspend_state(false);
}
void rgb_matrix_layer_helper (uint8_t red, uint8_t green, uint8_t blue, bool default_layer) {
for (int i = 0; i < DRIVER_LED_TOTAL; i++) {
if (HAS_FLAGS(g_led_config.flags[i], LED_FLAG_MODIFIER)) {
rgb_matrix_set_color( i, red, green, blue );
}
}
}
void rgb_matrix_indicators_user(void) {
if ( userspace_config.rgb_layer_change &&
#ifdef RGB_DISABLE_WHEN_USB_SUSPENDED
@ -420,9 +412,9 @@ void rgb_matrix_indicators_user(void) {
) {
switch (biton32(layer_state)) {
case _MODS:
rgb_matrix_layer_helper(0xFF, 0xFF, 0x00); break;
rgb_matrix_layer_helper(0xFF, 0xFF, 0x00, LED_FLAG_MODIFIER); break;
case _GAMEPAD:
rgb_matrix_layer_helper(0xFF, 0x80, 0x00);
rgb_matrix_layer_helper(0xFF, 0x80, 0x00, LED_FLAG_MODIFIER);
rgb_matrix_set_color(32, 0x00, 0xFF, 0x00); // Q
rgb_matrix_set_color(31, 0x00, 0xFF, 0xFF); // W
rgb_matrix_set_color(30, 0xFF, 0x00, 0x00); // E
@ -432,37 +424,37 @@ void rgb_matrix_indicators_user(void) {
rgb_matrix_set_color(35, 0x00, 0xFF, 0xFF); // D
rgb_matrix_set_color(34, 0x7A, 0x00, 0xFF); // F
rgb_matrix_set_color(27, 0xFF, 0xFF, 0xFF); // 1
rgb_matrix_set_color(26, 0x00, 0xFF, 0x00); // 2
rgb_matrix_set_color(userspace_config.swapped_numbers ? 27 : 26, 0xFF, 0xFF, 0xFF); // 1
rgb_matrix_set_color(userspace_config.swapped_numbers ? 26 : 27, 0x00, 0xFF, 0x00); // 2
rgb_matrix_set_color(25, 0x7A, 0x00, 0xFF); // 3
break;
case _DIABLO:
rgb_matrix_layer_helper(0xFF, 0x00, 0x00); break;
rgb_matrix_layer_helper(0xFF, 0x00, 0x00, LED_FLAG_MODIFIER); break;
case _RAISE:
rgb_matrix_layer_helper(0xFF, 0xFF, 0x00); break;
rgb_matrix_layer_helper(0xFF, 0xFF, 0x00, LED_FLAG_MODIFIER); break;
case _LOWER:
rgb_matrix_layer_helper(0x00, 0xFF, 0x00); break;
rgb_matrix_layer_helper(0x00, 0xFF, 0x00, LED_FLAG_MODIFIER); break;
case _ADJUST:
rgb_matrix_layer_helper(0xFF, 0x00, 0x00); break;
rgb_matrix_layer_helper(0xFF, 0x00, 0x00, LED_FLAG_MODIFIER); break;
default:
switch (biton32(default_layer_state)) {
case _QWERTY:
rgb_matrix_layer_helper(0x00, 0xFF, 0xFF); break;
rgb_matrix_layer_helper(0x00, 0xFF, 0xFF, LED_FLAG_MODIFIER); break;
case _COLEMAK:
rgb_matrix_layer_helper(0xFF, 0x00, 0xFF); break;
rgb_matrix_layer_helper(0xFF, 0x00, 0xFF, LED_FLAG_MODIFIER); break;
case _DVORAK:
rgb_matrix_layer_helper(0x00, 0xFF, 0x00); break;
rgb_matrix_layer_helper(0x00, 0xFF, 0x00, LED_FLAG_MODIFIER); break;
case _WORKMAN:
rgb_matrix_layer_helper(0xD9, 0xA5, 0x21); break;
rgb_matrix_layer_helper(0xD9, 0xA5, 0x21, LED_FLAG_MODIFIER); break;
case _NORMAN:
rgb_matrix_layer_helper(0xFF, 0x7C, 0x4D); break;
rgb_matrix_layer_helper(0xFF, 0x7C, 0x4D, LED_FLAG_MODIFIER); break;
case _MALTRON:
rgb_matrix_layer_helper(0xFF, 0xFF, 0x00); break;
rgb_matrix_layer_helper(0xFF, 0xFF, 0x00, LED_FLAG_MODIFIER); break;
case _EUCALYN:
rgb_matrix_layer_helper(0xFF, 0x80, 0xBF); break;
rgb_matrix_layer_helper(0xFF, 0x80, 0xBF, LED_FLAG_MODIFIER); break;
case _CARPLAX:
rgb_matrix_layer_helper(0x00, 0x00, 0xFF); break;
rgb_matrix_layer_helper(0x00, 0x00, 0xFF, LED_FLAG_MODIFIER); break;
}
}
}

View File

@ -18,7 +18,9 @@
# define DISABLE_RGB_MATRIX_RAINBOW_MOVING_CHEVRON
# define DISABLE_RGB_MATRIX_DUAL_BEACON
# define DISABLE_RGB_MATRIX_RAINBOW_BEACON
# define DISABLE_RGB_MATRIX_RAINBOW_PINWHEELS
# define DISABLE_RGB_MATRIX_DIGITAL_RAIN
# define DISABLE_RGB_MATRIX_SOLID_REACTIVE
# define DISABLE_RGB_MATRIX_SOLID_REACTIVE_WIDE
# define DISABLE_RGB_MATRIX_SOLID_REACTIVE_CROSS
# define DISABLE_RGB_MATRIX_SOLID_REACTIVE_NEXUS

View File

@ -180,14 +180,6 @@ void suspend_wakeup_init_keymap(void) {
rgb_matrix_set_suspend_state(false);
}
void rgb_matrix_layer_helper (uint8_t red, uint8_t green, uint8_t blue) {
for (int i = 0; i < DRIVER_LED_TOTAL; i++) {
if (HAS_FLAGS(g_led_config.flags[i], 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();
@ -209,29 +201,29 @@ void rgb_matrix_indicators_user(void) {
) {
switch (biton32(layer_state)) {
case _RAISE:
rgb_matrix_layer_helper(0xFF, 0xFF, 0x00); break;
rgb_matrix_layer_helper(0xFF, 0xFF, 0x00, LED_FLAG_MODIFIER); break;
case _LOWER:
rgb_matrix_layer_helper(0x00, 0xFF, 0x00); break;
rgb_matrix_layer_helper(0x00, 0xFF, 0x00, LED_FLAG_MODIFIER); break;
case _ADJUST:
rgb_matrix_layer_helper(0xFF, 0x00, 0x00); break;
rgb_matrix_layer_helper(0xFF, 0x00, 0x00, LED_FLAG_MODIFIER); break;
default:
switch (biton32(default_layer_state)) {
case _QWERTY:
rgb_matrix_layer_helper(0x00, 0xFF, 0xFF); break;
rgb_matrix_layer_helper(0x00, 0xFF, 0xFF, LED_FLAG_MODIFIER); break;
case _COLEMAK:
rgb_matrix_layer_helper(0xFF, 0x00, 0xFF); break;
rgb_matrix_layer_helper(0xFF, 0x00, 0xFF, LED_FLAG_MODIFIER); break;
case _DVORAK:
rgb_matrix_layer_helper(0x00, 0xFF, 0x00); break;
rgb_matrix_layer_helper(0x00, 0xFF, 0x00, LED_FLAG_MODIFIER); break;
case _WORKMAN:
rgb_matrix_layer_helper(0xD9, 0xA5, 0x21); break;
rgb_matrix_layer_helper(0xD9, 0xA5, 0x21, LED_FLAG_MODIFIER); break;
case _NORMAN:
rgb_matrix_layer_helper(0xFF, 0x7C, 0x4D); break;
rgb_matrix_layer_helper(0xFF, 0x7C, 0x4D, LED_FLAG_MODIFIER); break;
case _MALTRON:
rgb_matrix_layer_helper(0xFF, 0xFF, 0x00); break;
rgb_matrix_layer_helper(0xFF, 0xFF, 0x00, LED_FLAG_MODIFIER); break;
case _EUCALYN:
rgb_matrix_layer_helper(0xFF, 0x80, 0xBF); break;
rgb_matrix_layer_helper(0xFF, 0x80, 0xBF, LED_FLAG_MODIFIER); break;
case _CARPLAX:
rgb_matrix_layer_helper(0x00, 0x00, 0xFF); break;
rgb_matrix_layer_helper(0x00, 0x00, 0xFF, LED_FLAG_MODIFIER); break;
}
}
}
@ -327,7 +319,7 @@ void dip_update(uint8_t index, bool active) {
#endif // KEYBOARD_planck_rev6
#ifdef KEYBOARD_planck_ez
uint32_t layer_state_set_keymap(uint32_t state) {
layer_state_t layer_state_set_keymap(layer_state_t state) {
palClearPad(GPIOB, 8);
palClearPad(GPIOB, 9);

View File

@ -187,13 +187,13 @@ void matrix_scan_user(void) {
__attribute__ ((weak))
uint32_t layer_state_set_keymap (uint32_t state) {
layer_state_t layer_state_set_keymap (layer_state_t state) {
return state;
}
// on layer change, no matter where the change was initiated
// Then runs keymap's layer change check
uint32_t layer_state_set_user(uint32_t state) {
layer_state_t layer_state_set_user(layer_state_t state) {
state = update_tri_layer_state(state, _RAISE, _LOWER, _ADJUST);
#ifdef RGBLIGHT_ENABLE
state = layer_state_set_rgb(state);
@ -203,12 +203,12 @@ uint32_t layer_state_set_user(uint32_t state) {
__attribute__ ((weak))
uint32_t default_layer_state_set_keymap (uint32_t state) {
layer_state_t default_layer_state_set_keymap (layer_state_t state) {
return state;
}
// Runs state check and changes underglow color and animation
uint32_t default_layer_state_set_user(uint32_t state) {
layer_state_t default_layer_state_set_user(layer_state_t state) {
state = default_layer_state_set_keymap(state);
#if 0
#ifdef RGBLIGHT_ENABLE

View File

@ -67,8 +67,8 @@ void shutdown_keymap(void);
void suspend_power_down_keymap(void);
void suspend_wakeup_init_keymap(void);
void matrix_scan_keymap(void);
uint32_t layer_state_set_keymap (uint32_t state);
uint32_t default_layer_state_set_keymap (uint32_t state);
layer_state_t layer_state_set_keymap (layer_state_t state);
layer_state_t default_layer_state_set_keymap (layer_state_t state);
void led_set_keymap(uint8_t usb_led);
void eeconfig_init_keymap(void);

View File

@ -53,8 +53,12 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
#endif // bootloader options
}
if ( ( temp_mod | temp_osm ) & MOD_MASK_CTRL) { send_string_with_delay_P(PSTR(" -j8 --output-sync"), TAP_CODE_DELAY); }
#ifdef RGB_MATRIX_SPLIT_RIGHT
send_string_with_delay_P(PSTR(" RGB_MATRIX_SPLIT_RIGHT=yes OLED_DRIVER_ENABLE=no"), TAP_CODE_DELAY);
#endif
send_string_with_delay_P(PSTR(SS_TAP(X_ENTER)), TAP_CODE_DELAY);
}
break;
case VRSN: // Prints firmware version

View File

@ -275,7 +275,7 @@ void matrix_scan_rgb(void) {
}
uint32_t layer_state_set_rgb(uint32_t state) {
layer_state_t layer_state_set_rgb(layer_state_t state) {
#ifdef RGBLIGHT_ENABLE
if (userspace_config.rgb_layer_change) {
switch (biton32(state)) {
@ -334,3 +334,14 @@ uint32_t layer_state_set_rgb(uint32_t state) {
return state;
}
#ifdef RGB_MATRIX_ENABLE
extern led_config_t g_led_config;
void rgb_matrix_layer_helper (uint8_t red, uint8_t green, uint8_t blue, uint8_t led_type) {
for (int i = 0; i < DRIVER_LED_TOTAL; i++) {
if (HAS_FLAGS(g_led_config.flags[i], led_type)) {
rgb_matrix_set_color( i, red, green, blue );
}
}
}
#endif

View File

@ -15,7 +15,9 @@ bool process_record_user_rgb(uint16_t keycode, keyrecord_t *record);
void scan_rgblight_fadeout(void);
void keyboard_post_init_rgb(void);
void matrix_scan_rgb(void);
uint32_t layer_state_set_rgb(uint32_t state);
uint32_t default_layer_state_set_rgb(uint32_t state);
layer_state_t layer_state_set_rgb(layer_state_t state);
layer_state_t default_layer_state_set_rgb(layer_state_t state);
void rgblight_sethsv_default_helper(uint8_t index);
void rgb_matrix_set_color_all( uint8_t red, uint8_t green, uint8_t blue );
void rgb_matrix_layer_helper (uint8_t red, uint8_t green, uint8_t blue, uint8_t led_type);

View File

@ -33,6 +33,7 @@ ifeq ($(strip $(RGBLIGHT_ENABLE)), yes)
endif
endif
RGB_MATRIX_ENABLE ?= no
ifneq ($(strip $(RGB_MATRIX_ENABLE)), no)
SRC += rgb_stuff.c
endif

View File

@ -62,11 +62,11 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
__attribute__ ((weak))
uint32_t layer_state_set_keymap (uint32_t state) {
layer_state_t layer_state_set_keymap (layer_state_t state) {
return state;
}
uint32_t layer_state_set_user (uint32_t state) {
layer_state_t layer_state_set_user (layer_state_t state) {
return layer_state_set_keymap (state);
}