cleanup and tuning

- added escape and enter back in
- made the mouse buttons more intuitive
- moved tab to the right hand
- implemented combos per layer
This commit is contained in:
Victor 2024-04-18 20:41:02 -05:00
parent f9aa0c3866
commit 567bbb7d25
Failed to generate hash of commit
4 changed files with 84 additions and 49 deletions

View file

@ -9,27 +9,30 @@ Explore these (there are way more)
*/ */
//Clear variables we plan to use that might be set elsewhere //Clear variables we plan to use that might be set elsewhere
#undef COMBO_ONLY_FROM_LAYER
#undef EXTRA_SHORT_COMBOS
#undef COMBO_TERM #undef COMBO_TERM
#undef COMBO_TERM_PER_COMBO #undef COMBO_TERM_PER_COMBO
#undef COMBO_MUST_TAP_PER_COMBO
#undef EXTRA_SHORT_COMBOS
#undef COMBO_ONLY_FROM_LAYER
#undef COMBO_HOLD_TERM #undef COMBO_HOLD_TERM
#undef COMBO_MUST_HOLD_PER_COMBO #undef COMBO_MUST_HOLD_PER_COMBO
#undef COMBO_MUST_TAP_PER_COMBO
#undef COMBO_MUST_PRESS_IN_ORDER_PER_COMBO #undef COMBO_MUST_PRESS_IN_ORDER_PER_COMBO
#undef COMBO_SHOULD_TRIGGER
//Set common configuration for all keyboards //Set common configuration for all keyboards
#define COMBO_ONLY_FROM_LAYER 0 //this will always setup combos based off of QWERTY layout
#define EXTRA_SHORT_COMBOS
#define COMBO_TERM 35 #define COMBO_TERM 35
#define COMBO_TERM_PER_COMBO #define COMBO_TERM_PER_COMBO
#define COMBO_MUST_TAP_PER_COMBO
#define EXTRA_SHORT_COMBOS
#define COMBO_ONLY_FROM_LAYER 0 //this will always setup combos based off of QWERTY
#define COMBO_HOLD_TERM TAPPING_TERM #define COMBO_HOLD_TERM TAPPING_TERM
#define COMBO_MUST_HOLD_PER_COMBO #define COMBO_MUST_HOLD_PER_COMBO
#define COMBO_MUST_TAP_PER_COMBO
#define COMBO_MUST_PRESS_IN_ORDER_PER_COMBO #define COMBO_MUST_PRESS_IN_ORDER_PER_COMBO
#define COMBO_SHOULD_TRIGGER

View file

@ -1,14 +1,16 @@
#include "combo.h" #include "combo.h"
bool get_combo_must_hold(uint16_t index, combo_t *combo) { uint16_t get_combo_term(uint16_t index, combo_t *combo) {
// or with combo index, i.e. its name from enum.
switch (index) { switch (index) {
/*
case LYR_CONFIG: case CONFIGLAYER:
case LYR_FUNCTION: return COMBO_HOLD_TERM + 150;
return true; */
default: default:
return false; return COMBO_TERM;
} }
} }
@ -23,6 +25,8 @@ bool get_combo_must_tap(uint16_t index, combo_t *combo) {
case MOUSE_DRGTOG: case MOUSE_DRGTOG:
#endif //MOUSEKEY_ENABLE #endif //MOUSEKEY_ENABLE
case KEY_ESC:
case KEY_ENT:
case KEY_TAB: case KEY_TAB:
case KEY_BWRD: case KEY_BWRD:
return true; return true;
@ -32,6 +36,18 @@ bool get_combo_must_tap(uint16_t index, combo_t *combo) {
} }
} }
bool get_combo_must_hold(uint16_t index, combo_t *combo) {
switch (index) {
case LYR_CONFIG:
case LYR_FUNCTION:
return true;
default:
return false;
}
}
bool get_combo_must_press_in_order(uint16_t combo_index, combo_t *combo) { bool get_combo_must_press_in_order(uint16_t combo_index, combo_t *combo) {
switch (combo_index) { switch (combo_index) {
/* List combos here that you want to only activate if their keys /* List combos here that you want to only activate if their keys
@ -41,28 +57,42 @@ bool get_combo_must_press_in_order(uint16_t combo_index, combo_t *combo) {
* return false means they do not have to be pressed in order * return false means they do not have to be pressed in order
* */ * */
#if defined(MOUSEKEY_ENABLE2222)
case MOUSE_BUTTON1:
case MOUSE_BUTTON2:
case MOUSE_BUTTON4:
return true;
#endif //MOUSEKEY_ENABLE
default: default:
return false; return false;
} }
} }
uint16_t get_combo_term(uint16_t index, combo_t *combo) { bool combo_should_trigger(uint16_t combo_index, combo_t *combo, uint16_t keycode, keyrecord_t *record) {
// or with combo index, i.e. its name from enum.
switch (index) {
/*
case CONFIGLAYER:
return COMBO_HOLD_TERM + 150;
*/
default:
return COMBO_TERM;
// disable all combos on config layer
if ( get_highest_layer(layer_state) == _CONFIG ) {
return false;
} }
switch (combo_index) {
case KEY_ESC:
case KEY_ENT:
case KEY_TAB:
if ( get_highest_layer(layer_state) == _NAVIGATION ||
get_highest_layer(layer_state) == _SYMBOL ) {
return false;
}
break;
case MOUSE_BUTTON1:
case MOUSE_BUTTON2:
case MOUSE_BUTTON3:
case MOUSE_BUTTON4:
case MOUSE_BUTTON5:
case MOUSE_DRGTOG:
if ( get_highest_layer(layer_state) == _NAVIGATION ||
get_highest_layer(layer_state) == _NUMBER ||
get_highest_layer(layer_state) == _SYMBOL ) {
return false;
}
break;
}
return true;
} }

View file

@ -13,10 +13,12 @@ enum combos {
MOUSE_DRGTOG, MOUSE_DRGTOG,
#endif //MOUSEKEY_ENABLE #endif //MOUSEKEY_ENABLE
KEY_TAB, KEY_ESC,
KEY_ENT,
LYR_FUNCTION, LYR_FUNCTION,
// right hand combos // right hand combos
KEY_TAB,
KEY_DEL, KEY_DEL,
KEY_BSPC, KEY_BSPC,
KEY_BWRD, KEY_BWRD,
@ -29,23 +31,27 @@ enum combos {
// left hand combos // left hand combos
#if defined(MOUSEKEY_ENABLE) #if defined(MOUSEKEY_ENABLE)
const uint16_t PROGMEM mou_btn1_combo[] = { KC_D, KC_F, COMBO_END }; const uint16_t PROGMEM mou_btn1_combo[] = { KC_D, KC_F, COMBO_END };
const uint16_t PROGMEM mou_btn2_combo[] = { KC_S, KC_D, COMBO_END }; const uint16_t PROGMEM mou_btn2_combo[] = { KC_C, KC_V, COMBO_END };
const uint16_t PROGMEM mou_btn3_combo[] = { KC_S, KC_D, KC_F, COMBO_END }; const uint16_t PROGMEM mou_btn3_combo[] = { KC_S, KC_D, KC_F, COMBO_END };
const uint16_t PROGMEM mou_btn4_combo[] = { KC_E, KC_R, COMBO_END }; const uint16_t PROGMEM mou_btn4_combo[] = { KC_E, KC_R, COMBO_END };
const uint16_t PROGMEM mou_btn5_combo[] = { KC_W, KC_E, COMBO_END }; const uint16_t PROGMEM mou_btn5_combo[] = { KC_W, KC_E, KC_R, COMBO_END };
const uint16_t PROGMEM mou_drg_combo[] = { TR_MOUA, KC_S, KC_D, KC_F, COMBO_END }; const uint16_t PROGMEM mou_drg_combo[] = { KC_A, KC_S, KC_D, KC_F, COMBO_END };
#endif //MOUSEKEY_ENABLE #endif //MOUSEKEY_ENABLE
const uint16_t PROGMEM key_tab_combo[] = { KC_C, KC_V, COMBO_END }; const uint16_t PROGMEM key_esc_combo[] = { KC_W, KC_E, COMBO_END };
const uint16_t PROGMEM key_ent_combo[] = { KC_X, KC_C, COMBO_END };
const uint16_t PROGMEM lyr_fun_combo[] = { NUM, TR_LSFT, COMBO_END }; const uint16_t PROGMEM lyr_fun_combo[] = { NUM, TR_LSFT, COMBO_END };
// right hand combos // right hand combos
const uint16_t PROGMEM key_tab_combo[] = { KC_J, KC_K, COMBO_END };
const uint16_t PROGMEM key_del_combo[] = { TR_COMM, TR_DOT, COMBO_END }; const uint16_t PROGMEM key_del_combo[] = { TR_COMM, TR_DOT, COMBO_END };
const uint16_t PROGMEM key_bspc_combo[] = { KC_M, TR_COMM, COMBO_END }; const uint16_t PROGMEM key_bspc_combo[] = { KC_M, TR_COMM, COMBO_END };
const uint16_t PROGMEM key_bwrd_combo[] = { KC_M, TR_DOT, COMBO_END }; const uint16_t PROGMEM key_bwrd_combo[] = { KC_M, TR_DOT, COMBO_END };
const uint16_t PROGMEM lyr_cfg_combo[] = { KC_SPC, NAV, COMBO_END }; const uint16_t PROGMEM lyr_cfg_combo[] = { KC_SPC, NAV, COMBO_END };
combo_t key_combos[COMBO_LENGTH] = { combo_t key_combos[COMBO_LENGTH] = {
// left hand combos // left hand combos
@ -58,10 +64,12 @@ combo_t key_combos[COMBO_LENGTH] = {
[MOUSE_DRGTOG] = COMBO(mou_drg_combo, TR_DRGS), [MOUSE_DRGTOG] = COMBO(mou_drg_combo, TR_DRGS),
#endif //MOUSEKEY_ENABLE #endif //MOUSEKEY_ENABLE
[KEY_TAB] = COMBO(key_tab_combo, KC_TAB), [KEY_ESC] = COMBO(key_esc_combo, KC_ESC),
[KEY_ENT] = COMBO(key_ent_combo, KC_ENT),
[LYR_FUNCTION] = COMBO(lyr_fun_combo, FUNC), [LYR_FUNCTION] = COMBO(lyr_fun_combo, FUNC),
// right hand combos // right hand combos
[KEY_TAB] = COMBO(key_tab_combo, KC_TAB),
[KEY_DEL] = COMBO(key_del_combo, KC_DEL), [KEY_DEL] = COMBO(key_del_combo, KC_DEL),
[KEY_BSPC] = COMBO(key_bspc_combo, KC_BSPC), [KEY_BSPC] = COMBO(key_bspc_combo, KC_BSPC),
[KEY_BWRD] = COMBO(key_bwrd_combo, BACKWRD), [KEY_BWRD] = COMBO(key_bwrd_combo, BACKWRD),

View file

@ -12,8 +12,6 @@ enum layers {
_NUMBER, _NUMBER,
_SYMBOL, _SYMBOL,
_FUNCTION, _FUNCTION,
_MOUSE,
_GAME_NUM,
_CONFIG _CONFIG
}; };
@ -46,8 +44,6 @@ enum keycodes {
#define NAV MO(_NAVIGATION) #define NAV MO(_NAVIGATION)
#define NAV_0 LT(_NAVIGATION, KC_0) #define NAV_0 LT(_NAVIGATION, KC_0)
#define NUM MO(_NUMBER) #define NUM MO(_NUMBER)
#define CONFIG MO(_CONFIG)
#define FUNC MO(_FUNCTION)
// Windows Shortcuts // Windows Shortcuts
#define SC_COPY LCTL(KC_C) #define SC_COPY LCTL(KC_C)
@ -100,7 +96,6 @@ enum keycodes {
#if defined(MOUSEKEY_ENABLE) #if defined(MOUSEKEY_ENABLE)
# define TR_MOUA LT(_MOUSE, KC_A)
# define TR_MOUU KC_MS_U # define TR_MOUU KC_MS_U
# define TR_MOUD KC_MS_D # define TR_MOUD KC_MS_D
@ -130,7 +125,6 @@ enum keycodes {
# endif //KEYBOARD_bastardkb_charybdis_3x5 # endif //KEYBOARD_bastardkb_charybdis_3x5
#else #else
# define TR_MOUA KC_A
# define TR_MOUU ___x___ # define TR_MOUU ___x___
# define TR_MOUD ___x___ # define TR_MOUD ___x___
@ -205,14 +199,14 @@ enum keycodes {
#define LAYER_QWERTY \ #define LAYER_QWERTY \
KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, \ KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, \
TR_MOUA, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, TR_QUOT, \ KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, TR_QUOT, \
KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, TR_COMM, TR_DOT, TR_MINS, \ KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, TR_COMM, TR_DOT, TR_MINS, \
_BASE_L4_________________, _BASE_R4_________________ _BASE_L4_________________, _BASE_R4_________________
#define LAYER_COLEMAK_DH \ #define LAYER_COLEMAK_DH \
KC_Q, KC_W, KC_F, KC_P, KC_B, KC_J, KC_L, KC_U, KC_Y, TR_QUOT, \ KC_Q, KC_W, KC_F, KC_P, KC_B, KC_J, KC_L, KC_U, KC_Y, TR_QUOT, \
TR_MOUA, KC_R, KC_S, KC_T, KC_G, KC_M, KC_N, KC_E, KC_I, KC_O, \ KC_A, KC_R, KC_S, KC_T, KC_G, KC_M, KC_N, KC_E, KC_I, KC_O, \
KC_Z, KC_X, KC_C, KC_D, KC_V, KC_K, KC_H, TR_COMM, TR_DOT, TR_MINS, \ KC_Z, KC_X, KC_C, KC_D, KC_V, KC_K, KC_H, TR_COMM, TR_DOT, TR_MINS, \
_BASE_L4_________________, _BASE_R4_________________ _BASE_L4_________________, _BASE_R4_________________
@ -232,14 +226,14 @@ enum keycodes {
#define LAYER_NUMBER \ #define LAYER_NUMBER \
KC_ESC, SC_SNIP, SC_FILE, ___x___, TR_GRV, ___x___, KC_7, KC_8, KC_9, ___x___, \ ___x___, SC_SNIP, SC_FILE, ___x___, TR_GRV, ___x___, KC_7, KC_8, KC_9, ___x___, \
_GACS_MODS________________________, TR_SCLN, ___x___, KC_4, KC_5, KC_6, KC_DOT, \ _GACS_MODS________________________, TR_SCLN, ___x___, KC_4, KC_5, KC_6, KC_DOT, \
_UCCPR_L___________________________________, ___x___, KC_1, KC_2, KC_3, TR_MINS, \ _UCCPR_L___________________________________, ___x___, KC_1, KC_2, KC_3, TR_MINS, \
_LAYER_TRANS_____________, KC_SPC, NAV_0, ___x___ _LAYER_TRANS_____________, KC_SPC, NAV_0, ___x___
#define LAYER_SYMBOL \ #define LAYER_SYMBOL \
KC_ESC, ___x___, KC_AT, KC_DLR, TR_GRV, TR_EQL, KC_HASH, KC_ASTR, ___x___, TR_DQUO, \ ___x___, ___x___, KC_AT, KC_DLR, TR_GRV, TR_EQL, KC_HASH, KC_ASTR, ___x___, TR_DQUO, \
KC_AMPR, TR_LCBR, KC_RCBR, KC_PIPE, TR_SCLN, ___x___, KC_QUES, TR_LBRC, KC_RBRC, TR_SQUO, \ KC_AMPR, TR_LCBR, KC_RCBR, KC_PIPE, TR_SCLN, ___x___, KC_QUES, TR_LBRC, KC_RBRC, TR_SQUO, \
TR_PERC, TR_LABK, KC_RABK, KC_BSLS, KC_EXLM, ___x___, KC_SLSH, TR_LPRN, TR_DOT, TR_MINS, \ TR_PERC, TR_LABK, KC_RABK, KC_BSLS, KC_EXLM, ___x___, KC_SLSH, TR_LPRN, TR_DOT, TR_MINS, \
_LAYER_TRANS_____________, _LAYER_TRANS_____________ _LAYER_TRANS_____________, _LAYER_TRANS_____________