mirror of
https://github.com/qmk/qmk_userspace.git
synced 2025-05-04 14:44:16 -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
29
README.md
29
README.md
|
@ -6,6 +6,10 @@ The custom layout optimizes for programming (SQL, Powershell, C) and minimizes h
|
|||
|
||||
## Features
|
||||
|
||||
### Build Non-Tree Keyboards
|
||||
|
||||
- Extended the [qmk/.github](https://github.com/qmk/.github) userspace build actions to build non-tree qmk keyboards (e.g. Barbellboards Rollow). This works by copying keyboard definitions from the userspace to the qmk_firmware keyboards folder in the container. The list of keyboards to copy are defined in `qmk_nontree.json`
|
||||
|
||||
### Layout Wrapper Macros
|
||||
|
||||
A single keymap layout can be shared with multiple keyboards by using C preprocessor macros. These macros are referenced in the keyboard JSON files, and the build process will expand them into a transient keymap.c file during compile time.
|
||||
|
@ -101,22 +105,19 @@ Additional keys may be mapped if present. Check each keyboard's `keymap.c` for m
|
|||
├──────┼──────┼──────┼──────┼──────┤ ├──────┼──────┼──────┼──────┼──────┤
|
||||
│ z │ x │ c │ v │ b │ │ n │ m │ , ( │ . ) │ - _ │
|
||||
╰──────┴──────┼──────┼──────┼──────┤ ├──────┼──────┼──────┼──────┴──────╯
|
||||
enc: mwheel │ │ num │ mou │ │ spc │ nav │ mute │ enc: volume
|
||||
enc: mwheel │ │ num │ shft │ │ spc │ nav │ mute │ enc: volume
|
||||
╰──────┴──────┴──────╯ ╰──────┴──────┴──────╯
|
||||
|
||||
╭──────┬──────┬──────┬──────┬──────╮ ╭──────┬──────┬──────┬──────┬──────╮
|
||||
│ q │ w │ f │ p │ b │ │ j │ l │ u │ y │ o │
|
||||
│ q │ w │ f │ p │ b │ │ j │ l │ u │ y │ ' " │
|
||||
├──────┼──────┼──────┼──────┼──────┤ ├──────┼──────┼──────┼──────┼──────┤
|
||||
│ a mou│ r │ s │ t │ g │ colemak │ m │ n │ e │ i │ ' " │
|
||||
│ a mou│ r │ s │ t │ g │ colemak │ m │ n │ e │ i │ o │
|
||||
├──────┼──────┼──────┼──────┼──────┤ dh ├──────┼──────┼──────┼──────┼──────┤
|
||||
│ z │ x │ c │ d │ v │ │ k │ h │ , ( │ . ) │ - _ │
|
||||
╰──────┴──────┼──────┼──────┼──────┤ ├──────┼──────┼──────┼──────┴──────╯
|
||||
enc: mwheel │ │ num │ mou │ │ spc │ nav │ mute │ enc: volume
|
||||
enc: mwheel │ │ num │ shft │ │ spc │ nav │ mute │ enc: volume
|
||||
╰──────┴──────┴──────╯ ╰──────┴──────┴──────╯
|
||||
|
||||
Notes:
|
||||
- swapped o and repeat on this keymap to keep repeat key in the same position across layers
|
||||
|
||||
╭──────┬──────┬──────┬──────┬──────╮ ╭──────┬──────┬──────┬──────┬──────╮
|
||||
│ tab │ q │ w │ e │ r │ │ │ │ │ │ │
|
||||
├──────┼──────┼──────┼──────┼──────┤ ├──────┼──────┼──────┼──────┼──────┤
|
||||
|
@ -128,11 +129,11 @@ Notes:
|
|||
╰──────┴──────┴──────╯ ╰──────┴──────┴──────╯
|
||||
|
||||
╭──────┬──────┬──────┬──────┬──────╮ ╭──────┬──────┬──────┬──────┬──────╮
|
||||
│ esc │ home │ up │ end │ pgup │ │ ins │ │ app │ │ cfg │
|
||||
│ esc │ home │ up │ end │ pgup │ │ ins │ │ │ │ cfg │
|
||||
├──────┼──────┼──────┼──────┼──────┤ ├──────┼──────┼──────┼──────┼──────┤
|
||||
│ │ left │ down │ rght │ pgdn │ nav │ bksp │ shft │ ctrl │ alt │ gui │
|
||||
│ tab │ left │ down │ rght │ pgdn │ nav │ bksp │ shft │ ctrl │ alt │ gui │
|
||||
├──────┼──────┼──────┼──────┼──────┤ ├──────┼──────┼──────┼──────┼──────┤
|
||||
│ undo │ cut │ copy │ pste │ redo │ │ del │ tab │ vol- │ vol+ │ mute │
|
||||
│ undo │ cut │ copy │ pste │ redo │ │ del │ app │ vol- │ vol+ │ mute │
|
||||
╰──────┴──────┼──────┼──────┼──────┤ ├──────┼──────┼──────┴──────┴──────╯
|
||||
enc: zoom │ zrst │ num │ ent │ │ │ nav │ │ enc: none
|
||||
╰──────┴──────┴──────╯ ╰──────┴──────┴──────╯
|
||||
|
@ -147,7 +148,7 @@ Notes:
|
|||
├──────┼──────┼──────┼──────┼──────┤ ├──────┼──────┼──────┼──────┼──────┤
|
||||
│ undo │ cut │ copy │ pste │ redo │ │ del │ 1 │ 2 │ 3 │ - _ │
|
||||
╰──────┴──────┼──────┼──────┼──────┤ ├──────┼──────┼──────┼──────┴──────╯
|
||||
enc: none │ │ sym │ │ │ spc │ 0 nav│ │ enc: ← →
|
||||
enc: none │ │ num │ │ │ spc │ 0 nav│ │ enc: ← →
|
||||
╰──────┴──────┴──────╯ ╰──────┴──────┴──────╯
|
||||
|
||||
╭──────┬──────┬──────┬──────┬──────╮ ╭──────┬──────┬──────┬──────┬──────╮
|
||||
|
@ -157,7 +158,7 @@ Notes:
|
|||
├──────┼──────┼──────┼──────┼──────┤ ├──────┼──────┼──────┼──────┼──────┤
|
||||
│ % ^ │ < <> │ > │ \ │ ! │ │ del │ / │ , () │ . ) │ - _ │
|
||||
╰──────┴──────┼──────┼──────┼──────┤ ├──────┼──────┼──────┼──────┴──────╯
|
||||
enc: none │ │ sym │ │ │ │ nav │ │ enc: none
|
||||
enc: none │ │ num │ │ │ │ nav │ │ enc: none
|
||||
╰──────┴──────┴──────╯ ╰──────┴──────┴──────╯
|
||||
|
||||
Notes:
|
||||
|
@ -170,7 +171,7 @@ Notes:
|
|||
├──────┼──────┼──────┼──────┼──────┤ ├──────┼──────┼──────┼──────┼──────┤
|
||||
│ │ │ │ │ │ │ paus │ F1 │ F2 │ F3 │ F12 │
|
||||
╰──────┴──────┼──────┼──────┼──────┤ ├──────┼──────┼──────┼──────┴──────╯
|
||||
enc: none │ │ sym │ │ │ mply1│ mrec1│ │ enc: ↑ ↓
|
||||
enc: none │ │ num │ │ │ mply1│ mrec1│ │ enc: ↑ ↓
|
||||
╰──────┴──────┴──────╯ ╰──────┴──────┴──────╯
|
||||
|
||||
╭──────┬──────┬──────┬──────┬──────╮ ╭──────┬──────┬──────┬──────┬──────╮
|
||||
|
@ -195,7 +196,7 @@ Notes:
|
|||
├──────┼──────┼──────┼──────┼──────┤ num ├──────┼──────┼──────┼──────┼──────┤
|
||||
│ │ 5 │ 6 │ 7 │ 8 │ │ │ │ │ │ │
|
||||
╰──────┴──────┼──────┼──────┼──────┤ ├──────┼──────┼──────┼──────┴──────╯
|
||||
end: mwheel │ │ alt │ ctr │ │ │ nav │ mute │ enc: volume
|
||||
end: mwheel │ │ alt │ ctrl │ │ │ nav │ mute │ enc: volume
|
||||
╰──────┴──────┴──────╯ ╰──────┴──────┴──────╯
|
||||
|
||||
╭──────┬──────┬──────┬──────┬──────╮ ╭──────┬──────┬──────┬──────┬──────╮
|
||||
|
|
|
@ -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