Added double tap to layer 4 on left shift key.

This commit is contained in:
jsears 2023-12-22 19:10:19 -05:00
parent 40aef7e28a
commit 1276c4db89
4 changed files with 42 additions and 14 deletions

View file

@ -40,7 +40,7 @@
#define HOLD_ON_OTHER_KEY_PRESS
// markstos: prevent keydown and keyup from firing on different layers
#define PREVENT_STUCK_MODIFERS
#define PREVENT_STUCK_MODIFER
// When enabled, typing a mod-tap plus second within term will register as the mod-combo
// Ref: https://beta.docs.qmk.fm/using-qmk/software-features/tap_hold#permissive-hold

View file

@ -7,7 +7,8 @@ enum custom_keycodes {
DEFAULT = SAFE_RANGE,
LOWER,
RAISE,
FUNC
FUNC,
SYSTEM
};
enum combos {
@ -41,6 +42,7 @@ combo_t key_combos[COMBO_COUNT] = {
#define LOW_TAB LT(_LOWER, KC_TAB)
#define RSE_BSP LT(_RAISE, KC_BSPC)
#define OSM_SFT OSM(MOD_LSFT)
#define SYS_SFT LT(OSL(_SYSTEM), OSM_SFT)
// For _RAISE layer
@ -53,11 +55,11 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[_QWERTY] = LAYOUT_split_3x6_3( \
//,-----------------------------------------------------. ,-----------------------------------------------------.
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y ,KC_U ,KC_I ,KC_O ,KC_P ,KC_DEL, \
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y ,KC_U ,KC_I ,KC_O ,KC_P ,KC_DEL, \
//|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------|
OSM(MOD_LALT), KC_A, KC_S, KC_D, KC_F, KC_G, KC_H ,KC_J ,KC_K ,KC_L ,KC_QUOT ,OSM_AGR,\
//|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------|
OSM(MOD_LSFT), KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N ,KC_M ,KC_COMM ,KC_DOT ,KC_SLSH ,OSL_FUN,\
//|---- ----+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------|
SYS_SFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N ,KC_M ,KC_COMM ,KC_DOT ,KC_SLSH ,OSL_FUN,\
//|--------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------|
OSM_LCTL, GUI_ENT, LOW_TAB, RSE_BSP ,KC_SPC ,OSM_SFT \
//`--------------------------' `--------------------------'
@ -81,7 +83,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
//|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------|
_______, KC_HOME, KC_END , KC_MINS, KC_EQL , KC_PGDN, KC_LEFT, KC_DOWN, KC_UP , KC_RGHT, KC_APP ,_______,\
//|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------|
_______, KC_LT , KC_GT , CTL_COPY,CTL_PSTE, KC_SCLN, KC_MPLY, KC_MPRV, KC_MNXT, KC_VOLD, KC_VOLU,_______,\
_______, KC_LT , KC_GT , CTL_COPY,CTL_PSTE, KC_SCLN, KC_MPLY, KC_MPRV, KC_MNXT, KC_VOLD, KC_VOLU,_______,\
//|--------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------|
CTL_ESC, KC_TRNS, XXXXXXX, RAISE , KC_TRNS, KC_TRNS\
//`--------------------------' `--------------------------'
@ -118,6 +120,8 @@ uint16_t get_tapping_term(uint16_t keycode, keyrecord_t *record) {
return TAPPING_TERM_THUMB;
case LT(_LOWER, KC_TAB):
return TAPPING_TERM_THUMB;
case LT(_SYSTEM, OSM(MOD_LSFT)):
return TAPPING_TERM_THUMB;
default:
return TAPPING_TERM;
}

View file

@ -1,6 +1,8 @@
SERIAL_DRIVER = vendor
AUDIO_DRIVER = pwm_hardware
POINTING_DEVICE_DRIVER = analog_joystick
OLED_ENABLE = yes
# markstos: enable media keys
EXTRAKEY_ENABLE = yes

View file

@ -11,26 +11,48 @@ oled_rotation_t oled_init_kb(oled_rotation_t rotation) {
}
bool oled_task_kb(void) {
if (!oled_task_user()) {
return false;
}
// if (!oled_task_user()) {
// return false;
// }
if (is_keyboard_master()) {
// switch (get_highest_layer(layer_state)) {
// case 0:
// oled_write_raw(layer_zero, sizeof(layer_zero));
// break;
// case 1:
// oled_write_raw(layer_one, sizeof(layer_one));
// break;
// case 2:
// oled_write_raw(layer_two, sizeof(layer_two));
// break;
// case 3:
// oled_write_raw(layer_three, sizeof(layer_three));
// break;
// }
switch (get_highest_layer(layer_state)) {
case 0:
oled_write_raw(layer_zero, sizeof(layer_zero));
oled_write_P(PSTR("Default\n"), false);
break;
case 1:
oled_write_raw(layer_one, sizeof(layer_one));
oled_write_P(PSTR("NUMS & SYMS\n"), false);
break;
case 2:
oled_write_raw(layer_two, sizeof(layer_two));
oled_write_P(PSTR("NAV\n"), false);
break;
case 3:
oled_write_raw(layer_three, sizeof(layer_three));
oled_write_P(PSTR("FKEYS\n"), false);
break;
case 4:
oled_write_P(PSTR("SYS\n"), false);
break;
default:
// Or use the write_ln shortcut over adding '\n' to the end of your string
oled_write_ln_P(PSTR("Undefined"), false);
}
} else {
oled_write_raw(logo, sizeof(logo));
oled_write_raw(logo, sizeof(logo));
}
return false;
}