From a48bbe358b2b3b4283a533a8f36a415e15e77347 Mon Sep 17 00:00:00 2001 From: Victor Date: Wed, 17 Jul 2024 18:03:46 -0500 Subject: [PATCH] Fine tuning - All feature config settings are now in two keycodes for encoder - All key press toggles are now in one keycode - added back the quote bracket tap holds - Cleaned up keymap - formatting - updated other board keymaps for these - removed trace of _CONFIG layer --- .../rollow/keymaps/t4corun/keymap.c | 12 +- .../charybdis/3x5/keymaps/t4corun/keymap.c | 5 +- .../bluebell/swoop/keymaps/t4corun/keymap.c | 12 +- keyboards/crkbd/keymaps/t4corun/keymap.c | 5 +- keyboards/klor/keymaps/t4corun/keymap.c | 10 +- keyboards/planck/keymaps/t4corun/keymap.c | 5 +- .../trackball_nano/keymaps/t4corun/keymap.c | 5 - users/t4corun/features/combo.c | 7 +- users/t4corun/features/oled.c | 4 - users/t4corun/features/oled.h | 2 - users/t4corun/t4corun.c | 155 ++++++++---------- users/t4corun/t4corun.h | 41 ++--- 12 files changed, 102 insertions(+), 161 deletions(-) diff --git a/keyboards/barbellboards/rollow/keymaps/t4corun/keymap.c b/keyboards/barbellboards/rollow/keymaps/t4corun/keymap.c index 800e5b62..7df51dc6 100644 --- a/keyboards/barbellboards/rollow/keymaps/t4corun/keymap.c +++ b/keyboards/barbellboards/rollow/keymaps/t4corun/keymap.c @@ -19,16 +19,13 @@ LAYOUT_rollow_wrapper ( \ #define ROLLOW(...) LAYOUT_3x5_3_keymap(__VA_ARGS__) const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [_QWERTY] = ROLLOW(LAYER_QWERTY), [_COLEMAK_DH] = ROLLOW(LAYER_COLEMAK_DH), [_GAME] = ROLLOW(LAYER_GAME), [_NAVIGATION] = ROLLOW(LAYER_NAVIGATION), [_NUMBER] = ROLLOW(LAYER_NUMBER), [_SYMBOL] = ROLLOW(LAYER_SYMBOL), - [_MOUSE_FUNC] = ROLLOW(LAYER_MOUSE_FUNC), - [_CONFIG] = ROLLOW(LAYER_CONFIG) - + [_MOUSE_FUNC] = ROLLOW(LAYER_MOUSE_FUNC) }; @@ -36,16 +33,13 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { /* These are horizontal encoders. Found I have to make it opposite the rotary encoders for it to feel intuitive*/ const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = { - [_QWERTY] = { ENCODER_CCW_CW(KC_WH_D, KC_WH_U), ENCODER_CCW_CW(KC_VOLU, KC_VOLD) }, [_COLEMAK_DH] = { ENCODER_CCW_CW(KC_WH_D, KC_WH_U), ENCODER_CCW_CW(KC_VOLU, KC_VOLD) }, [_GAME] = { ENCODER_CCW_CW(KC_WH_D, KC_WH_U), ENCODER_CCW_CW(KC_VOLU, KC_VOLD) }, - [_NAVIGATION] = { ENCODER_CCW_CW(KC_RGHT, KC_LEFT), ENCODER_CCW_CW(___x___, ___x___) }, + [_NAVIGATION] = { ENCODER_CCW_CW(KC_RGHT, KC_LEFT), ENCODER_CCW_CW(FWD_CFG, REV_CFG) }, [_NUMBER] = { ENCODER_CCW_CW(___x___, ___x___), ENCODER_CCW_CW(FWD_TAB, REV_TAB) }, [_SYMBOL] = { ENCODER_CCW_CW(___x___, ___x___), ENCODER_CCW_CW(___x___, ___x___) }, - [_MOUSE_FUNC] = { ENCODER_CCW_CW(KC_WH_D, KC_WH_U), ENCODER_CCW_CW(ZOOMIN, ZOOMOUT) }, - [_CONFIG] = { ENCODER_CCW_CW(BASELYR, RBSELYR), ENCODER_CCW_CW(BASELYR, RBSELYR) } - + [_MOUSE_FUNC] = { ENCODER_CCW_CW(KC_WH_D, KC_WH_U), ENCODER_CCW_CW(ZOOMIN, ZOOMOUT) } }; #endif \ No newline at end of file diff --git a/keyboards/bastardkb/charybdis/3x5/keymaps/t4corun/keymap.c b/keyboards/bastardkb/charybdis/3x5/keymaps/t4corun/keymap.c index 43088d9d..83bb4b9a 100644 --- a/keyboards/bastardkb/charybdis/3x5/keymaps/t4corun/keymap.c +++ b/keyboards/bastardkb/charybdis/3x5/keymaps/t4corun/keymap.c @@ -34,14 +34,11 @@ LAYOUT_cnano_wrapper ( \ #define CNANO(...) LAYOUT_3x5_3_keymap(__VA_ARGS__) const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [_QWERTY] = CNANO(LAYER_QWERTY), [_COLEMAK_DH] = CNANO(LAYER_COLEMAK_DH), [_GAME] = CNANO(LAYER_GAME), [_NAVIGATION] = CNANO(LAYER_NAVIGATION), [_NUMBER] = CNANO(LAYER_NUMBER), [_SYMBOL] = CNANO(LAYER_SYMBOL), - [_MOUSE_FUNC] = CNANO(LAYER_MOUSE_FUNC), - [_CONFIG] = CNANO(LAYER_CONFIG) - + [_MOUSE_FUNC] = CNANO(LAYER_MOUSE_FUNC) }; \ No newline at end of file diff --git a/keyboards/bluebell/swoop/keymaps/t4corun/keymap.c b/keyboards/bluebell/swoop/keymaps/t4corun/keymap.c index 294316e3..b7275886 100644 --- a/keyboards/bluebell/swoop/keymaps/t4corun/keymap.c +++ b/keyboards/bluebell/swoop/keymaps/t4corun/keymap.c @@ -35,16 +35,13 @@ LAYOUT_swoop_wrapper ( \ #define SWOOP(...) LAYOUT_3x5_3_keymap(__VA_ARGS__) const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [_QWERTY] = SWOOP(LAYER_QWERTY), [_COLEMAK_DH] = SWOOP(LAYER_COLEMAK_DH), [_GAME] = SWOOP(LAYER_GAME), [_NAVIGATION] = SWOOP(LAYER_NAVIGATION), [_NUMBER] = SWOOP(LAYER_NUMBER), [_SYMBOL] = SWOOP(LAYER_SYMBOL), - [_MOUSE_FUNC] = SWOOP(LAYER_MOUSE_FUNC), - [_CONFIG] = SWOOP(LAYER_CONFIG) - + [_MOUSE_FUNC] = SWOOP(LAYER_MOUSE_FUNC) }; @@ -52,16 +49,13 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { /* The encoder presses are handled in the keymap */ const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = { - [_QWERTY] = { ENCODER_CCW_CW(KC_WH_U, KC_WH_D), ENCODER_CCW_CW(KC_VOLD, KC_VOLU) }, [_COLEMAK_DH] = { ENCODER_CCW_CW(KC_WH_U, KC_WH_D), ENCODER_CCW_CW(KC_VOLD, KC_VOLU) }, [_GAME] = { ENCODER_CCW_CW(KC_WH_U, KC_WH_D), ENCODER_CCW_CW(KC_VOLD, KC_VOLU) }, - [_NAVIGATION] = { ENCODER_CCW_CW(KC_LEFT, KC_RGHT), ENCODER_CCW_CW(___x___, ___x___) }, + [_NAVIGATION] = { ENCODER_CCW_CW(KC_LEFT, KC_RGHT), ENCODER_CCW_CW(REV_CFG, FWD_CFG) }, [_NUMBER] = { ENCODER_CCW_CW(___x___, ___x___), ENCODER_CCW_CW(REV_TAB, FWD_TAB) }, [_SYMBOL] = { ENCODER_CCW_CW(___x___, ___x___), ENCODER_CCW_CW(___x___, ___x___) }, - [_MOUSE_FUNC] = { ENCODER_CCW_CW(KC_WH_U, KC_WH_D), ENCODER_CCW_CW(ZOOMOUT, ZOOMIN) }, - [_CONFIG] = { ENCODER_CCW_CW(RGB_RMOD, RGB_MOD), ENCODER_CCW_CW(RBSELYR, BASELYR) } - + [_MOUSE_FUNC] = { ENCODER_CCW_CW(KC_WH_U, KC_WH_D), ENCODER_CCW_CW(ZOOMOUT, ZOOMIN) } }; #endif //ENCODER_MAP_ENABLE diff --git a/keyboards/crkbd/keymaps/t4corun/keymap.c b/keyboards/crkbd/keymaps/t4corun/keymap.c index 9379b469..73ae8f19 100644 --- a/keyboards/crkbd/keymaps/t4corun/keymap.c +++ b/keyboards/crkbd/keymaps/t4corun/keymap.c @@ -34,14 +34,11 @@ LAYOUT_crkbd_wrapper ( \ #define CRKBD(...) LAYOUT_3x5_3_keymap(__VA_ARGS__) const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [_QWERTY] = CRKBD(LAYER_QWERTY), [_COLEMAK_DH] = CRKBD(LAYER_COLEMAK_DH), [_GAME] = CRKBD(LAYER_GAME), [_NAVIGATION] = CRKBD(LAYER_NAVIGATION), [_NUMBER] = CRKBD(LAYER_NUMBER), [_SYMBOL] = CRKBD(LAYER_SYMBOL), - [_MOUSE_FUNC] = CRKBD(LAYER_MOUSE_FUNC), - [_CONFIG] = CRKBD(LAYER_CONFIG) - + [_MOUSE_FUNC] = CRKBD(LAYER_MOUSE_FUNC) }; \ No newline at end of file diff --git a/keyboards/klor/keymaps/t4corun/keymap.c b/keyboards/klor/keymaps/t4corun/keymap.c index 1d2c5f25..bf698e69 100644 --- a/keyboards/klor/keymaps/t4corun/keymap.c +++ b/keyboards/klor/keymaps/t4corun/keymap.c @@ -19,7 +19,6 @@ LAYOUT_klor_wrapper ( \ #define KLOR(...) LAYOUT_3x5_3_keymap(__VA_ARGS__) const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [_QWERTY] = KLOR(LAYER_QWERTY), [_COLEMAK_DH] = KLOR(LAYER_COLEMAK_DH), [_GAME] = KLOR(LAYER_GAME), @@ -27,24 +26,19 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [_NUMBER] = KLOR(LAYER_NUMBER), [_SYMBOL] = KLOR(LAYER_SYMBOL), [_MOUSE_FUNC] = KLOR(LAYER_MOUSE_FUNC) - //[_CONFIG] = KLOR(LAYER_CONFIG) - }; #if defined(ENCODER_MAP_ENABLE) const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = { - [_QWERTY] = { ENCODER_CCW_CW(KC_WH_U, KC_WH_D), ENCODER_CCW_CW(KC_VOLD, KC_VOLU) }, [_COLEMAK_DH] = { ENCODER_CCW_CW(KC_WH_U, KC_WH_D), ENCODER_CCW_CW(KC_VOLD, KC_VOLU) }, [_GAME] = { ENCODER_CCW_CW(KC_WH_U, KC_WH_D), ENCODER_CCW_CW(KC_VOLD, KC_VOLU) }, - [_NAVIGATION] = { ENCODER_CCW_CW(KC_LEFT, KC_RGHT), ENCODER_CCW_CW(REV_RGB, FWD_RGB) }, - [_NUMBER] = { ENCODER_CCW_CW(REV_CFG, FWD_CFG), ENCODER_CCW_CW(REV_TAB, FWD_TAB) }, + [_NAVIGATION] = { ENCODER_CCW_CW(KC_LEFT, KC_RGHT), ENCODER_CCW_CW(REV_CFG, FWD_CFG) }, + [_NUMBER] = { ENCODER_CCW_CW(___x___, ___x___), ENCODER_CCW_CW(REV_TAB, FWD_TAB) }, [_SYMBOL] = { ENCODER_CCW_CW(___x___, ___x___), ENCODER_CCW_CW(___x___, ___x___) }, [_MOUSE_FUNC] = { ENCODER_CCW_CW(KC_WH_U, KC_WH_D), ENCODER_CCW_CW(ZOOMOUT, ZOOMIN) } - //[_CONFIG] = { ENCODER_CCW_CW(RGB_RMOD, RGB_MOD), ENCODER_CCW_CW(RBSELYR, BASELYR) } - }; #endif \ No newline at end of file diff --git a/keyboards/planck/keymaps/t4corun/keymap.c b/keyboards/planck/keymaps/t4corun/keymap.c index f162bb2d..52f505d8 100644 --- a/keyboards/planck/keymaps/t4corun/keymap.c +++ b/keyboards/planck/keymaps/t4corun/keymap.c @@ -19,14 +19,11 @@ LAYOUT_planck_wrapper ( #define PLANCK(...) LAYOUT_3x5_keymap(__VA_ARGS__) const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [_QWERTY] = PLANCK(LAYER_QWERTY), [_COLEMAK_DH] = PLANCK(LAYER_COLEMAK_DH), [_GAME] = PLANCK(LAYER_GAME), [_NAVIGATION] = PLANCK(LAYER_NAVIGATION), [_NUMBER] = PLANCK(LAYER_NUMBER), [_SYMBOL] = PLANCK(LAYER_SYMBOL), - [_MOUSE_FUNC] = PLANCK(LAYER_MOUSE_FUNC), - [_CONFIG] = PLANCK(LAYER_CONFIG) - + [_MOUSE_FUNC] = PLANCK(LAYER_MOUSE_FUNC) }; \ No newline at end of file diff --git a/keyboards/ploopyco/trackball_nano/keymaps/t4corun/keymap.c b/keyboards/ploopyco/trackball_nano/keymaps/t4corun/keymap.c index 259319b2..c2f184d0 100644 --- a/keyboards/ploopyco/trackball_nano/keymaps/t4corun/keymap.c +++ b/keyboards/ploopyco/trackball_nano/keymaps/t4corun/keymap.c @@ -16,23 +16,18 @@ along with this program. If not, see . #include "t4corun.h" const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [0] = LAYOUT( KC_NO ) - }; static bool num_lock_state = false; static bool scroll_lock_state = false; void keyboard_post_init_user(void) { - num_lock_state = host_keyboard_led_state().num_lock; scroll_lock_state = host_keyboard_led_state().scroll_lock; - } bool led_update_user(led_t led_state) { - // when scroll lock is pressed, toggle drag scroll state if ( scroll_lock_state != led_state.scroll_lock ) { toggle_drag_scroll(); diff --git a/users/t4corun/features/combo.c b/users/t4corun/features/combo.c index 03f8f523..71fd8267 100644 --- a/users/t4corun/features/combo.c +++ b/users/t4corun/features/combo.c @@ -1,11 +1,6 @@ #include "combo.h" bool combo_should_trigger (uint16_t combo_index, combo_t *combo, uint16_t keycode, keyrecord_t *record) { - // disable all combos on config layer - if (get_highest_layer(layer_state | default_layer_state) == _CONFIG) { - return false; - } - switch (combo_index) { case MOUSE_BUTTON2: if ( get_highest_layer(layer_state | default_layer_state) > FIRST_DEFAULT_LAYER ) { @@ -13,7 +8,7 @@ bool combo_should_trigger (uint16_t combo_index, combo_t *combo, uint16_t keycod } case MOUSE_DRGTOG: - if (( get_highest_layer(layer_state | default_layer_state) != FIRST_DEFAULT_LAYER ) + if (( get_highest_layer(layer_state | default_layer_state) != FIRST_DEFAULT_LAYER ) && ( get_highest_layer(layer_state | default_layer_state) != _MOUSE_FUNC )) { return false; } diff --git a/users/t4corun/features/oled.c b/users/t4corun/features/oled.c index 64f39b9a..10c413b2 100644 --- a/users/t4corun/features/oled.c +++ b/users/t4corun/features/oled.c @@ -45,9 +45,6 @@ void render_layer_state (uint8_t col, uint8_t line, bool moveCursor) { case _MOUSE_FUNC: oled_write_P(PSTR(OLED_RENDER_LAYER_5), false); break; - case _CONFIG: - oled_write_P(PSTR(OLED_RENDER_LAYER_6), false); - break; default: oled_write_P(PSTR(OLED_RENDER_LAYER_1), false); break; @@ -68,7 +65,6 @@ void render_layer_state_list (uint8_t col, uint8_t line, bool moveCursor) { oled_write_P(PSTR(OLED_RENDER_LAYER_3), current_layer == _NUMBER); oled_write_P(PSTR(OLED_RENDER_LAYER_4), current_layer == _SYMBOL); oled_write_P(PSTR(OLED_RENDER_LAYER_5), current_layer == _MOUSE_FUNC); - oled_write_P(PSTR(OLED_RENDER_LAYER_6), current_layer == _CONFIG); } diff --git a/users/t4corun/features/oled.h b/users/t4corun/features/oled.h index cb7f3dfc..56cd1d16 100644 --- a/users/t4corun/features/oled.h +++ b/users/t4corun/features/oled.h @@ -12,7 +12,6 @@ # define OLED_RENDER_LAYER_3 "Number " # define OLED_RENDER_LAYER_4 "Symbol " # define OLED_RENDER_LAYER_5 "Mouse+Func" -# define OLED_RENDER_LAYER_6 "Config " #else //128x32 are ? x 5 char wide # define OLED_RENDER_DEFAULT_LAYER1 "Qwrty" @@ -24,7 +23,6 @@ # define OLED_RENDER_LAYER_3 " Num " # define OLED_RENDER_LAYER_4 " Sym " # define OLED_RENDER_LAYER_5 " MFn " -# define OLED_RENDER_LAYER_6 " Cfg " #endif void render_oled_128x64 (void); diff --git a/users/t4corun/t4corun.c b/users/t4corun/t4corun.c index 5c3fc61d..ba74dbcf 100644 --- a/users/t4corun/t4corun.c +++ b/users/t4corun/t4corun.c @@ -23,13 +23,13 @@ bool isLunaJumping(void) { return isJumping; } bool isJumpShown(void) { return showedJump; } // Allows the OLED code to clear the space bar status when render is complete -void setLunaJumped(void) { showedJump = true;} +void setLunaJumped(void) { showedJump = true; } #endif // WPM_ENABLE // Hold Navigation and Number to get Symbol layer_state_t layer_state_set_user(layer_state_t state) { - return update_tri_layer_state(state, _NAVIGATION, _NUMBER, _SYMBOL); + return update_tri_layer_state(state, _NAVIGATION, _NUMBER, _SYMBOL); } // helper function to adjust default layer @@ -43,7 +43,6 @@ void set_default_layer(bool forward) { // helper function to put ploopy nano into bootloader // my ploopy nano will reset when num/caps/scroll lock is enabled void reset_ploopynano(void) { - // turn on all three host states if(!host_keyboard_led_state().num_lock) { tap_code(KC_NUM); } if(!host_keyboard_led_state().caps_lock) { tap_code(KC_CAPS); } @@ -68,13 +67,13 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { record->event.pressed ? tap_code(KC_SCRL) : tap_code(KC_SCRL); return false; - // makes num lock a hold instead of toggle // prevents accidental ploopy nano going into bootloader case KC_NUM: record->event.pressed ? tap_code(KC_NUM) : tap_code(KC_NUM); return false; + // controls luna pet OLED animation #if defined(WPM_ENABLE) case KC_SPC: if (record->event.pressed) { @@ -87,24 +86,20 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { break; #endif // WPM_ENABLE - case BASELYR: - if (record->event.pressed) { - set_default_layer(true); - } - return false; - + // turn encoder for tab and shift tab + // hold alt or ctrl while turning for window / tab switching case FWD_TAB: case REV_TAB: if (record->event.pressed) { if (keycode == FWD_TAB && !hold_forward_active) { hold_forward_active = true; hold_reverse_active = false; - unregister_code(KC_LSFT); + unregister_mods(MOD_MASK_SHIFT); } if (keycode == REV_TAB && !hold_reverse_active) { hold_forward_active = false; hold_reverse_active = true; - register_code(KC_LSFT); + register_mods(MOD_MASK_SHIFT); } hold_mod_timer = timer_read(); register_code(KC_TAB); @@ -113,65 +108,13 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { } return false; - case FWD_RGB: - case REV_RGB: - if (record->event.pressed) { - switch (current_mods) { -#if defined(RGB_MATRIX_ENABLE) - case MOD_BIT(KC_LSFT): - keycode == FWD_RGB ? rgb_matrix_increase_hue() : rgb_matrix_decrease_hue(); - break; - - case MOD_BIT(KC_LCTL): - keycode == FWD_RGB ? rgb_matrix_increase_sat() : rgb_matrix_decrease_sat(); - break; - - case MOD_BIT(KC_LALT): - keycode == FWD_RGB ? rgb_matrix_increase_val() : rgb_matrix_decrease_val(); - break; - - case MOD_BIT(KC_LGUI): - keycode == FWD_RGB ? rgb_matrix_increase_speed() : rgb_matrix_decrease_speed(); - break; - - case MOD_BIT(KC_LSFT) | MOD_BIT(KC_LCTL): - keycode == FWD_RGB ? rgb_matrix_step() : rgb_matrix_step_reverse(); - break; -#endif //RGB_MATRIX_ENABLE - default: - keycode == FWD_RGB ? set_default_layer(true) : set_default_layer(false); - break; - } - } - return false; - - case FWD_CFG: - case REV_CFG: - if (record->event.pressed) { - switch (current_mods) { -#if defined(HAPTIC_ENABLE) - case MOD_BIT(KC_LSFT): - keycode == FWD_CFG ? haptic_mode_increase() : haptic_mode_decrease(); - break; -#endif //HAPTIC_ENABLE -#if defined(AUDIO_ENABLE) - case MOD_BIT(KC_LCTL): - keycode == FWD_CFG ? clicky_freq_up() : clicky_freq_down(); - break; -#endif //AUDIO_ENABLE - default: - keycode == FWD_CFG ? set_default_layer(true) : set_default_layer(false); - break; - } - } - return false; - + // turn encoder for mouse wheel zoom case ZOOMIN: case ZOOMOUT: if (record->event.pressed) { if (!hold_forward_active) { hold_forward_active = true; - register_code(KC_LCTL); + register_mods(MOD_MASK_CTRL); } hold_mod_timer = timer_read(); keycode == ZOOMIN ? register_code(KC_WH_U) : register_code(KC_WH_D); @@ -180,43 +123,90 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { } return false; - case TOG_CFG: + // turn encoder while holding mod combinations to adjust features + // e.g. RGB settings, haptic frequency, click frequency, base layer + case FWD_CFG: + case REV_CFG: if (record->event.pressed) { + if (!hold_forward_active) { + hold_forward_active = true; + } + hold_mod_timer = timer_read(); switch (current_mods) { #if defined(RGB_MATRIX_ENABLE) case MOD_BIT(KC_LSFT): - rgb_matrix_toggle(); + keycode == FWD_CFG ? rgb_matrix_increase_hue() : rgb_matrix_decrease_hue(); + break; + case MOD_BIT(KC_LCTL): + keycode == FWD_CFG ? rgb_matrix_increase_sat() : rgb_matrix_decrease_sat(); + break; + case MOD_BIT(KC_LALT): + keycode == FWD_CFG ? rgb_matrix_increase_val() : rgb_matrix_decrease_val(); + break; + case MOD_BIT(KC_LGUI): + keycode == FWD_CFG ? rgb_matrix_increase_speed() : rgb_matrix_decrease_speed(); + break; + case MOD_BIT(KC_LSFT) | MOD_BIT(KC_LCTL): + keycode == FWD_CFG ? rgb_matrix_step() : rgb_matrix_step_reverse(); break; #endif //RGB_MATRIX_ENABLE #if defined(HAPTIC_ENABLE) + case MOD_BIT(KC_LCTL) | MOD_BIT(KC_LALT): + keycode == FWD_CFG ? haptic_mode_increase() : haptic_mode_decrease(); + break; +#endif //HAPTIC_ENABLE +#if defined(AUDIO_ENABLE) + case MOD_BIT(KC_LALT) | MOD_BIT(KC_LGUI): + keycode == FWD_CFG ? clicky_freq_up() : clicky_freq_down(); + break; +#endif //AUDIO_ENABLE + default: + keycode == FWD_CFG ? set_default_layer(true) : set_default_layer(false); + break; + } + } + return false; + + // press key while holding mod combinations to toggle features or enter bootloader + case TOG_CFG: + if (record->event.pressed) { + switch (current_mods) { + case MOD_BIT(KC_LSFT): + reset_keyboard(); + break; case MOD_BIT(KC_LCTL): + reset_ploopynano(); + break; +#if defined(RGB_MATRIX_ENABLE) + case MOD_BIT(KC_LALT): + rgb_matrix_toggle(); + break; +#endif //RGB_MATRIX_ENABLE +#if defined(COMBO_ENABLE) + case MOD_BIT(KC_LGUI): + combo_toggle(); + break; +#endif //COMBO_ENABLE +#if defined(HAPTIC_ENABLE) + case MOD_BIT(KC_LSFT) | MOD_BIT(KC_LCTL): haptic_toggle(); break; #endif //HAPTIC_ENABLE #if defined(AUDIO_ENABLE) - case MOD_BIT(KC_LALT): + case MOD_BIT(KC_LCTL) | MOD_BIT(KC_LALT): is_audio_on() ? audio_off(): audio_on(); break; - case MOD_BIT(KC_LGUI): + case MOD_BIT(KC_LALT) | MOD_BIT(KC_LGUI): clicky_toggle(); break; #endif //AUDIO_ENABLE - - - case MOD_BIT(KC_LSFT) | MOD_BIT(KC_LCTL): - reset_keyboard(); - break; - - case MOD_BIT(KC_LCTL) | MOD_BIT(KC_LALT): - reset_ploopynano(); - break; - default: set_default_layer(true); - break; + break; } } + unregister_mods(MOD_MASK_CSAG); return false; //https://docs.qmk.fm/#/mod_tap?id=changing-both-tasp-and-hold @@ -274,8 +264,7 @@ void matrix_scan_user(void) { // timer for the hold mods if (hold_forward_active || hold_reverse_active) { if (timer_elapsed(hold_mod_timer) > HOLD_MOD_TIMEOUT) { - unregister_code(KC_LSFT); - unregister_code(KC_LCTL); + unregister_mods(MOD_MASK_CSAG); hold_forward_active = false; hold_reverse_active = false; } diff --git a/users/t4corun/t4corun.h b/users/t4corun/t4corun.h index 5996421a..caf5a78e 100644 --- a/users/t4corun/t4corun.h +++ b/users/t4corun/t4corun.h @@ -22,8 +22,7 @@ enum layers { _NAVIGATION, _NUMBER, _SYMBOL, - _MOUSE_FUNC, - _CONFIG + _MOUSE_FUNC }; // start at the second layer @@ -54,21 +53,17 @@ enum keycodes { TH_SCLN, TH_QUOT, - FWD_TAB, // enables encoder to alt-tab/alt+shift-tab - REV_TAB, // alt-tab/alt+shift-tab or ctrl-tab/ctrl+shift tab + FWD_TAB, // turn encoder for tab and shift tab + REV_TAB, // hold alt or ctrl while turning for window / tab switching - FWD_RGB, // enables overloaded encoder to adjust RGB mode and settings - REV_RGB, - - FWD_CFG, // enables overloaded encoder to adjust other features - REV_CFG, // e.g. haptic freq, click freq - - TOG_CFG, // enables overloaded key press to toggle features on or off - - ZOOMIN, // enables encoder to mouse wheel zoom + ZOOMIN, // turn encoder for mouse wheel zoom ZOOMOUT, - BASELYR // enables key press to change base layer + FWD_CFG, // turn encoder while holding mod combinations to adjust features + REV_CFG, // e.g. RGB settings, haptic frequency, click frequency, base layer + + TOG_CFG // press key while holding mod combinations to toggle features or enter bootloader + }; #define ___x___ KC_NO @@ -95,8 +90,8 @@ enum keycodes { #define SCR_TOP LCTL(KC_HOME) /* -- Any keycodes with prefix TR has behavior dependent on if the feature is enabled. - If the feature is disabled then the key is just the normal key +- Any keycodes with prefix TR has behavior dependent on if the feature is enabled. - We will only define things that are used across different layers. Entire layers are turned off in the keymap */ @@ -180,17 +175,17 @@ enum keycodes { #define LAYER_GAME \ KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_7, KC_8, KC_9, KC_ESC, \ KC_LCTL, KC_A, KC_S, KC_D, KC_F, KC_G, KC_4, KC_5, KC_6, KC_GRV, \ - KC_Z, KC_X, KC_C, KC_V, KC_B, KC_LALT, KC_1, KC_2, KC_3, CM_TOGG, \ + KC_Z, KC_X, KC_C, KC_V, KC_B, KC_LALT, KC_1, KC_2, KC_3, ___x___, \ KC_ENT, KC_SPC, KC_LSFT, _BASE_R4_________________, \ SCR_TOP, KC_MUTE #define LAYER_NAVIGATION \ - KC_ESC, KC_HOME, KC_UP, KC_END, KC_PGUP, KC_CAPS, KC_APP, ___x___, DM_REC1, DM_PLY1, \ + KC_ESC, KC_HOME, KC_UP, KC_END, KC_PGUP, KC_CAPS, KC_APP, ___x___, ___x___, ___x___, \ ___x___, KC_LEFT, KC_DOWN, KC_RGHT, KC_PGDN, KC_BSPC, _SCAG_MODS________________________, \ _UCCPR_L___________________________________, KC_DEL, KC_TAB, KC_VOLD, KC_VOLU, KC_MUTE, \ ___x___, NUM, KC_ENT, _LAYER_TRANS_____________, \ - SCR_TOP, BASELYR + SCR_TOP, TOG_CFG #define LAYER_NUMBER \ @@ -198,13 +193,13 @@ enum keycodes { _GACS_MODS________________________, KC_TAB, ___x___, KC_4, KC_5, KC_6, KC_DOT, \ _UCCPR_L___________________________________, ___x___, KC_1, KC_2, KC_3, KC_MINS, \ _LAYER_TRANS_____________, KC_0, NAV, ___x___, \ - BASELYR, SC_WIN + ___x___, SC_WIN #define LAYER_SYMBOL \ - ___x___, ___x___, KC_AT, KC_DLR, TR_GRV, TR_EQL, KC_HASH, KC_ASTR, ___x___, ___x___, \ - ___x___, TR_LCBR, KC_RCBR, TR_PIPE, TR_SCLN, KC_AMPR, KC_QUES, TR_LBRC, KC_RBRC, ___x___, \ - ___x___, TR_LABK, KC_RABK, TR_BSLS, KC_EXLM, TR_PERC, TR_SLSH, TR_LPRN, KC_RPRN, ___x___, \ + ___x___, ___x___, KC_AT, KC_DLR, TR_GRV, TR_EQL, KC_HASH, KC_ASTR, ___x___, TR_DQUO, \ + ___x___, TR_LCBR, KC_RCBR, TR_PIPE, TR_SCLN, KC_AMPR, KC_QUES, TR_LBRC, KC_RBRC, TR_SQUO, \ + ___x___, TR_LABK, KC_RABK, TR_BSLS, KC_EXLM, TR_PERC, TR_SLSH, TR_LPRN, KC_RPRN, TR_MINS, \ _LAYER_TRANS_____________, _LAYER_TRANS_____________, \ ___x___, ___x___ @@ -213,5 +208,5 @@ enum keycodes { MOU_FUN, ___x___, ___x___, TR_PDPI, TR_SDPI, TOG_CFG, KC_F7, KC_F8, KC_F9, KC_F10, \ _GACS_MODS________________________, TR_DRGS, FWD_CFG, KC_F4, KC_F5, KC_F6, KC_F11, \ _______, KC_BTN1, KC_BTN5, KC_BTN4, TR_SNIP, REV_CFG, KC_F1, KC_F2, KC_F3, KC_F12, \ - KC_BTN1, KC_BTN3, KC_BTN2, REV_RGB, FWD_RGB, ___x___, \ + KC_BTN1, KC_BTN3, KC_BTN2, DM_PLY1, DM_REC1, ___x___, \ SCR_TOP, ZOOMRST