Code cleanup and Enhancements

- converted as many statements in t4corun.c to ternary operators
for consistency
- consolidated feature configuration into overloaded encoder
- consolidated feature toggle into overloaded keypress
- cleaned up keymap after key consolidation
This commit is contained in:
Victor 2024-07-16 23:48:43 -05:00
parent 4fd0793447
commit 55f7ad027a
Failed to generate hash of commit
3 changed files with 97 additions and 165 deletions

View file

@ -40,7 +40,7 @@ const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = {
[_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(KC_LEFT, KC_RGHT), ENCODER_CCW_CW(REV_RGB, FWD_RGB) },
[_NUMBER] = { ENCODER_CCW_CW(___x___, ___x___), ENCODER_CCW_CW(REV_TAB, FWD_TAB) },
[_NUMBER] = { ENCODER_CCW_CW(REV_CFG, FWD_CFG), ENCODER_CCW_CW(REV_TAB, FWD_TAB) },
[_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(ZOOMOUT, ZOOMIN) }
//[_CONFIG] = { ENCODER_CCW_CW(RGB_RMOD, RGB_MOD), ENCODER_CCW_CW(RBSELYR, BASELYR) }

View file

@ -32,6 +32,13 @@ layer_state_t layer_state_set_user(layer_state_t state) {
return update_tri_layer_state(state, _NAVIGATION, _NUMBER, _SYMBOL);
}
// helper function to adjust default layer
void set_default_layer(bool forward) {
current_base_layer = forward ?
(current_base_layer + 1) % NUM_DEFAULT_LAYERS :
(current_base_layer - 1) % NUM_DEFAULT_LAYERS;
set_single_persistent_default_layer(current_base_layer);
}
// Customize behavior for existing keycodes or create new ones
bool process_record_user(uint16_t keycode, keyrecord_t *record) {
@ -57,22 +64,14 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
// makes scroll lock a hold instead of toggle
// enables momentary drag scroll on ploopy nano
case KC_SCRL:
if (record->event.pressed) {
tap_code(KC_SCRL);
} else {
tap_code(KC_SCRL);
}
record->event.pressed ? tap_code(KC_SCRL) : tap_code(KC_SCRL);
return false;
// makes num lock a hold instead of toggle
// prevents accidental ploopy nano going into bootloader
case KC_NUM:
if (record->event.pressed) {
tap_code(KC_NUM);
} else {
tap_code(KC_NUM);
}
record->event.pressed ? tap_code(KC_NUM) : tap_code(KC_NUM);
return false;
#if defined(WPM_ENABLE)
@ -89,15 +88,7 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
case BASELYR:
if (record->event.pressed) {
current_base_layer = (current_base_layer + 1) % NUM_DEFAULT_LAYERS;
set_single_persistent_default_layer(current_base_layer);
}
return false;
case RBSELYR:
if (record->event.pressed) {
current_base_layer = (current_base_layer - 1) % NUM_DEFAULT_LAYERS;
set_single_persistent_default_layer(current_base_layer);
set_default_layer(true);
}
return false;
@ -121,33 +112,11 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
}
return false;
case ZOOMIN:
case ZOOMOUT:
if (record->event.pressed) {
if (!hold_forward_active) {
hold_forward_active = true;
register_code(KC_LCTL);
}
hold_mod_timer = timer_read();
if (keycode == ZOOMIN) {
register_code(KC_WH_U);
} else {
register_code(KC_WH_D);
}
} else {
if (keycode == ZOOMIN) {
unregister_code(KC_WH_U);
} else {
unregister_code(KC_WH_D);
}
}
return false;
#if defined(RGB_MATRIX_ENABLE)
case FWD_RGB:
case REV_RGB:
if (record->event.pressed) {
switch (current_mods) {
#if defined(RGB_MATRIX_ENABLE)
case MOD_BIT(KC_LSFT):
keycode == FWD_RGB ? rgb_matrix_increase_hue() : rgb_matrix_decrease_hue();
break;
@ -164,39 +133,80 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
keycode == FWD_RGB ? rgb_matrix_increase_speed() : rgb_matrix_decrease_speed();
break;
default:
case MOD_BIT(KC_LSFT) | MOD_BIT(KC_LCTL):
keycode == FWD_RGB ? rgb_matrix_step() : rgb_matrix_step_reverse();
break;
#endif //RGB_MATRIX_ENABLE
default:
keycode == FWD_RGB ? set_default_layer(true) : set_default_layer(false);
break;
}
}
return false;
#endif
case FWD_CFG:
case REV_CFG:
if (record->event.pressed) {
switch (current_mods) {
#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
case MOD_BIT(KC_LSFT):
keycode == FWD_CFG ? haptic_mode_increase() : haptic_mode_decrease();
break;
#endif //HAPTIC_ENABLE
#if defined(AUDIO_ENABLE)
case TR_CKUP:
if (record->event.pressed) {
if( current_mods & MOD_MASK_SHIFT ) {
clicky_freq_down();
} else {
clicky_freq_up();
case MOD_BIT(KC_LCTL):
keycode == FWD_CFG ? clicky_freq_up() : clicky_freq_down();
break;
#endif //AUDIO_ENABLE
default:
keycode == FWD_CFG ? set_default_layer(true) : set_default_layer(false);
break;
}
}
return false;
#endif
case ZOOMIN:
case ZOOMOUT:
if (record->event.pressed) {
if (!hold_forward_active) {
hold_forward_active = true;
register_code(KC_LCTL);
}
hold_mod_timer = timer_read();
keycode == ZOOMIN ? register_code(KC_WH_U) : register_code(KC_WH_D);
} else {
keycode == ZOOMIN ? unregister_code(KC_WH_U) : unregister_code(KC_WH_D);
}
return false;
case TOG_CFG:
if (record->event.pressed) {
switch (current_mods) {
#if defined(RGB_MATRIX_ENABLE)
case MOD_BIT(KC_LSFT):
rgb_matrix_toggle();
break;
#endif //RGB_MATRIX_ENABLE
#if defined(HAPTIC_ENABLE)
case MOD_BIT(KC_LCTL):
haptic_toggle();
break;
#endif //HAPTIC_ENABLE
#if defined(AUDIO_ENABLE)
case MOD_BIT(KC_LALT):
is_audio_on() ? audio_off(): audio_on();
break;
case MOD_BIT(KC_LGUI):
clicky_toggle();
break;
#endif //AUDIO_ENABLE
default:
set_default_layer(true);
break;
}
}
//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

@ -2,6 +2,8 @@
#include QMK_KEYBOARD_H
#include "features/taphold.h"
void set_default_layer(bool forward);
#if defined(WPM_ENABLE)
bool isLunaJumping(void);
bool isJumpShown(void);
@ -53,20 +55,21 @@ enum keycodes {
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
FWD_TAB, // enables encoder to alt-tab/alt+shift-tab
REV_TAB, // alt-tab/alt+shift-tab or ctrl-tab/ctrl+shift tab
FWD_TAB,
REV_TAB,
FWD_RGB,
FWD_RGB, // enables overloaded encoder to adjust RGB mode and settings
REV_RGB,
ZOOMIN,
FWD_CFG, // enables overloaded encoder to adjust other features
REV_CFG, // e.g. haptic freq, click freq
TOG_CFG, // enables overloaded key press to toggle features on or off
ZOOMIN, // enables encoder to mouse wheel zoom
ZOOMOUT,
BASELYR,
RBSELYR
BASELYR // enables key press to change base layer
};
#define ___x___ KC_NO
@ -184,11 +187,11 @@ enum keycodes {
#define LAYER_NAVIGATION \
KC_ESC, KC_HOME, KC_UP, KC_END, KC_PGUP, ___x___, KC_APP, ___x___, DM_REC1, DM_PLY1, \
KC_CAPS, KC_LEFT, KC_DOWN, KC_RGHT, KC_PGDN, KC_BSPC, _SCAG_MODS________________________, \
KC_ESC, KC_HOME, KC_UP, KC_END, KC_PGUP, KC_CAPS, KC_APP, DM_REC1, DM_PLY1, BASELYR, \
___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_____________, \
SCR_TOP, ___x___
SCR_TOP, BASELYR
#define LAYER_NUMBER \
@ -196,101 +199,20 @@ enum keycodes {
_GACS_MODS________________________, KC_TAB, ___x___, KC_4, KC_5, KC_6, KC_DOT, \
_UCCPR_L___________________________________, ___x___, KC_1, KC_2, KC_3, KC_MINS, \
_LAYER_TRANS_____________, KC_0, NAV, ___x___, \
___x___, SC_WIN
BASELYR, SC_WIN
#define LAYER_SYMBOL \
QK_BOOT, ___x___, KC_AT, KC_DLR, TR_GRV, TR_EQL, KC_HASH, KC_ASTR, ___x___, ___x___, \
PN_BOOT, TR_LCBR, KC_RCBR, TR_PIPE, TR_SCLN, KC_AMPR, KC_QUES, TR_LBRC, KC_RBRC, ___x___, \
BASELYR, TR_LABK, KC_RABK, TR_BSLS, KC_EXLM, TR_PERC, TR_SLSH, TR_LPRN, KC_RPRN, ___x___, \
___x___, ___x___, KC_AT, KC_DLR, TR_GRV, TR_EQL, KC_HASH, KC_ASTR, ___x___, ___x___, \
___x___, TR_LCBR, KC_RCBR, TR_PIPE, TR_SCLN, KC_AMPR, KC_QUES, TR_LBRC, KC_RBRC, ___x___, \
___x___, TR_LABK, KC_RABK, TR_BSLS, KC_EXLM, TR_PERC, TR_SLSH, TR_LPRN, KC_RPRN, ___x___, \
_LAYER_TRANS_____________, _LAYER_TRANS_____________, \
___x___, ___x___
#define LAYER_MOUSE_FUNC \
MOU_FUN, RGB_HUI, RGB_SAI, RGB_VAI, RGB_SPI, HF_TOGG, KC_F7, KC_F8, KC_F9, KC_F10, \
_GACS_MODS________________________, TR_DRGS, AU_TOGG, KC_F4, KC_F5, KC_F6, KC_F11, \
_______, RGB_MOD, KC_BTN5, KC_BTN4, TR_SNIP, RGB_TOG, KC_F1, KC_F2, KC_F3, KC_F12, \
KC_BTN1, KC_BTN3, KC_BTN2, TR_PDPI, TR_SDPI, ___x___, \
MOU_FUN, QK_BOOT, PN_BOOT, TR_PDPI, TR_SDPI, TOG_CFG, KC_F7, KC_F8, KC_F9, KC_F10, \
_GACS_MODS________________________, TR_DRGS, FWD_CFG, KC_F4, KC_F5, KC_F6, KC_F11, \
_______, ___x___, KC_BTN5, KC_BTN4, TR_SNIP, REV_CFG, KC_F1, KC_F2, KC_F3, KC_F12, \
KC_BTN1, KC_BTN3, KC_BTN2, REV_RGB, FWD_RGB, ___x___, \
SCR_TOP, ZOOMRST
/*
#define LAYER_CONFIG \
___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___, \
___x___, ___x___
*/
/*
#define LAYER_QWERTY \
KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, \
KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, TR_QUOT, \
MF_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, TR_COMM, TR_DOT, TR_MINS, \
_BASE_L4_________________, _BASE_R4_________________, \
SCR_TOP, KC_MUTE
#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_A, KC_R, KC_S, KC_T, KC_G, KC_M, KC_N, KC_E, KC_I, KC_O, \
MF_Z, KC_X, KC_C, KC_D, KC_V, KC_K, KC_H, TR_COMM, TR_DOT, TR_MINS, \
_BASE_L4_________________, _BASE_R4_________________, \
SCR_TOP, KC_MUTE
#define LAYER_GAME \
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_7, KC_8, KC_9, KC_ESC, \
KC_LCTL, KC_A, KC_S, KC_D, KC_F, KC_G, KC_4, KC_5, KC_6, KC_GRV, \
KC_Z, KC_X, KC_C, KC_V, KC_B, KC_LALT, KC_1, KC_2, KC_3, CM_TOGG, \
KC_ENT, KC_SPC, KC_LSFT, _BASE_R4_________________, \
SCR_TOP, KC_MUTE
#define LAYER_NAVIGATION \
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_____________, \
SCR_TOP, ___x___
#define LAYER_NUMBER \
KC_ESC, SC_SNIP, SC_FILE, MOU_FUN, KC_ENT, ___x___, KC_7, KC_8, KC_9, KC_COMM, \
_GACS_MODS________________________, KC_TAB, KC_BSPC, KC_4, KC_5, KC_6, KC_DOT, \
_UCCPR_L___________________________________, KC_DEL, KC_1, KC_2, KC_3, KC_MINS, \
_LAYER_TRANS_____________, KC_0, NAV, ___x___, \
___x___, SC_WIN
#define LAYER_SYMBOL \
KC_ESC, ___x___, KC_AT, KC_DLR, TR_GRV, TR_EQL, KC_HASH, KC_ASTR, ___x___, TR_DQUO, \
KC_AMPR, TR_LCBR, KC_RCBR, TR_PIPE, TR_SCLN, KC_BSPC, KC_QUES, TR_LBRC, KC_RBRC, TR_SQUO, \
TR_PERC, TR_LABK, KC_RABK, TR_BSLS, KC_EXLM, KC_DEL, TR_SLSH, TR_LPRN, KC_RPRN, TR_MINS, \
_LAYER_TRANS_____________, _LAYER_TRANS_____________, \
___x___, ___x___
#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, 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_BTN3, KC_BTN2, TR_PDPI, TR_SDPI, ___x___, \
SCR_TOP, ZOOMRST
#define LAYER_CONFIG \
___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___, \
___x___, ___x___
*/