mirror of
https://github.com/qmk/qmk_userspace.git
synced 2025-07-05 11:20:35 -04:00
Re-enabling combos
- implement mouse buttons - activate certain layers with thumbs - update readme for clarity
This commit is contained in:
parent
d40809e5a6
commit
8a48499504
5 changed files with 89 additions and 46 deletions
|
@ -6,28 +6,29 @@
|
|||
//const uint16_t PROGMEM sniptog_combo[] = {KC_M, TR_DOT, COMBO_END};
|
||||
//const uint16_t PROGMEM moubtn4_combo[] = {KC_SPC, NAV, COMBO_END};
|
||||
|
||||
combo_t key_combos[COMBO_LENGTH] = {
|
||||
|
||||
/*
|
||||
#if defined(POINTING_DEVICE_ENABLE)
|
||||
[DRAGTOGGLE] = COMBO(dragtog_combo, DRG_TOG),
|
||||
[SNIPERTOGGLE] = COMBO(sniptog_combo, SNP_TOG),
|
||||
#else
|
||||
[DRAGTOGGLE] = COMBO(dragtog_combo, ___x___),
|
||||
[SNIPERTOGGLE] = COMBO(sniptog_combo, ___x___),
|
||||
#endif //POINTING_DEVICE_ENABLE
|
||||
mouse buttons to map
|
||||
- mb1 left 1 df
|
||||
- mb2 right 3 dg
|
||||
- mb3 middle
|
||||
- mb4 back 2 cv
|
||||
- mb5 forward
|
||||
|
||||
#if defined(MOUSELAYER_ENABLE)
|
||||
[MOUSEBUTTON4] = COMBO(moubtn4_combo, KC_BTN4)
|
||||
#else
|
||||
[MOUSEBUTTON4] = COMBO(moubtn4_combo, ___x___)
|
||||
#endif //MOUSELAYER_ENABLE
|
||||
bigrams that may work for mouse
|
||||
- cv
|
||||
- cb
|
||||
- xc
|
||||
- cv
|
||||
*/
|
||||
};
|
||||
|
||||
|
||||
bool get_combo_must_hold(uint16_t index, combo_t *combo) {
|
||||
switch (index) {
|
||||
|
||||
case LYR_CONFIG:
|
||||
case LYR_FUNCTION:
|
||||
return true;
|
||||
|
||||
default:
|
||||
return false;
|
||||
}
|
||||
|
@ -44,6 +45,11 @@ bool get_combo_must_tap(uint16_t index, combo_t *combo) {
|
|||
return true;
|
||||
*/
|
||||
|
||||
case MOUSE_BUTTON1:
|
||||
case MOUSE_BUTTON2:
|
||||
case MOUSE_BUTTON4:
|
||||
case MOUSE_DRGTOG:
|
||||
|
||||
default:
|
||||
return false;
|
||||
}
|
||||
|
@ -53,10 +59,14 @@ bool get_combo_must_press_in_order(uint16_t combo_index, combo_t *combo) {
|
|||
switch (combo_index) {
|
||||
/* List combos here that you want to only activate if their keys
|
||||
* are pressed in the same order as they are defined in the combo's key
|
||||
* array. */
|
||||
* array.
|
||||
*
|
||||
* return false means they do not have to be pressed in order
|
||||
*
|
||||
* */
|
||||
|
||||
default:
|
||||
return false;
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -3,10 +3,49 @@
|
|||
|
||||
enum combos {
|
||||
//DRAGTOGGLE,
|
||||
//SNIPERTOGGLE,
|
||||
//SNIPERTOGGLE,c
|
||||
//MOUSEBUTTON4,
|
||||
|
||||
#if defined(MOUSELAYER_ENABLE)
|
||||
MOUSE_BUTTON1,
|
||||
MOUSE_BUTTON2,
|
||||
MOUSE_BUTTON4,
|
||||
MOUSE_DRGTOG,
|
||||
#endif //MOUSELAYER_ENABLE
|
||||
|
||||
KB_TAB,
|
||||
KB_BSPC,
|
||||
LYR_CONFIG,
|
||||
LYR_FUNCTION,
|
||||
COMBO_LENGTH
|
||||
};
|
||||
|
||||
#if defined(MOUSELAYER_ENABLE)
|
||||
const uint16_t PROGMEM mou_btn1_combo[] = { KC_D, KC_F, COMBO_END };
|
||||
const uint16_t PROGMEM mou_btn2_combo[] = { KC_D, KC_G, COMBO_END };
|
||||
const uint16_t PROGMEM mou_btn4_combo[] = { KC_C, KC_V, COMBO_END };
|
||||
const uint16_t PROGMEM mou_drg_combo[] = { TR_COMM, TR_DOT, COMBO_END };
|
||||
#endif //MOUSELAYER_ENABLE
|
||||
|
||||
const uint16_t PROGMEM kb_tab_combo[] = { KC_S, KC_F, COMBO_END };
|
||||
const uint16_t PROGMEM kb_bspc_combo[] = { KC_J, KC_L, COMBO_END };
|
||||
const uint16_t PROGMEM lyr_cfg_combo[] = { KC_SPC, NAV, COMBO_END };
|
||||
const uint16_t PROGMEM lyr_fun_combo[] = { NUM, TR_LSFT, COMBO_END };
|
||||
|
||||
combo_t key_combos[COMBO_LENGTH] = {
|
||||
|
||||
#if defined(MOUSELAYER_ENABLE)
|
||||
[MOUSE_BUTTON1] = COMBO(mou_btn1_combo, TR_BTN1),
|
||||
[MOUSE_BUTTON2] = COMBO(mou_btn2_combo, TR_BTN2),
|
||||
[MOUSE_BUTTON4] = COMBO(mou_btn4_combo, TR_BTN4),
|
||||
[MOUSE_BUTTON4] = COMBO(mou_drg_combo, TR_DRGS),
|
||||
#endif //MOUSELAYER_ENABLE
|
||||
|
||||
[KB_TAB] = COMBO(kb_tab_combo, KC_TAB),
|
||||
[KB_BSPC] = COMBO(kb_bspc_combo, KC_BSPC),
|
||||
[LYR_CONFIG] = COMBO(lyr_cfg_combo, CONFIG),
|
||||
[LYR_FUNCTION] = COMBO(lyr_fun_combo, FUNC)
|
||||
};
|
||||
|
||||
//their documentation is so confusing because you don't use COMBO_LEN defining the actions
|
||||
uint16_t COMBO_LEN = COMBO_LENGTH;
|
|
@ -18,7 +18,6 @@ UNICODE_ENABLE ?= no
|
|||
SPACE_CADET_ENABLE ?= no
|
||||
GRAVE_ESC_ENABLE ?= no
|
||||
|
||||
COMBO_ENABLE ?= no
|
||||
DYNAMIC_MACRO_ENABLE ?= yes
|
||||
RGB_MATRIX_ENABLE ?= no
|
||||
RGBLIGHT_ENABLE ?= no
|
||||
|
@ -32,7 +31,7 @@ EXTRAKEY_ENABLE = yes
|
|||
AUDIO_ENABLE = no
|
||||
CAPS_WORD_ENABLE = yes
|
||||
MOUSEKEY_ENABLE = yes
|
||||
|
||||
COMBO_ENABLE = yes
|
||||
|
||||
# ---------------------------------------------------------
|
||||
# include my code that will be common across all my keyboards
|
||||
|
@ -49,7 +48,6 @@ ifeq ($(strip $(CAPS_WORD_ENABLE)), yes)
|
|||
SRC += features/capsword.c
|
||||
endif
|
||||
|
||||
|
||||
ifeq ($(strip $(RGB_MATRIX_ENABLE)), yes)
|
||||
SRC += features/rgbmatrix.c
|
||||
endif
|
||||
|
@ -58,12 +56,10 @@ ifeq ($(strip $(RGB_MATRIX_ENABLE)), ws2812)
|
|||
SRC += features/rgbmatrix.c
|
||||
endif
|
||||
|
||||
|
||||
ifeq ($(strip $(MOUSEKEY_ENABLE)), yes)
|
||||
SRC += features/mouse.c
|
||||
endif
|
||||
|
||||
|
||||
ifeq ($(strip $(OLED_ENABLE)), yes)
|
||||
SRC += features/oled.c
|
||||
endif
|
||||
|
|
|
@ -114,12 +114,10 @@ enum keycodes {
|
|||
# define TR_BTN4 KC_BTN4
|
||||
# define TR_BTN5 KC_BTN5
|
||||
|
||||
# define TR_NUM1 LT(_NUMBER, KC_BTN1)
|
||||
|
||||
# if defined(KEYBOARD_bastardkb_charybdis_3x5)
|
||||
//these codes are defined in charybdis.h
|
||||
# define TR_SNIP SNIPING
|
||||
# define TR_DRGS DRGSCRL
|
||||
# define TR_DRGS DRG_TOG
|
||||
# define TR_SDPI S_D_MOD //sniping dpi
|
||||
# define TR_PDPI DPI_MOD //pointer dpi
|
||||
# else
|
||||
|
@ -151,7 +149,6 @@ enum keycodes {
|
|||
# define TR_SDPI ___x___
|
||||
# define TR_PDPI ___x___
|
||||
|
||||
# define TR_NUM1 MO(_NUMBER)
|
||||
#endif //MOUSEKEY_ENABLE
|
||||
|
||||
|
||||
|
@ -197,7 +194,7 @@ enum keycodes {
|
|||
#define _SCAG_MODS________________________ TR_LSFT, TR_LCTL, TR_LALT, TR_LGUI
|
||||
#define _UCCPR_L___________________________________ SC_UNDO, SC_CUT, SC_COPY, SC_PAST, SC_REDO
|
||||
|
||||
#define _BASE_L4_________________ ___x___, TR_NUM1, TR_LSFT
|
||||
#define _BASE_L4_________________ ___x___, NUM, TR_LSFT
|
||||
#define _BASE_R4_________________ KC_SPC, NAV, KC_MUTE
|
||||
#define _LAYER_TRANS_____________ ___x___, _______, ___x___
|
||||
|
||||
|
@ -233,10 +230,10 @@ enum keycodes {
|
|||
|
||||
|
||||
#define LAYER_NAVIGATION \
|
||||
KC_ESC, KC_HOME, KC_UP, KC_END, KC_PGUP, KC_INS, ___x___, KC_APP, ___x___, CONFIG, \
|
||||
___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, \
|
||||
ZOOMRST, NUM, KC_ENT, _LAYER_TRANS_____________
|
||||
KC_ESC, KC_HOME, KC_UP, KC_END, KC_PGUP, KC_INS, ___x___, ___x___, ___x___, CONFIG, \
|
||||
KC_TAB, KC_LEFT, KC_DOWN, KC_RGHT, KC_PGDN, KC_BSPC, _SCAG_MODS________________________, \
|
||||
_UCCPR_L___________________________________, KC_DEL, KC_APP, KC_VOLD, KC_VOLU, KC_MUTE, \
|
||||
ZOOMRST, _______, KC_ENT, _LAYER_TRANS_____________
|
||||
|
||||
|
||||
#define LAYER_NUMBER \
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue