Bunch of stuff

- Fixed OLED layer list order
- Altered and combined symbols in tap hold behaviors
- removed the mousekeys optional keycode thing since mousekeys are required
- cleaned up unused tapholds
This commit is contained in:
Victor 2024-05-05 23:10:55 -05:00
parent ec97151d14
commit 90ef9a3b22
Failed to generate hash of commit
10 changed files with 82 additions and 105 deletions

View file

@ -34,9 +34,9 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
/* These are horizontal encoders. Found I have to make it opposite the rotary encoders for it to feel intuitive*/
const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = {
[_DEFAULT_LAYER_1] = { ENCODER_CCW_CW(TR_MWHD, TR_MWHU), ENCODER_CCW_CW(KC_VOLU, KC_VOLD) },
[_DEFAULT_LAYER_2] = { ENCODER_CCW_CW(TR_MWHD, TR_MWHU), ENCODER_CCW_CW(KC_VOLU, KC_VOLD) },
[_DEFAULT_LAYER_3] = { ENCODER_CCW_CW(TR_MWHD, TR_MWHU), ENCODER_CCW_CW(KC_VOLU, KC_VOLD) },
[_DEFAULT_LAYER_1] = { ENCODER_CCW_CW(KC_WH_D, KC_WH_U), ENCODER_CCW_CW(KC_VOLU, KC_VOLD) },
[_DEFAULT_LAYER_2] = { ENCODER_CCW_CW(KC_WH_D, KC_WH_U), ENCODER_CCW_CW(KC_VOLU, KC_VOLD) },
[_DEFAULT_LAYER_3] = { ENCODER_CCW_CW(KC_WH_D, KC_WH_U), ENCODER_CCW_CW(KC_VOLU, KC_VOLD) },
[_NAVIGATION] = { ENCODER_CCW_CW(ZOOMIN, ZOOMOUT), ENCODER_CCW_CW(___x___, ___x___) },
[_SYMBOL] = { ENCODER_CCW_CW(___x___, ___x___), ENCODER_CCW_CW(KC_RGHT, KC_LEFT) },
[_NUMBER] = { ENCODER_CCW_CW(___x___, ___x___), ENCODER_CCW_CW(___x___, ___x___) },

View file

@ -34,9 +34,9 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
/* The encoder presses are handled in the keymap */
const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = {
[_DEFAULT_LAYER_1] = { ENCODER_CCW_CW(TR_MWHU, TR_MWHD), ENCODER_CCW_CW(KC_VOLD, KC_VOLU) },
[_DEFAULT_LAYER_2] = { ENCODER_CCW_CW(TR_MWHU, TR_MWHD), ENCODER_CCW_CW(KC_VOLD, KC_VOLU) },
[_DEFAULT_LAYER_3] = { ENCODER_CCW_CW(TR_MWHU, TR_MWHD), ENCODER_CCW_CW(KC_VOLD, KC_VOLU) },
[_DEFAULT_LAYER_1] = { ENCODER_CCW_CW(KC_WH_U, KC_WH_D), ENCODER_CCW_CW(KC_VOLD, KC_VOLU) },
[_DEFAULT_LAYER_2] = { ENCODER_CCW_CW(KC_WH_U, KC_WH_D), ENCODER_CCW_CW(KC_VOLD, KC_VOLU) },
[_DEFAULT_LAYER_3] = { 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___) },
[_SYMBOL] = { ENCODER_CCW_CW(___x___, ___x___), ENCODER_CCW_CW(KC_LEFT, KC_RGHT) },
[_NUMBER] = { ENCODER_CCW_CW(___x___, ___x___), ENCODER_CCW_CW(___x___, ___x___) },

View file

@ -9,9 +9,12 @@ bool get_combo_must_tap(uint16_t index, combo_t *combo) {
case MOUSE_BUTTON4:
case MOUSE_BUTTON5:
case MOUSE_DRGTOG:
return true;
#endif //MOUSEKEY_ENABLEdf
case KEY_ENT:
case KEY_TAB:
return true;
default:
return false;
}
@ -26,6 +29,19 @@ bool combo_should_trigger(uint16_t combo_index, combo_t *combo, uint16_t keycode
switch (combo_index) {
case KEY_ENT:
if ( get_highest_layer(layer_state) == _SYMBOL ) {
return false;
}
break;
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:

View file

@ -1,6 +1,24 @@
#pragma once
#include "t4corun.h"
#if defined(MOUSEKEY_ENABLE)
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_btn3_combo[] = { KC_G, KC_B, COMBO_END };
const uint16_t PROGMEM mou_btn4_combo[] = { KC_F, KC_R, COMBO_END };
const uint16_t PROGMEM mou_btn5_combo[] = { KC_T, KC_G, COMBO_END };
const uint16_t PROGMEM mou_drg_combo[] = { KC_X, KC_C, COMBO_END };
#endif //MOUSEKEY_ENABLE
const uint16_t PROGMEM key_ent_combo[] = { KC_C, KC_V, COMBO_END };
const uint16_t PROGMEM key_tab_combo[] = { KC_U, KC_I, COMBO_END };
const uint16_t PROGMEM key_bspc_combo[] = { KC_M, TR_COMM, COMBO_END };
const uint16_t PROGMEM key_del_combo[] = { TR_COMM, TR_DOT, COMBO_END };
enum combos {
#if defined(MOUSEKEY_ENABLE)
@ -12,34 +30,33 @@ enum combos {
MOUSE_DRGTOG,
#endif //MOUSEKEY_ENABLE
KEY_ENT,
KEY_TAB,
KEY_BSPC,
KEY_DEL,
COMBO_LENGTH
};
//their documentation is so confusing because you don't use COMBO_LEN defining the actions
uint16_t COMBO_LEN = COMBO_LENGTH;
#if defined(MOUSEKEY_ENABLE)
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_btn3_combo[] = { KC_G, KC_B, COMBO_END };
const uint16_t PROGMEM mou_btn4_combo[] = { KC_F, KC_R, COMBO_END };
const uint16_t PROGMEM mou_btn5_combo[] = { KC_T, KC_G, COMBO_END };
const uint16_t PROGMEM mou_drg_combo[] = { KC_X, KC_C, COMBO_END };
#endif //MOUSEKEY_ENABLE
combo_t key_combos[COMBO_LENGTH] = {
#if defined(MOUSEKEY_ENABLE)
[MOUSE_BUTTON1] = COMBO(mou_btn1_combo, TR_BTN1),
[MOUSE_BUTTON2] = COMBO(mou_btn2_combo, TR_BTN2),
[MOUSE_BUTTON3] = COMBO(mou_btn3_combo, TR_BTN3),
[MOUSE_BUTTON4] = COMBO(mou_btn4_combo, TR_BTN4),
[MOUSE_BUTTON5] = COMBO(mou_btn5_combo, TR_BTN5),
[MOUSE_BUTTON1] = COMBO(mou_btn1_combo, KC_BTN1),
[MOUSE_BUTTON2] = COMBO(mou_btn2_combo, KC_BTN2),
[MOUSE_BUTTON3] = COMBO(mou_btn3_combo, KC_BTN3),
[MOUSE_BUTTON4] = COMBO(mou_btn4_combo, KC_BTN4),
[MOUSE_BUTTON5] = COMBO(mou_btn5_combo, KC_BTN5),
[MOUSE_DRGTOG] = COMBO(mou_drg_combo, TR_DRGS),
#endif //MOUSEKEY_ENABLE
};
[KEY_ENT] = COMBO(key_ent_combo, KC_ENT),
[KEY_TAB] = COMBO(key_tab_combo, KC_TAB),
[KEY_BSPC] = COMBO(key_bspc_combo, KC_BSPC),
[KEY_DEL] = COMBO(key_del_combo, KC_DEL)
};

View file

@ -35,8 +35,8 @@ void render_layer_state(void) {
oled_write_P(PSTR(OLED_RENDER_LAYER_NAME), false);
oled_write_P(PSTR(OLED_RENDER_LAYER_BASE), get_highest_layer(layer_state) == FIRST_DEFAULT_LAYER);
oled_write_P(PSTR(OLED_RENDER_LAYER_NAVIGATION), get_highest_layer(layer_state) == _NAVIGATION);
oled_write_P(PSTR(OLED_RENDER_LAYER_NUMBER), get_highest_layer(layer_state) == _NUMBER);
oled_write_P(PSTR(OLED_RENDER_LAYER_SYMBOL), get_highest_layer(layer_state) == _SYMBOL);
oled_write_P(PSTR(OLED_RENDER_LAYER_NUMBER), get_highest_layer(layer_state) == _NUMBER);
oled_write_P(PSTR(OLED_RENDER_LAYER_CONFIG), get_highest_layer(layer_state) == _CONFIG);
}

View file

@ -12,9 +12,9 @@
#define OLED_RENDER_LAYER_NAME "Layer"
#define OLED_RENDER_LAYER_BASE " Def "
#define OLED_RENDER_LAYER_NUMBER " Num "
#define OLED_RENDER_LAYER_NAVIGATION " Nav "
#define OLED_RENDER_LAYER_SYMBOL " Sym "
#define OLED_RENDER_LAYER_NUMBER " Num "
#define OLED_RENDER_LAYER_CONFIG " Cfg "
void render_crkbd_logo(void);

View file

@ -53,27 +53,15 @@ bool process_tap_hold_key(keyrecord_t* record, uint16_t keycode) {
case TR_SQUO:
single_tap(TAPHOLD_SQUO, isHold);
break;
case TR_DQUO:
single_tap(TAPHOLD_DQUO, isHold);
break;
case TR_EQL:
single_tap(TAPHOLD_EQL, isHold);
break;
case TR_PLUS:
single_tap(TAPHOLD_PLUS, isHold);
break;
//case TR_PIPE:
// single_tap(TAPHOLD_PIPE, isHold);
// break;
case TR_BSLS:
single_tap(TAPHOLD_BSLS, isHold);
break;
case TR_SLSH:
single_tap(TAPHOLD_SLSH, isHold);
break;
case TR_AMPR:
single_tap(TAPHOLD_AMPR, isHold);
break;
case TR_COMM:
single_tap(TAPHOLD_COMM, isHold);
break;
@ -86,6 +74,9 @@ bool process_tap_hold_key(keyrecord_t* record, uint16_t keycode) {
case TR_EXLM:
single_tap(TAPHOLD_EXLM, isHold);
break;
case TR_AT:
single_tap(TAPHOLD_AT, isHold);
break;
case TR_MINS:
single_tap(TAPHOLD_MINS, isHold);
break;
@ -119,26 +110,18 @@ bool process_tap_hold_key(keyrecord_t* record, uint16_t keycode) {
case TR_LBRC:
insert_brackets(TAPHOLD_LBRC, WAIT_DELAY);
break;
case TR_SQUO:
insert_brackets(TAPHOLD_SQUO, WAIT_DELAY);
break;
case TR_DQUO:
insert_brackets(TAPHOLD_DQUO, WAIT_DELAY);
break;
case TR_LPRN:
insert_brackets(TAPHOLD_LPRN, WAIT_DELAY);
break;
case TR_SQUO:
insert_brackets(TAPHOLD_SQUO, WAIT_DELAY);
break;
//double tap
case TR_EQL:
double_tap(TAPHOLD_EQL, WAIT_DELAY);
break;
case TR_PLUS:
double_tap(TAPHOLD_PLUS, WAIT_DELAY);
break;
//case TR_PIPE:
// double_tap(TAPHOLD_PIPE, WAIT_DELAY);
// break;
case TR_BSLS:
double_tap(TAPHOLD_BSLS, WAIT_DELAY);
break;
@ -160,7 +143,10 @@ bool process_tap_hold_key(keyrecord_t* record, uint16_t keycode) {
single_tap(TAPHOLD_PERC, isHold);
break;
case TR_EXLM:
double_tap(TAPHOLD_NEQL, WAIT_DELAY);
single_tap(TAPHOLD_EXLM, isHold);
break;
case TR_AT:
single_tap(TAPHOLD_AT, isHold);
break;
//simulates auto-shift

View file

@ -17,24 +17,20 @@ bool process_tap_hold_key(keyrecord_t* record, uint16_t keycode);
#define TAPHOLD_LCBR KC_LCBR, KC_RCBR
#define TAPHOLD_LABK KC_LABK, KC_RABK
#define TAPHOLD_LBRC KC_LBRC, KC_RBRC
#define TAPHOLD_SQUO KC_QUOT, KC_QUOT
#define TAPHOLD_DQUO KC_DQUO, KC_DQUO
#define TAPHOLD_LPRN KC_LPRN, KC_RPRN
#define TAPHOLD_SQUO KC_QUOT, KC_QUOT
//double tap
#define TAPHOLD_EQL KC_EQL, KC_EQL
#define TAPHOLD_PLUS KC_PLUS, KC_PLUS
//#define TAPHOLD_PIPE KC_PIPE, KC_PIPE
#define TAPHOLD_BSLS KC_BSLS, KC_BSLS
#define TAPHOLD_SLSH KC_SLSH, KC_SLSH
#define TAPHOLD_AMPR KC_AMPR, KC_AMPR
//Custom: things like overriding default shifted key
#define TAPHOLD_COMM KC_COMM, KC_LPRN
#define TAPHOLD_DOT KC_DOT, KC_RPRN
#define TAPHOLD_PERC KC_PERC, KC_CIRC
#define TAPHOLD_EXLM KC_EXLM, KC_EXLM
#define TAPHOLD_NEQL KC_EXLM, KC_EQL
#define TAPHOLD_EXLM KC_EXLM, KC_DLR
#define TAPHOLD_AT KC_AT, KC_AMPR
//auto shift
#define TAPHOLD_MINS KC_MINS, KC_UNDS

View file

@ -49,10 +49,7 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
case TR_LBRC:
case TR_LPRN:
case TR_SQUO:
case TR_DQUO:
case TR_EQL:
case TR_PLUS:
//case TR_PIPE:
case TR_BSLS:
case TR_SLSH:
case TR_AMPR:

View file

@ -21,19 +21,16 @@ enum keycodes {
TH_LBRC,
TH_LPRN,
TH_SQUO,
TH_DQUO,
TH_EQL,
TH_PLUS,
//TH_PIPE,
TH_BSLS,
TH_SLSH,
TH_AMPR,
TH_COMM,
TH_DOT,
TH_PERC,
TH_EXLM,
TH_AT,
TH_MINS,
TH_GRV,
@ -87,19 +84,16 @@ enum keycodes {
#define TR_LBRC LT(_DEFAULT_LAYER_1, TH_LBRC)
#define TR_LPRN LT(_DEFAULT_LAYER_1, TH_LPRN)
#define TR_SQUO LT(_DEFAULT_LAYER_1, TH_SQUO)
#define TR_DQUO LT(_DEFAULT_LAYER_1, TH_DQUO)
#define TR_EQL LT(_DEFAULT_LAYER_1, TH_EQL) // double tap
#define TR_PLUS LT(_DEFAULT_LAYER_1, TH_PLUS)
//#define TR_PIPE LT(_DEFAULT_LAYER_1, TH_PIPE)
#define TR_BSLS LT(_DEFAULT_LAYER_1, TH_BSLS)
#define TR_SLSH LT(_DEFAULT_LAYER_1, TH_SLSH)
#define TR_AMPR LT(_DEFAULT_LAYER_1, TH_AMPR)
#define TR_COMM LT(_DEFAULT_LAYER_1, TH_COMM) // custom behavior
#define TR_DOT LT(_DEFAULT_LAYER_1, TH_DOT)
#define TR_PERC LT(_DEFAULT_LAYER_1, TH_PERC)
#define TR_EXLM LT(_DEFAULT_LAYER_1, TH_EXLM)
#define TR_AT LT(_DEFAULT_LAYER_1, TH_AT)
// basically auto shift
#define TR_MINS LT(_DEFAULT_LAYER_1, TH_MINS)
@ -108,47 +102,18 @@ enum keycodes {
#define TR_QUOT LT(_DEFAULT_LAYER_1, TH_QUOT)
#if defined(MOUSEKEY_ENABLE)
# define TR_MWHU KC_WH_U
# define TR_MWHD KC_WH_D
# define TR_BTN1 KC_BTN1
# define TR_BTN2 KC_BTN2
# define TR_BTN3 KC_BTN3
# define TR_BTN4 KC_BTN4
# define TR_BTN5 KC_BTN5
# if defined(KEYBOARD_bastardkb_charybdis_3x5)
//these codes are defined in charybdis.h
#if defined(KEYBOARD_bastardkb_charybdis_3x5)
//these mouse codes are defined in charybdis.h
# define TR_SNIP SNIPING
# define TR_DRGS DRG_TOG
# define TR_SDPI S_D_MOD //sniping dpi
# define TR_PDPI DPI_MOD //pointer dpi
# else
#else
# define TR_SNIP ___x___
# define TR_DRGS PN_DRGS //use host status for ploopy nano drag scroll
# define TR_SDPI ___x___
# define TR_PDPI PN_PDPI //use host status for ploopy nano dpi switch
# endif //KEYBOARD_bastardkb_charybdis_3x5
#else
# define TR_MWHU ___x___
# define TR_MWHD ___x___
# define TR_BTN1 ___x___
# define TR_BTN2 ___x___
# define TR_BTN3 ___x___
# define TR_BTN4 ___x___
# define TR_BTN5 ___x___
# define TR_SNIP ___x___
# define TR_DRGS ___x___
# define TR_SDPI ___x___
# define TR_PDPI ___x___
#endif //MOUSEKEY_ENABLE
#endif //KEYBOARD_bastardkb_charybdis_3x5
#if defined(DYNAMIC_MACRO_ENABLE)
@ -159,6 +124,7 @@ enum keycodes {
# define TR_DMP1 ___x___
#endif //DYNAMIC_MACRO_ENABLE
#if defined(RGB_MATRIX_ENABLE) || defined(RGBLIGHT_ENABLE)
# define TR_RHUI RGB_HUI
# define TR_RSAI RGB_SAI
@ -178,7 +144,6 @@ enum keycodes {
#endif //RGB_MATRIX_ENABLE || RGBLIGHT_ENABLE
#define _DEFAULT_LAYER_1 FIRST_DEFAULT_LAYER
#define _DEFAULT_LAYER_2 (FIRST_DEFAULT_LAYER + 1)
#define _DEFAULT_LAYER_3 (FIRST_DEFAULT_LAYER + 2)
@ -226,8 +191,8 @@ enum keycodes {
#define LAYER_SYMBOL \
KC_ESC, TR_PERC, KC_ASTR, KC_DLR, TR_GRV, TR_EQL, KC_HASH, TR_LABK, KC_RABK, TR_AMPR, \
_GACS_MODS________________________, TR_SCLN, KC_AT, KC_QUES, TR_LBRC, KC_RBRC, TR_SQUO, \
KC_ESC, KC_BTN3, KC_BTN2, KC_BTN1, TR_GRV, TR_EQL, KC_HASH, TR_LABK, KC_RABK, TR_PERC, \
_GACS_MODS________________________, TR_SCLN, TR_AT, KC_ASTR, TR_LBRC, KC_RBRC, TR_SQUO, \
_UCCPR_L___________________________________, TR_BSLS, TR_SLSH, TR_LPRN, KC_RPRN, TR_MINS, \
_LAYER_TRANS_____________, TR_EXLM, _______, ___x___