mirror of
https://github.com/qmk/qmk_userspace.git
synced 2025-05-05 07:04:17 -04:00
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:
parent
f9aa0c3866
commit
567bbb7d25
4 changed files with 84 additions and 49 deletions
|
@ -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
|
|
@ -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;
|
||||||
}
|
}
|
|
@ -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),
|
||||||
|
|
|
@ -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_____________
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue