mirror of
https://github.com/qmk/qmk_userspace.git
synced 2026-07-29 12:44:19 -04:00
Now using left and right mods to prevent accidental release while switching hands
This commit is contained in:
parent
d3d045af44
commit
16443e9837
3 changed files with 77 additions and 77 deletions
|
|
@ -41,34 +41,34 @@ enum CustomKeycodes {
|
||||||
|
|
||||||
// home row mods
|
// home row mods
|
||||||
// base layer
|
// base layer
|
||||||
#define ALT_A ALT_T(KC_A)
|
#define GUI_A GUI_T(KC_A)
|
||||||
#define GUI_S GUI_T(KC_S)
|
#define ALT_S ALT_T(KC_S)
|
||||||
#define CTL_D CTL_T(KC_D)
|
#define CTL_D CTL_T(KC_D)
|
||||||
#define SFT_F SFT_T(KC_F)
|
#define SFT_F SFT_T(KC_F)
|
||||||
|
|
||||||
#define ALT_SCLN ALT_T(KC_SCLN)
|
#define GUI_SCLN RGUI_T(KC_SCLN)
|
||||||
#define GUI_L GUI_T(KC_L)
|
#define ALT_L RALT_T(KC_L)
|
||||||
#define CTL_K CTL_T(KC_K)
|
#define CTL_K RCTL_T(KC_K)
|
||||||
#define SFT_J RSFT_T(KC_J)
|
#define SFT_J RSFT_T(KC_J)
|
||||||
|
|
||||||
// nav layer
|
// nav layer
|
||||||
#define ALT_BSLS ALT_T(KC_BSLS)
|
#define GUI_BSLS GUI_T(KC_BSLS)
|
||||||
#define GUI_LBRC GUI_T(KC_LBRC)
|
#define ALT_LBRC ALT_T(KC_LBRC)
|
||||||
#define CTL_RBRC CTL_T(KC_RBRC)
|
#define CTL_RBRC CTL_T(KC_RBRC)
|
||||||
#define SFT_MINS SFT_T(KC_MINS)
|
#define SFT_MINS SFT_T(KC_MINS)
|
||||||
|
|
||||||
#define ALT_RGHT ALT_T(KC_RGHT)
|
#define GUI_RGHT RGUI_T(KC_RGHT)
|
||||||
#define GUI_UP GUI_T(KC_UP)
|
#define ALT_UP RALT_T(KC_UP)
|
||||||
#define CTL_DOWN CTL_T(KC_DOWN)
|
#define CTL_DOWN RCTL_T(KC_DOWN)
|
||||||
#define SFT_LEFT RSFT_T(KC_LEFT)
|
#define SFT_LEFT RSFT_T(KC_LEFT)
|
||||||
|
|
||||||
// num layer
|
// num layer
|
||||||
#define ALT_1 ALT_T(KC_1)
|
#define GUI_1 GUI_T(KC_1)
|
||||||
#define GUI_2 GUI_T(KC_2)
|
#define ALT_2 ALT_T(KC_2)
|
||||||
#define CTL_3 CTL_T(KC_3)
|
#define CTL_3 CTL_T(KC_3)
|
||||||
#define SFT_4 SFT_T(KC_4)
|
#define SFT_4 SFT_T(KC_4)
|
||||||
|
|
||||||
#define ALT_0 ALT_T(KC_0)
|
#define GUI_0 RGUI_T(KC_0)
|
||||||
#define GUI_9 GUI_T(KC_9)
|
#define ALT_9 RALT_T(KC_9)
|
||||||
#define CTL_8 CTL_T(KC_8)
|
#define CTL_8 RCTL_T(KC_8)
|
||||||
#define SFT_7 RSFT_T(KC_7)
|
#define SFT_7 RSFT_T(KC_7)
|
||||||
|
|
@ -24,9 +24,9 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||||
// base
|
// base
|
||||||
[_BASE] = LAYOUT_ortho_4x12(
|
[_BASE] = LAYOUT_ortho_4x12(
|
||||||
KC_ESC, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC,
|
KC_ESC, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC,
|
||||||
KC_TAB, ALT_A, GUI_S, CTL_D, SFT_F, KC_G, KC_H, SFT_J, CTL_K, GUI_L, ALT_SCLN, KC_QUOT,
|
KC_TAB, GUI_A, ALT_S, CTL_D, SFT_F, KC_G, KC_H, SFT_J, CTL_K, ALT_L, GUI_SCLN, KC_QUOT,
|
||||||
TD(TD_CW_CL), KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_DEL,
|
TD(TD_CW_CL), KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_DEL,
|
||||||
KC_NO, FUNC_PLAY, KC_LALT, TD(TD_CAD_LOCK_SLEEP), GUI_LAUNCH, NUM_SPC, NAV_ENT, KC_RALT, KC_LEFT, DOWN, UP, KC_RGHT
|
KC_NO, FUNC_PLAY, KC_LALT, TD(TD_CAD_LOCK_SLEEP), GUI_LAUNCH, NUM_SPC, NAV_ENT, KC_SCRL, KC_LEFT, DOWN, UP, KC_RGHT
|
||||||
),
|
),
|
||||||
// gamer
|
// gamer
|
||||||
[_GAME] = LAYOUT_ortho_4x12(
|
[_GAME] = LAYOUT_ortho_4x12(
|
||||||
|
|
@ -38,14 +38,14 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||||
// numbers
|
// numbers
|
||||||
[_NUM] = LAYOUT_ortho_4x12(
|
[_NUM] = LAYOUT_ortho_4x12(
|
||||||
KC_TRNS, KC_SLSH, KC_AT, MULT, KC_MINS, KC_PLUS, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_TRNS,
|
KC_TRNS, KC_SLSH, KC_AT, MULT, KC_MINS, KC_PLUS, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_TRNS,
|
||||||
KC_DOT, ALT_1, GUI_2, CTL_3, SFT_4, KC_5, KC_6, SFT_7, CTL_8, GUI_9, ALT_0, KC_TRNS,
|
KC_DOT, GUI_1, ALT_2, CTL_3, SFT_4, KC_5, KC_6, SFT_7, CTL_8, ALT_9, GUI_0, KC_TRNS,
|
||||||
KC_COMM, LOW_6, LOW_7, LOW_8, LOW_9, LOW_0, KC_SCLN, KC_COLN, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
KC_COMM, LOW_6, LOW_7, LOW_8, LOW_9, LOW_0, KC_SCLN, KC_COLN, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||||
KC_COLN, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_NO, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
|
KC_COLN, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_NO, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
|
||||||
),
|
),
|
||||||
// navigation and special characters
|
// navigation and special characters
|
||||||
[_NAV] = LAYOUT_ortho_4x12(
|
[_NAV] = LAYOUT_ortho_4x12(
|
||||||
KC_GRV, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_TRNS,
|
KC_GRV, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_TRNS,
|
||||||
KC_TRNS, ALT_BSLS, GUI_LBRC, CTL_RBRC, SFT_MINS, KC_EQL, KC_HOME, SFT_LEFT, CTL_DOWN, GUI_UP, ALT_RGHT, KC_END,
|
KC_TRNS, GUI_BSLS, ALT_LBRC, CTL_RBRC, SFT_MINS, KC_EQL, KC_HOME, SFT_LEFT, CTL_DOWN, ALT_UP, GUI_RGHT, KC_END,
|
||||||
KC_TILDE, KC_PIPE, KC_LCBR, KC_RCBR, KC_UNDS, KC_PLUS, KC_NO, KC_F2, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
KC_TILDE, KC_PIPE, KC_LCBR, KC_RCBR, KC_UNDS, KC_PLUS, KC_NO, KC_F2, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_NO, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
|
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_NO, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
|
||||||
),
|
),
|
||||||
|
|
@ -96,10 +96,10 @@ bool process_record_user(uint16_t keycode, keyrecord_t* record) {
|
||||||
break;
|
break;
|
||||||
|
|
||||||
// noshift homerow mods with control overrides
|
// noshift homerow mods with control overrides
|
||||||
case ALT_1:
|
case GUI_1:
|
||||||
return unshift_register_or_ctrl_fallthrough(keycode, KC_A, record);
|
return unshift_register_or_ctrl_fallthrough(keycode, KC_A, record);
|
||||||
break;
|
break;
|
||||||
case GUI_2:
|
case ALT_2:
|
||||||
return unshift_register_or_ctrl_fallthrough(keycode, KC_S, record);
|
return unshift_register_or_ctrl_fallthrough(keycode, KC_S, record);
|
||||||
break;
|
break;
|
||||||
case SFT_4:
|
case SFT_4:
|
||||||
|
|
@ -108,10 +108,10 @@ bool process_record_user(uint16_t keycode, keyrecord_t* record) {
|
||||||
case SFT_7:
|
case SFT_7:
|
||||||
return unshift_register_or_ctrl_fallthrough(keycode, KC_J, record);
|
return unshift_register_or_ctrl_fallthrough(keycode, KC_J, record);
|
||||||
break;
|
break;
|
||||||
case ALT_BSLS:
|
case GUI_BSLS:
|
||||||
return unshift_register_or_ctrl_fallthrough(keycode, KC_A, record);
|
return unshift_register_or_ctrl_fallthrough(keycode, KC_A, record);
|
||||||
break;
|
break;
|
||||||
case GUI_LBRC:
|
case ALT_LBRC:
|
||||||
return unshift_register_or_ctrl_fallthrough(keycode, KC_S, record);
|
return unshift_register_or_ctrl_fallthrough(keycode, KC_S, record);
|
||||||
break;
|
break;
|
||||||
case SFT_MINS:
|
case SFT_MINS:
|
||||||
|
|
@ -119,15 +119,15 @@ bool process_record_user(uint16_t keycode, keyrecord_t* record) {
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case CTL_3:
|
case CTL_3:
|
||||||
case ALT_0:
|
case GUI_0:
|
||||||
case CTL_8:
|
case CTL_8:
|
||||||
case GUI_9:
|
case ALT_9:
|
||||||
case CTL_RBRC: // no control override, just unshift
|
case CTL_RBRC: // no control override, just unshift
|
||||||
return unshift_register(keycode, record);
|
return unshift_register(keycode, record);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
// make arrow key homerow mods trigger the tap action when held and the hold time expires
|
// make arrow key homerow mods trigger the tap action when held and the hold time expires
|
||||||
case GUI_UP:
|
case ALT_UP:
|
||||||
case CTL_DOWN:
|
case CTL_DOWN:
|
||||||
if (!record->tap.count && !record->tap.interrupted) {
|
if (!record->tap.count && !record->tap.interrupted) {
|
||||||
if (record->event.pressed) {
|
if (record->event.pressed) {
|
||||||
|
|
@ -148,7 +148,7 @@ bool process_record_user(uint16_t keycode, keyrecord_t* record) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
case SFT_LEFT:
|
case SFT_LEFT:
|
||||||
case ALT_RGHT:
|
case GUI_RGHT:
|
||||||
// if this is a hold action and it occurred naturally
|
// if this is a hold action and it occurred naturally
|
||||||
if (!record->tap.count && !record->tap.interrupted) {
|
if (!record->tap.count && !record->tap.interrupted) {
|
||||||
if (record->event.pressed) {
|
if (record->event.pressed) {
|
||||||
|
|
@ -177,8 +177,8 @@ bool process_record_user(uint16_t keycode, keyrecord_t* record) {
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case ALT_A:
|
case GUI_A:
|
||||||
case GUI_S:
|
case ALT_S:
|
||||||
case CTL_D:
|
case CTL_D:
|
||||||
case SFT_F:
|
case SFT_F:
|
||||||
if (record->event.pressed && record->tap.count && get_mods() == MOD_BIT(KC_LSFT)) {
|
if (record->event.pressed && record->tap.count && get_mods() == MOD_BIT(KC_LSFT)) {
|
||||||
|
|
@ -202,8 +202,8 @@ bool process_record_user(uint16_t keycode, keyrecord_t* record) {
|
||||||
return false; // do nothing
|
return false; // do nothing
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case ALT_SCLN:
|
case GUI_SCLN:
|
||||||
case GUI_L:
|
case ALT_L:
|
||||||
case CTL_K:
|
case CTL_K:
|
||||||
case SFT_J:
|
case SFT_J:
|
||||||
if (IS_LAYER_ON(_BASE) && record->event.pressed && record->tap.count &&
|
if (IS_LAYER_ON(_BASE) && record->event.pressed && record->tap.count &&
|
||||||
|
|
|
||||||
|
|
@ -10,27 +10,27 @@ uint16_t get_quick_tap_term(uint16_t keycode, keyrecord_t* record) {
|
||||||
case NAV_ENT:
|
case NAV_ENT:
|
||||||
case FUNC_PLAY: // no repeat tapping for these keys
|
case FUNC_PLAY: // no repeat tapping for these keys
|
||||||
|
|
||||||
case ALT_A:
|
case GUI_A:
|
||||||
case GUI_S:
|
case ALT_S:
|
||||||
case CTL_D:
|
case CTL_D:
|
||||||
case SFT_F:
|
case SFT_F:
|
||||||
case ALT_SCLN:
|
case GUI_SCLN:
|
||||||
case GUI_L:
|
case ALT_L:
|
||||||
case CTL_K:
|
case CTL_K:
|
||||||
case SFT_J:
|
case SFT_J:
|
||||||
|
|
||||||
case ALT_BSLS:
|
case GUI_BSLS:
|
||||||
case GUI_LBRC:
|
case ALT_LBRC:
|
||||||
case CTL_RBRC:
|
case CTL_RBRC:
|
||||||
case SFT_MINS:
|
case SFT_MINS:
|
||||||
// intentionally omitting arrow keys
|
// intentionally omitting arrow keys
|
||||||
|
|
||||||
case ALT_1:
|
case GUI_1:
|
||||||
case GUI_2:
|
case ALT_2:
|
||||||
case CTL_3:
|
case CTL_3:
|
||||||
case SFT_4:
|
case SFT_4:
|
||||||
case ALT_0:
|
case GUI_0:
|
||||||
case GUI_9:
|
case ALT_9:
|
||||||
case CTL_8:
|
case CTL_8:
|
||||||
case SFT_7: // no repeat tapping for homerow mods
|
case SFT_7: // no repeat tapping for homerow mods
|
||||||
return 0;
|
return 0;
|
||||||
|
|
@ -45,30 +45,30 @@ bool get_permissive_hold(uint16_t keycode, keyrecord_t* record) {
|
||||||
return true;
|
return true;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case ALT_A:
|
case GUI_A:
|
||||||
case GUI_S:
|
case ALT_S:
|
||||||
case CTL_D:
|
case CTL_D:
|
||||||
case SFT_F:
|
case SFT_F:
|
||||||
case ALT_SCLN:
|
case GUI_SCLN:
|
||||||
case GUI_L:
|
case ALT_L:
|
||||||
case CTL_K:
|
case CTL_K:
|
||||||
case SFT_J:
|
case SFT_J:
|
||||||
|
|
||||||
case ALT_BSLS:
|
case GUI_BSLS:
|
||||||
case GUI_LBRC:
|
case ALT_LBRC:
|
||||||
case CTL_RBRC:
|
case CTL_RBRC:
|
||||||
case SFT_MINS:
|
case SFT_MINS:
|
||||||
case ALT_RGHT:
|
case GUI_RGHT:
|
||||||
case GUI_UP:
|
case ALT_UP:
|
||||||
case CTL_DOWN:
|
case CTL_DOWN:
|
||||||
case SFT_LEFT:
|
case SFT_LEFT:
|
||||||
|
|
||||||
case ALT_1:
|
case GUI_1:
|
||||||
case GUI_2:
|
case ALT_2:
|
||||||
case CTL_3:
|
case CTL_3:
|
||||||
case SFT_4:
|
case SFT_4:
|
||||||
case ALT_0:
|
case GUI_0:
|
||||||
case GUI_9:
|
case ALT_9:
|
||||||
case CTL_8:
|
case CTL_8:
|
||||||
case SFT_7: // permissive hold for mod-taps
|
case SFT_7: // permissive hold for mod-taps
|
||||||
return true;
|
return true;
|
||||||
|
|
@ -83,30 +83,30 @@ bool get_hold_on_other_key_press(uint16_t keycode, keyrecord_t* record) {
|
||||||
return false;
|
return false;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case ALT_A:
|
case GUI_A:
|
||||||
case GUI_S:
|
case ALT_S:
|
||||||
case CTL_D:
|
case CTL_D:
|
||||||
case SFT_F:
|
case SFT_F:
|
||||||
case ALT_SCLN:
|
case GUI_SCLN:
|
||||||
case GUI_L:
|
case ALT_L:
|
||||||
case CTL_K:
|
case CTL_K:
|
||||||
case SFT_J:
|
case SFT_J:
|
||||||
|
|
||||||
case ALT_BSLS:
|
case GUI_BSLS:
|
||||||
case GUI_LBRC:
|
case ALT_LBRC:
|
||||||
case CTL_RBRC:
|
case CTL_RBRC:
|
||||||
case SFT_MINS:
|
case SFT_MINS:
|
||||||
case ALT_RGHT:
|
case GUI_RGHT:
|
||||||
case GUI_UP:
|
case ALT_UP:
|
||||||
case CTL_DOWN:
|
case CTL_DOWN:
|
||||||
case SFT_LEFT:
|
case SFT_LEFT:
|
||||||
|
|
||||||
case ALT_1:
|
case GUI_1:
|
||||||
case GUI_2:
|
case ALT_2:
|
||||||
case CTL_3:
|
case CTL_3:
|
||||||
case SFT_4:
|
case SFT_4:
|
||||||
case ALT_0:
|
case GUI_0:
|
||||||
case GUI_9:
|
case ALT_9:
|
||||||
case CTL_8:
|
case CTL_8:
|
||||||
case SFT_7: // no hold on other key press for mod taps
|
case SFT_7: // no hold on other key press for mod taps
|
||||||
return false;
|
return false;
|
||||||
|
|
@ -117,19 +117,19 @@ bool get_hold_on_other_key_press(uint16_t keycode, keyrecord_t* record) {
|
||||||
|
|
||||||
uint16_t get_tapping_term(uint16_t keycode, keyrecord_t* record) {
|
uint16_t get_tapping_term(uint16_t keycode, keyrecord_t* record) {
|
||||||
switch (keycode) {
|
switch (keycode) {
|
||||||
case GUI_S:
|
case ALT_S:
|
||||||
case GUI_L:
|
case ALT_L:
|
||||||
case GUI_2:
|
case ALT_2:
|
||||||
case GUI_9:
|
case ALT_9:
|
||||||
case GUI_LBRC:
|
case ALT_LBRC:
|
||||||
case GUI_UP:
|
case ALT_UP:
|
||||||
|
|
||||||
case ALT_A:
|
case GUI_A:
|
||||||
case ALT_SCLN:
|
case GUI_SCLN:
|
||||||
case ALT_1:
|
case GUI_1:
|
||||||
case ALT_0:
|
case GUI_0:
|
||||||
case ALT_BSLS:
|
case GUI_BSLS:
|
||||||
case ALT_RGHT: // alt and gui have events for a hold and release
|
case GUI_RGHT: // alt and gui have events for a hold and release
|
||||||
|
|
||||||
case GUI_LAUNCH: // also non-homerow mod-taps
|
case GUI_LAUNCH: // also non-homerow mod-taps
|
||||||
return 400;
|
return 400;
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue