Basically reverting back to an old keymap

- removed most combos and all key overrides
- implemented custom override for haptic and audio config
- went back to older keymap (e.g. backspace and del on most layers)
- reintroduced dedicated mouse button on thumb cluster
- mouse button 2 is now a combo
This commit is contained in:
Victor 2024-07-02 00:35:32 -05:00
parent db534a12b8
commit bd72a9b350
Failed to generate hash of commit
14 changed files with 141 additions and 201 deletions

View file

@ -43,7 +43,7 @@ const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = {
[_NUMBER] = { ENCODER_CCW_CW(___x___, ___x___), ENCODER_CCW_CW(KC_RGHT, KC_LEFT) },
[_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(KC_VOLU, KC_VOLD) },
[_CONFIG] = { ENCODER_CCW_CW(BASELYR, RBSELYR), ENCODER_CCW_CW(TR_RMOD, TR_RRMD) }
[_CONFIG] = { ENCODER_CCW_CW(BASELYR, RBSELYR), ENCODER_CCW_CW(RGB_MOD, RGB_RMOD) }
};

View file

@ -27,7 +27,7 @@ LAYOUT_cnano_wrapper ( \
k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, \
k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, \
k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, \
KC_BTN1, k33, k34, k35, k36 \
k32, k33, k34, k35, k36 \
)
#define CNANO(...) LAYOUT_3x5_3_keymap(__VA_ARGS__)

View file

@ -55,11 +55,11 @@ 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(ZOOMOUT, ZOOMIN), ENCODER_CCW_CW(___x___, ___x___) },
[_NAVIGATION] = { ENCODER_CCW_CW(___x___, ___x___), ENCODER_CCW_CW(___x___, ___x___) },
[_NUMBER] = { ENCODER_CCW_CW(___x___, ___x___), ENCODER_CCW_CW(KC_LEFT, KC_RGHT) },
[_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(KC_VOLD, KC_VOLU) },
[_CONFIG] = { ENCODER_CCW_CW(RBSELYR, BASELYR), ENCODER_CCW_CW(TR_RRMD, TR_RMOD) }
[_CONFIG] = { ENCODER_CCW_CW(RBSELYR, BASELYR), ENCODER_CCW_CW(RBSELYR, BASELYR) }
};

View file

@ -27,7 +27,7 @@ LAYOUT_crkbd_wrapper ( \
KC_NO, k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, KC_NO, \
KC_NO, k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, KC_NO, \
KC_NO, k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, KC_NO, \
KC_BTN1, k33, k34, k35, k36, KC_BTN4 \
k32, k33, k34, k35, k36, k37 \
)
#define CRKBD(...) LAYOUT_3x5_3_keymap(__VA_ARGS__)

View file

@ -42,7 +42,7 @@ const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = {
[_NUMBER] = { ENCODER_CCW_CW(___x___, ___x___), ENCODER_CCW_CW(KC_LEFT, KC_RGHT) },
[_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(KC_VOLD, KC_VOLU) },
[_CONFIG] = { ENCODER_CCW_CW(RBSELYR, BASELYR), ENCODER_CCW_CW(TR_RRMD, TR_RMOD) }
[_CONFIG] = { ENCODER_CCW_CW(RBSELYR, BASELYR), ENCODER_CCW_CW(RGB_RMOD, RGB_MOD) }
};

View file

@ -25,12 +25,16 @@
* https://docs.qmk.fm/tap_hold
* https://docs.qmk.fm/one_shot_keys
*/
#define TAP_CODE_DELAY 5 //time before tap is released
#define TAP_HOLD_CAPS_DELAY TAP_CODE_DELAY //turning down delay for caps lock so ploopy can do DPI switching
#define WAIT_DELAY 5 //custom variable to configure time between taps
#undef TAP_CODE_DELAY
#undef TAPPING_TERM
#undef QUICK_TAP_TERM
#undef ONESHOT_TAP_TOGGLE
#undef ONESHOT_TIMEOUT
#define TAP_CODE_DELAY 5
#define TAPPING_TERM 175
#define QUICK_TAP_TERM 120
#define ONESHOT_TAP_TOGGLE 3
@ -46,6 +50,9 @@
* #undef CAPS_WORD_INVERT_ON_SHIFT
*/
#if defined(CAPS_WORD_ENABLE)
# undef DOUBLE_TAP_SHIFT_TURNS_ON_CAPS_WORD
# undef CAPS_WORD_IDLE_TIMEOUT
# define DOUBLE_TAP_SHIFT_TURNS_ON_CAPS_WORD
# define CAPS_WORD_IDLE_TIMEOUT 2000
#endif //CAPS_WORD_ENABLE
@ -56,12 +63,14 @@
* https://docs.qmk.fm/features/combo
*/
#if defined(COMBO_ENABLE)
# undef COMBO_ONLY_FROM_LAYER
# undef EXTRA_SHORT_COMBOS
# undef COMBO_TERM
# undef COMBO_SHOULD_TRIGGER
# 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_MUST_TAP_PER_COMBO
# define COMBO_SHOULD_TRIGGER
#endif //COMBO_ENABLE
@ -71,6 +80,15 @@
* https://docs.qmk.fm/features/split_keyboard
*/
#if defined(SPLIT_KEYBOARD)
# undef SPLIT_TRANSPORT_MIRROR
# undef SPLIT_LAYER_STATE_ENABLE
# undef SPLIT_LED_STATE_ENABLE
# undef SPLIT_MODS_ENABLE
# undef SPLIT_OLED_ENABLE
# undef SPLIT_ACTIVITY_ENABLE
# undef SPLIT_WPM_ENABLE
# undef MASTER_RIGHT
# define SPLIT_TRANSPORT_MIRROR
# define SPLIT_LAYER_STATE_ENABLE
# define SPLIT_LED_STATE_ENABLE
@ -87,6 +105,9 @@
* https://docs.qmk.fm/features/oled_driver
*/
#if defined(OLED_ENABLE)
# undef OLED_TIMEOUT
# undef OLED_FONT_H
# define OLED_TIMEOUT 60000 //1 min
# define OLED_FONT_H "./lib/font.c"
#endif //OLED_ENABLE
@ -98,6 +119,9 @@
*/
#if defined(HAPTIC_ENABLE)
# if defined(HAPTIC_DRV2605L)
# undef DRV2605L_GREETING
# undef DRV2605L_DEFAULT_MODE
# define DRV2605L_GREETING DRV2605L_EFFECT_750_MS_ALERT_100
# define DRV2605L_DEFAULT_MODE DRV2605L_EFFECT_STRONG_CLICK_1_100
# endif //HAPTIC_DRV2605L
@ -110,9 +134,16 @@
* https://docs.qmk.fm/squeezing_avr#audio-settings
*/
#if defined(AUDIO_ENABLE)
# undef KLOR_SOUND
# undef BYE_SOUND
# undef NO_MUSIC_MODE
# undef AUDIO_CLICKY
# undef STARTUP_SONG
# undef GOODBYE_SONG
# undef DEFAULT_LAYER_SONGS
# define KLOR_SOUND W__NOTE(_DS0), W__NOTE(_DS1), H__NOTE(_DS2), H__NOTE(_DS3), Q__NOTE(_DS4), Q__NOTE(_DS5), E__NOTE(_DS6), E__NOTE(_DS7), S__NOTE(_DS8), Q__NOTE(_GS0)
# define BYE_SOUND H__NOTE(_DS4), H__NOTE(_DS3), W__NOTE(_DS1)
# define NO_MUSIC_MODE
# define AUDIO_CLICKY
# define STARTUP_SONG SONG(KLOR_SOUND)
@ -130,7 +161,20 @@
* https://docs.qmk.fm/features/rgb_matrix
*/
#if defined(RGB_MATRIX_ENABLE)
# undef RGB_MATRIX_SLEEP
# undef RGB_MATRIX_TIMEOUT
# undef RGB_MATRIX_MAXIMUM_BRIGHTNESS
# undef RGB_MATRIX_DEFAULT_HUE
# undef RGB_MATRIX_DEFAULT_SAT
# undef RGB_MATRIX_DEFAULT_VAL
# undef RGB_MATRIX_DEFAULT_SPD
# undef RGB_MATRIX_TYPING_HEATMAP_DECREASE_DELAY_MS
# undef RGB_MATRIX_TYPING_HEATMAP_SPREAD
# undef RGB_MATRIX_TYPING_HEATMAP_AREA_LIMIT
# undef RGB_MATRIX_TYPING_HEATMAP_INCREASE_STEP
# define RGB_MATRIX_SLEEP
# define RGB_MATRIX_TIMEOUT 60000 //1 min

View file

@ -1,25 +1,11 @@
#include "combo.h"
bool get_combo_must_tap(uint16_t index, combo_t *combo) {
switch (index) {
case KEY_ENT:
case KEY_TAB:
return true;
default:
return false;
}
}
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_BUTTON1:
case MOUSE_BUTTON2:
if ( get_highest_layer(layer_state | default_layer_state) > FIRST_DEFAULT_LAYER ) {
return false;
}

View file

@ -2,20 +2,12 @@
#include "t4corun.h"
const uint16_t PROGMEM mou_btn1_combo[] = { KC_C, KC_V, COMBO_END };
const uint16_t PROGMEM mou_btn2_combo[] = { KC_C, KC_V, COMBO_END };
const uint16_t PROGMEM mou_drg_combo[] = { KC_X, KC_V, COMBO_END };
const uint16_t PROGMEM key_ent_combo[] = { KC_D, KC_F, COMBO_END };
const uint16_t PROGMEM key_bspc_combo[] = { KC_M, TR_COMM, COMBO_END };
const uint16_t PROGMEM key_tab_combo[] = { KC_J, KC_K, COMBO_END };
enum combos {
MOUSE_BUTTON1,
MOUSE_BUTTON2,
MOUSE_DRGTOG,
KEY_ENT,
KEY_BSPC,
KEY_TAB,
COMBO_LENGTH
};
@ -23,9 +15,6 @@ enum combos {
uint16_t COMBO_LEN = COMBO_LENGTH;
combo_t key_combos[COMBO_LENGTH] = {
[MOUSE_BUTTON1] = COMBO(mou_btn1_combo, KC_BTN1),
[MOUSE_DRGTOG] = COMBO(mou_drg_combo, TR_DRGS),
[KEY_ENT] = COMBO(key_ent_combo, KC_ENT),
[KEY_BSPC] = COMBO(key_bspc_combo, KC_BSPC),
[KEY_TAB] = COMBO(key_tab_combo, KC_TAB)
[MOUSE_BUTTON2] = COMBO(mou_btn2_combo, KC_BTN2),
[MOUSE_DRGTOG] = COMBO(mou_drg_combo, TR_DRGS)
};

View file

@ -1,41 +0,0 @@
#include "keyoverride.h"
/*
Key Override
Here we will override some shifted versions of keys
https://docs.qmk.fm/#/feature_key_overrides?id=simple-example
Intentionally did not convert all the override/autoshit tap holds to this format
- Here I could type faster and be able to hold to repeat the keycodes however
- I had tons of same finger bigrams doing trying to get ~ and :
- I didn't feel the need to be able to repeat those symbols
*/
const key_override_t delete_override = ko_make_basic(MOD_MASK_SHIFT, KC_BSPC, KC_DEL);
#if defined(HAPTIC_ENABLE)
const key_override_t hfnext_override = ko_make_with_layers(MOD_MASK_SHIFT, HF_NEXT, HF_PREV, 1<<_CONFIG);
const key_override_t hfconu_override = ko_make_with_layers(MOD_MASK_SHIFT, HF_CONU, HF_COND, 1<<_CONFIG);
#endif //HAPTIC_ENABLE
#if defined(AUDIO_ENABLE)
const key_override_t ckup_override = ko_make_with_layers(MOD_MASK_SHIFT, CK_UP, CK_DOWN, 1<<_CONFIG);
#endif //AUDIO_ENABLE
const key_override_t **key_overrides = (const key_override_t *[]) {
&delete_override,
#if defined(HAPTIC_ENABLE)
&hfnext_override,
&hfconu_override,
#endif //HAPTIC_ENABLE
#if defined(AUDIO_ENABLE)
&ckup_override,
#endif //AUDIO_ENABLE
NULL // Null terminate the array of overrides!
};

View file

@ -1,3 +0,0 @@
#pragma once
#include "t4corun.h"

View file

@ -31,11 +31,11 @@ bool process_tap_hold_key(keyrecord_t* record, uint16_t tap_keycode, uint16_t ho
switch (mode) {
case HOLD_BRACKETS:
record->event.pressed ? insert_brackets(tap_keycode, hold_keycode, WAIT_DELAY) : 0;
record->event.pressed ? insert_brackets(tap_keycode, hold_keycode, TAP_CODE_DELAY) : 0;
break;
case HOLD_DOUBLETP:
record->event.pressed ? double_tap(tap_keycode, WAIT_DELAY) : 0;
record->event.pressed ? double_tap(tap_keycode, TAP_CODE_DELAY) : 0;
break;
default:

View file

@ -33,9 +33,8 @@ WPM_ENABLE ?= yes
# qmk features we will force as these are critical for my workflow
EXTRAKEY_ENABLE ?= yes
CAPS_WORD_ENABLE ?= yes
MOUSEKEY_ENABLE ?= yes
MOUSEKEY_ENABLE = yes
COMBO_ENABLE ?= yes
KEY_OVERRIDE_ENABLE ?= yes
# ---------------------------------------------------------
@ -52,10 +51,6 @@ ifeq ($(strip $(COMBO_ENABLE)), yes)
INTROSPECTION_KEYMAP_C += features/combo.c
endif
ifeq ($(strip $(KEY_OVERRIDE_ENABLE)), yes)
SRC += features/keyoverride.c
endif
ifeq ($(strip $(CAPS_WORD_ENABLE)), yes)
SRC += features/capsword.c
endif

View file

@ -1,9 +1,13 @@
#include "t4corun.h"
// Keeps track of base layer so we can make one key to cycle through them
// instead of making a key for each one */
// Keeps track of base layer so only one key is needed
// to cycle through them vs making three individual ones
static uint8_t current_base_layer = FIRST_DEFAULT_LAYER;
// keep track of current mods to override existing keys
static uint8_t current_mods;
// Luna Pet Variables
static bool isJumping = false;
static bool showedJump = true;
@ -25,6 +29,8 @@ layer_state_t layer_state_set_user(layer_state_t state) {
// Customize behavior for existing keycodes or create new ones
bool process_record_user(uint16_t keycode, keyrecord_t *record) {
current_mods = get_mods() | get_oneshot_mods();
switch (keycode) {
// use the host state status to boot the Ploopy Nano
@ -90,6 +96,30 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
}
return false;
#if defined(HAPTIC_ENABLE)
case TR_HNXT:
if (record->event.pressed) {
if( current_mods & MOD_MASK_SHIFT ) {
haptic_mode_decrease();
} else {
haptic_mode_increase();
}
}
return false;
#endif
#if defined(AUDIO_ENABLE)
case TR_CKUP:
if (record->event.pressed) {
if( current_mods & MOD_MASK_SHIFT ) {
clicky_freq_down();
} else {
clicky_freq_up();
}
}
return false;
#endif
//https://docs.qmk.fm/#/mod_tap?id=changing-both-tasp-and-hold
//https://getreuer.info/posts/keyboards/triggers/index.html#tap-vs.-long-press

View file

@ -47,7 +47,10 @@ enum keycodes {
TH_SCLN,
TH_QUOT,
PN_BOOT,
PN_BOOT, // Press to enter Ploopy Nano Bootloader
TR_HNXT, // HF_NEXT or HF_PREV when shift is held
TR_CKUP, // CK_UP or CK_DOWN when shift is held
BASELYR,
RBSELYR
@ -71,11 +74,6 @@ enum keycodes {
#define SC_SNIP LGUI(LSFT(KC_S))
#define SC_FILE LGUI(KC_E)
// Zoom for encoders
#define ZOOMIN LCTL(KC_WH_U)
#define ZOOMOUT LCTL(KC_WH_D)
#define ZOOMRST LCTL(KC_0)
/*
- 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
@ -130,66 +128,6 @@ enum keycodes {
#endif //KEYBOARD_bastardkb_charybdis_3x5
#if defined(DYNAMIC_MACRO_ENABLE)
# define TR_DMR1 DM_REC1
# define TR_DMP1 DM_PLY1
# define TR_DMR2 DM_REC2
# define TR_DMP2 DM_PLY2
#else
# define TR_DMR1 ___x___
# define TR_DMP1 ___x___
# define TR_DMR2 ___x___
# define TR_DMP2 ___x___
#endif //DYNAMIC_MACRO_ENABLE
#if defined(RGB_MATRIX_ENABLE) || defined(RGBLIGHT_ENABLE)
# define TR_RHUI RGB_HUI
# define TR_RSAI RGB_SAI
# define TR_RVAI RGB_VAI
# define TR_RSPI RGB_SPI
# define TR_RTOG RGB_TOG
# define TR_RMOD RGB_MOD
# define TR_RRMD RGB_RMOD
#else
# define TR_RHUI ___x___
# define TR_RSAI ___x___
# define TR_RVAI ___x___
# define TR_RSPI ___x___
# define TR_RTOG ___x___
# define TR_RMOD ___x___
# define TR_RRMD ___x___
#endif //RGB_MATRIX_ENABLE || RGBLIGHT_ENABLE
#if defined(HAPTIC_ENABLE)
# define TR_HTOG HF_TOGG
# define TR_HFBK HF_FDBK
# define TR_HNXT HF_NEXT
# define TR_HCNU HF_CONU
# define TR_HRST HF_RST
#else
# define TR_HTOG ___x___
# define TR_HFBK ___x___
# define TR_HNXT ___x___
# define TR_HCNU ___x___
# define TR_HRST ___x___
#endif //HAPTIC_ENABLe
#if defined(AUDIO_ENABLE)
# define TR_ATOG AU_TOGG
# define TR_CTOG CK_TOGG
# define TR_CKUP CK_UP
# define TR_CRST CK_RST
#else
# define TR_ATOG ___x___
# define TR_CTOG ___x___
# define TR_CKUP ___x___
# define TR_CRST ___x___
#endif //AUDIO_ENABLE
#define _NONE_3__________________ ___x___, ___x___, ___x___
#define _NONE_5____________________________________ ___x___, ___x___, ___x___, ___x___, ___x___
#define _GACS_MODS________________________ TR_LGUI, TR_LALT, TR_LCTL, TR_LSFT
@ -225,35 +163,37 @@ enum keycodes {
#define LAYER_NAVIGATION \
KC_ESC, KC_HOME, KC_UP, KC_END, KC_PGUP, ___x___, ___x___, ___x___, KC_CAPS, CONFIG, \
___x___, KC_LEFT, KC_DOWN, KC_RGHT, KC_PGDN, ___x___, _SCAG_MODS________________________, \
_UCCPR_L___________________________________, ___x___, KC_APP, KC_VOLD, KC_VOLU, KC_MUTE, \
ZOOMRST, NUM, KC_ENT, _LAYER_TRANS_____________
KC_ESC, KC_HOME, KC_UP, KC_END, KC_PGUP, ___x___, KC_APP, ___x___, ___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, \
___x___, NUM, KC_ENT, _LAYER_TRANS_____________
#define LAYER_NUMBER \
KC_ESC, SC_SNIP, SC_FILE, MOU_FUN, TR_GRV, ___x___, KC_7, KC_8, KC_9, KC_COMM, \
_GACS_MODS________________________, TR_SCLN, KC_0, KC_4, KC_5, KC_6, KC_DOT, \
_UCCPR_L___________________________________, ___x___, KC_1, KC_2, KC_3, KC_MINS, \
KC_ESC, SC_SNIP, SC_FILE, MOU_FUN, TR_GRV, KC_ENT, KC_7, KC_8, KC_9, KC_COMM, \
_GACS_MODS________________________, TR_SCLN, KC_BSPC, KC_4, KC_5, KC_6, KC_DOT, \
_UCCPR_L___________________________________, KC_0, KC_1, KC_2, KC_3, KC_MINS, \
_LAYER_TRANS_____________, _BASE_R4_________________
#define LAYER_SYMBOL \
___x___, ___x___, KC_AT, KC_DLR, TR_GRV, TR_EQL, KC_HASH, KC_ASTR, ___x___, TR_DQUO, \
___x___, TR_LCBR, KC_RCBR, KC_EXLM, TR_SCLN, KC_AMPR, KC_QUES, TR_LBRC, KC_RBRC, TR_SQUO, \
___x___, TR_LABK, KC_RABK, TR_BSLS, TR_PIPE, TR_PERC, TR_SLSH, TR_LPRN, KC_RPRN, TR_MINS, \
KC_ESC, ___x___, KC_AT, KC_DLR, TR_GRV, TR_EQL, KC_HASH, KC_ASTR, ___x___, TR_DQUO, \
KC_AMPR, TR_LCBR, KC_RCBR, KC_EXLM, TR_SCLN, KC_BSPC, KC_QUES, TR_LBRC, KC_RBRC, TR_SQUO, \
TR_PERC, TR_LABK, KC_RABK, TR_BSLS, TR_PIPE, KC_DEL, TR_SLSH, TR_LPRN, KC_RPRN, TR_MINS, \
_LAYER_TRANS_____________, _LAYER_TRANS_____________
#define LAYER_MOUSE_FUNC \
MOU_FUN, KC_MPRV, KC_MNXT, KC_MPLY, ___x___, ___x___, KC_F7, KC_F8, KC_F9, KC_F10, \
_GACS_MODS________________________, TR_DRGS, ___x___, KC_F4, KC_F5, KC_F6, KC_F11, \
_GACS_MODS________________________, TR_DRGS, KC_CAPS, KC_F4, KC_F5, KC_F6, KC_F11, \
_______, ___x___, KC_BTN5, KC_BTN4, TR_SNIP, ___x___, KC_F1, KC_F2, KC_F3, KC_F12, \
KC_BTN1, KC_BTN2, KC_BTN3, TR_PDPI, TR_SDPI, ___x___
KC_BTN1, KC_BTN3, KC_BTN2, TR_PDPI, TR_SDPI, ___x___
#define LAYER_CONFIG \
TR_HRST, TR_HCNU, TR_HNXT, TR_HFBK, TR_HTOG, ___x___, PN_BOOT, EE_CLR, QK_BOOT, _______, \
TR_CRST, TR_CKUP, TR_CTOG, ___x___, TR_ATOG, ___x___, TR_LSFT, ___x___, ___x___, BASELYR, \
___x___, ___x___, ___x___, ___x___, TR_RTOG, TR_RMOD, TR_RHUI, TR_RSAI, TR_RVAI, TR_RSPI, \
BASELYR, TR_DMR1, TR_DMP1, TR_DMP2, TR_DMR2, TR_RTOG
___x___, HF_RST, TR_HNXT, HF_FDBK, HF_TOGG, BASELYR, PN_BOOT, EE_CLR, QK_BOOT, _______, \
RGB_MOD, CK_RST, TR_CKUP, CK_TOGG, AU_TOGG, ___x___, TR_LSFT, ___x___, ___x___, ___x___, \
RGB_HUI, RGB_SAI, RGB_VAI, RGB_SPI, RGB_TOG, ___x___, ___x___, ___x___, ___x___, ___x___, \
___x___, DM_REC1, DM_PLY1, ___x___, ___x___, ___x___