mirror of
https://github.com/qmk/qmk_userspace.git
synced 2026-07-29 20:54:18 -04:00
Rearranged the mod taps
This commit is contained in:
parent
675c9787eb
commit
01c4d37339
3 changed files with 141 additions and 144 deletions
|
|
@ -38,36 +38,34 @@ enum CustomKeycodes {
|
|||
|
||||
// home row mods
|
||||
// base layer
|
||||
#define GUI_A GUI_T(KC_A)
|
||||
#define ALT_S GUI_T(KC_S)
|
||||
#define SFT_D SFT_T(KC_D)
|
||||
#define CTL_F CTL_T(KC_F)
|
||||
#define CTL_G CTL_T(KC_G)
|
||||
#define ALT_A ALT_T(KC_A)
|
||||
#define GUI_S GUI_T(KC_S)
|
||||
#define CTL_D CTL_T(KC_D)
|
||||
#define SFT_F SFT_T(KC_F)
|
||||
|
||||
#define GUI_SCLN GUI_T(KC_SCLN)
|
||||
#define ALT_L ALT_T(KC_L)
|
||||
#define SFT_K RSFT_T(KC_K)
|
||||
#define CTL_J CTL_T(KC_J)
|
||||
#define CTL_H CTL_T(KC_H)
|
||||
#define ALT_SCLN ALT_T(KC_SCLN)
|
||||
#define GUI_L GUI_T(KC_L)
|
||||
#define CTL_K CTL_T(KC_K)
|
||||
#define SFT_J RSFT_T(KC_J)
|
||||
|
||||
// nav layer
|
||||
#define GUI_BSLS GUI_T(KC_BSLS)
|
||||
#define ALT_LBRC ALT_T(KC_LBRC)
|
||||
#define SFT_RBRC SFT_T(KC_RBRC)
|
||||
#define CTL_MINS CTL_T(KC_MINS)
|
||||
#define ALT_BSLS ALT_T(KC_BSLS)
|
||||
#define GUI_LBRC GUI_T(KC_LBRC)
|
||||
#define CTL_RBRC CTL_T(KC_RBRC)
|
||||
#define SFT_MINS SFT_T(KC_MINS)
|
||||
|
||||
#define GUI_RGHT GUI_T(KC_RGHT)
|
||||
#define ALT_UP ALT_T(KC_UP)
|
||||
#define SFT_DOWN RSFT_T(KC_DOWN)
|
||||
#define CTL_LEFT CTL_T(KC_LEFT)
|
||||
#define ALT_RGHT ALT_T(KC_RGHT)
|
||||
#define GUI_UP GUI_T(KC_UP)
|
||||
#define CTL_DOWN CTL_T(KC_DOWN)
|
||||
#define SFT_LEFT RSFT_T(KC_LEFT)
|
||||
|
||||
// num layer
|
||||
#define GUI_1 GUI_T(KC_1)
|
||||
#define ALT_2 ALT_T(KC_2)
|
||||
#define SFT_3 SFT_T(KC_3)
|
||||
#define CTL_4 CTL_T(KC_4)
|
||||
#define ALT_1 ALT_T(KC_1)
|
||||
#define GUI_2 GUI_T(KC_2)
|
||||
#define CTL_3 CTL_T(KC_3)
|
||||
#define SFT_4 SFT_T(KC_4)
|
||||
|
||||
#define GUI_0 GUI_T(KC_0)
|
||||
#define ALT_9 ALT_T(KC_9)
|
||||
#define SFT_8 RSFT_T(KC_8)
|
||||
#define CTL_7 CTL_T(KC_7)
|
||||
#define ALT_0 ALT_T(KC_0)
|
||||
#define GUI_9 GUI_T(KC_9)
|
||||
#define CTL_8 CTL_T(KC_8)
|
||||
#define SFT_7 RSFT_T(KC_7)
|
||||
|
|
@ -24,28 +24,28 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
|||
// base
|
||||
[_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_TAB, GUI_A, ALT_S, SFT_D, CTL_F, CTL_G, CTL_H, CTL_J, SFT_K, ALT_L, GUI_SCLN, KC_QUOT,
|
||||
KC_TAB, ALT_A, GUI_S, CTL_D, SFT_F, KC_G, KC_H, SFT_J, CTL_K, GUI_L, ALT_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,
|
||||
KC_NO, FUNC_PLAY, KC_LALT, TD(TD_CAD_LOCK_SLEEP), LAUNCH, NUM_SPC, NAV_ENT, KC_RALT, KC_LEFT, DOWN, UP, KC_RGHT
|
||||
),
|
||||
// gamer
|
||||
[_GAME] = LAYOUT_ortho_4x12(
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||
KC_TAB, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_TRNS,
|
||||
KC_TAB, KC_A, KC_S, KC_D, KC_TRNS, KC_TRNS, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_TRNS,
|
||||
KC_LSFT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||
KC_LCTL, KC_TRNS, KC_TRNS, KC_PGDN, KC_PGUP, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
|
||||
),
|
||||
// numbers
|
||||
[_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_DOT, GUI_1, ALT_2, SFT_3, CTL_4, KC_5, KC_6, CTL_7, SFT_8, ALT_9, GUI_0, 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_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
|
||||
),
|
||||
// navigation and special characters
|
||||
[_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_TRNS, GUI_BSLS, ALT_LBRC, SFT_RBRC, CTL_MINS, KC_EQL, KC_HOME, CTL_LEFT, SFT_DOWN, ALT_UP, GUI_RGHT, KC_END,
|
||||
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_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
|
||||
),
|
||||
|
|
@ -87,39 +87,39 @@ bool process_record_user(uint16_t keycode, keyrecord_t* record) {
|
|||
break;
|
||||
|
||||
// noshift homerow mods with control overrides
|
||||
case GUI_1:
|
||||
case ALT_1:
|
||||
return unshift_register_or_ctrl_fallthrough(keycode, KC_A, record);
|
||||
break;
|
||||
case ALT_2:
|
||||
case GUI_2:
|
||||
return unshift_register_or_ctrl_fallthrough(keycode, KC_S, record);
|
||||
break;
|
||||
case CTL_4:
|
||||
case SFT_4:
|
||||
return unshift_register_or_ctrl_fallthrough(keycode, KC_F, record);
|
||||
break;
|
||||
case CTL_7:
|
||||
case SFT_7:
|
||||
return unshift_register_or_ctrl_fallthrough(keycode, KC_J, record);
|
||||
break;
|
||||
case GUI_BSLS:
|
||||
case ALT_BSLS:
|
||||
return unshift_register_or_ctrl_fallthrough(keycode, KC_A, record);
|
||||
break;
|
||||
case ALT_LBRC:
|
||||
case GUI_LBRC:
|
||||
return unshift_register_or_ctrl_fallthrough(keycode, KC_S, record);
|
||||
break;
|
||||
case CTL_MINS:
|
||||
case SFT_MINS:
|
||||
return unshift_register_or_ctrl_fallthrough(keycode, KC_F, record);
|
||||
break;
|
||||
|
||||
case SFT_3:
|
||||
case GUI_0:
|
||||
case SFT_8:
|
||||
case ALT_9:
|
||||
case SFT_RBRC: // no control override, just unshift
|
||||
case CTL_3:
|
||||
case ALT_0:
|
||||
case CTL_8:
|
||||
case GUI_9:
|
||||
case CTL_RBRC: // no control override, just unshift
|
||||
return unshift_register(keycode, record);
|
||||
break;
|
||||
|
||||
// make arrow key homerow mods trigger the tap action when held and the hold time expires
|
||||
case ALT_UP:
|
||||
case SFT_DOWN:
|
||||
case GUI_UP:
|
||||
case CTL_DOWN:
|
||||
if (!record->tap.count && !record->tap.interrupted) {
|
||||
if (record->event.pressed) {
|
||||
register_code(keycode);
|
||||
|
|
@ -138,8 +138,8 @@ bool process_record_user(uint16_t keycode, keyrecord_t* record) {
|
|||
}
|
||||
}
|
||||
}
|
||||
case CTL_LEFT:
|
||||
case GUI_RGHT:
|
||||
case SFT_LEFT:
|
||||
case ALT_RGHT:
|
||||
// if this is a hold action and it occurred naturally
|
||||
if (!record->tap.count && !record->tap.interrupted) {
|
||||
if (record->event.pressed) {
|
||||
|
|
@ -157,6 +157,7 @@ bool process_record_user(uint16_t keycode, keyrecord_t* record) {
|
|||
case KC_E:
|
||||
case KC_R:
|
||||
case KC_T:
|
||||
case KC_G:
|
||||
case KC_Z:
|
||||
case KC_X:
|
||||
case KC_C:
|
||||
|
|
@ -167,11 +168,10 @@ bool process_record_user(uint16_t keycode, keyrecord_t* record) {
|
|||
}
|
||||
break;
|
||||
|
||||
case GUI_A:
|
||||
case ALT_S:
|
||||
case SFT_D:
|
||||
case CTL_F:
|
||||
case CTL_G:
|
||||
case ALT_A:
|
||||
case GUI_S:
|
||||
case CTL_D:
|
||||
case SFT_F:
|
||||
if (record->event.pressed && record->tap.count && get_mods() == MOD_BIT(KC_LSFT)) {
|
||||
return false; // do nothing
|
||||
}
|
||||
|
|
@ -182,6 +182,7 @@ bool process_record_user(uint16_t keycode, keyrecord_t* record) {
|
|||
case KC_I:
|
||||
case KC_O:
|
||||
case KC_P:
|
||||
case KC_H:
|
||||
case KC_QUOT:
|
||||
case KC_N:
|
||||
case KC_M:
|
||||
|
|
@ -192,11 +193,10 @@ bool process_record_user(uint16_t keycode, keyrecord_t* record) {
|
|||
return false; // do nothing
|
||||
}
|
||||
break;
|
||||
case GUI_SCLN:
|
||||
case ALT_L:
|
||||
case SFT_K:
|
||||
case CTL_J:
|
||||
case CTL_H:
|
||||
case ALT_SCLN:
|
||||
case GUI_L:
|
||||
case CTL_K:
|
||||
case SFT_J:
|
||||
if (IS_LAYER_ON(_BASE) && record->event.pressed && record->tap.count &&
|
||||
get_mods() == MOD_BIT(KC_RSFT)) {
|
||||
return false; // do nothing
|
||||
|
|
@ -248,6 +248,9 @@ const key_override_t UP_TO_ZOOM_IN = ko_make_basic(MOD_MASK_CTRL, UP, C(KC_EQL))
|
|||
const key_override_t UP_DEFAULT = ko_make_basic(0, UP, KC_UP);
|
||||
|
||||
// NUM layer
|
||||
const key_override_t FIVE_NOSHIFT = ko_make_basic(MOD_MASK_SHIFT, KC_5, KC_5);
|
||||
const key_override_t SIX_NOSHIFT = ko_make_basic(MOD_MASK_SHIFT, KC_6, KC_6);
|
||||
|
||||
const key_override_t LOW_6_TO_Z = ko_make_basic(MOD_MASK_CTRL, LOW_6, C(KC_Z));
|
||||
const key_override_t LOW_6_NOSHIFT = ko_make_basic(MOD_MASK_SHIFT, LOW_6, KC_6);
|
||||
const key_override_t LOW_6_DEFAULT = ko_make_basic(0, LOW_6, KC_6);
|
||||
|
|
@ -325,6 +328,8 @@ const key_override_t* key_overrides[] = {
|
|||
&UP_TO_ZOOM_IN,
|
||||
&UP_DEFAULT,
|
||||
|
||||
&FIVE_NOSHIFT,
|
||||
&SIX_NOSHIFT,
|
||||
&LOW_6_TO_Z,
|
||||
&LOW_6_NOSHIFT,
|
||||
&LOW_6_DEFAULT,
|
||||
|
|
|
|||
|
|
@ -5,36 +5,33 @@
|
|||
|
||||
uint16_t get_quick_tap_term(uint16_t keycode, keyrecord_t* record) {
|
||||
switch (keycode) {
|
||||
case CTL_T(KC_TAB):
|
||||
case NUM_SPC:
|
||||
case NAV_ENT:
|
||||
case FUNC_PLAY: // no repeat tapping for these keys
|
||||
|
||||
case GUI_A:
|
||||
case ALT_S:
|
||||
case SFT_D:
|
||||
case CTL_F:
|
||||
case CTL_G:
|
||||
case GUI_SCLN:
|
||||
case ALT_L:
|
||||
case SFT_K:
|
||||
case CTL_J:
|
||||
case CTL_H:
|
||||
case ALT_A:
|
||||
case GUI_S:
|
||||
case CTL_D:
|
||||
case SFT_F:
|
||||
case ALT_SCLN:
|
||||
case GUI_L:
|
||||
case CTL_K:
|
||||
case SFT_J:
|
||||
|
||||
case GUI_1:
|
||||
case ALT_2:
|
||||
case SFT_3:
|
||||
case CTL_4:
|
||||
case GUI_0:
|
||||
case ALT_9:
|
||||
case SFT_8:
|
||||
case CTL_7:
|
||||
|
||||
case GUI_BSLS:
|
||||
case ALT_LBRC:
|
||||
case SFT_RBRC:
|
||||
case CTL_MINS: // no repeat tapping for homerow mods
|
||||
case ALT_BSLS:
|
||||
case GUI_LBRC:
|
||||
case CTL_RBRC:
|
||||
case SFT_MINS:
|
||||
// intentionally omitting arrow keys
|
||||
|
||||
case ALT_1:
|
||||
case GUI_2:
|
||||
case CTL_3:
|
||||
case SFT_4:
|
||||
case ALT_0:
|
||||
case GUI_9:
|
||||
case CTL_8:
|
||||
case SFT_7: // no repeat tapping for homerow mods
|
||||
return 0;
|
||||
break;
|
||||
}
|
||||
|
|
@ -46,34 +43,33 @@ bool get_permissive_hold(uint16_t keycode, keyrecord_t* record) {
|
|||
case NUM_SPC: // permissive hold for layer tap space
|
||||
return true;
|
||||
break;
|
||||
case GUI_A:
|
||||
case ALT_S:
|
||||
case SFT_D:
|
||||
case CTL_F:
|
||||
case CTL_G:
|
||||
case GUI_SCLN:
|
||||
case ALT_L:
|
||||
case SFT_K:
|
||||
case CTL_J:
|
||||
case CTL_H:
|
||||
|
||||
case GUI_1:
|
||||
case ALT_2:
|
||||
case SFT_3:
|
||||
case CTL_4:
|
||||
case GUI_0:
|
||||
case ALT_9:
|
||||
case SFT_8:
|
||||
case CTL_7:
|
||||
case ALT_A:
|
||||
case GUI_S:
|
||||
case CTL_D:
|
||||
case SFT_F:
|
||||
case ALT_SCLN:
|
||||
case GUI_L:
|
||||
case CTL_K:
|
||||
case SFT_J:
|
||||
|
||||
case GUI_BSLS:
|
||||
case ALT_LBRC:
|
||||
case SFT_RBRC:
|
||||
case CTL_MINS: // permissive hold for homerow mods
|
||||
case GUI_RGHT:
|
||||
case ALT_UP:
|
||||
case SFT_DOWN:
|
||||
case CTL_LEFT:
|
||||
case ALT_BSLS:
|
||||
case GUI_LBRC:
|
||||
case CTL_RBRC:
|
||||
case SFT_MINS:
|
||||
case ALT_RGHT:
|
||||
case GUI_UP:
|
||||
case CTL_DOWN:
|
||||
case SFT_LEFT:
|
||||
|
||||
case ALT_1:
|
||||
case GUI_2:
|
||||
case CTL_3:
|
||||
case SFT_4:
|
||||
case ALT_0:
|
||||
case GUI_9:
|
||||
case CTL_8:
|
||||
case SFT_7: // permissive hold for mod-taps
|
||||
return true;
|
||||
break;
|
||||
}
|
||||
|
|
@ -86,34 +82,32 @@ bool get_hold_on_other_key_press(uint16_t keycode, keyrecord_t* record) {
|
|||
return false;
|
||||
break;
|
||||
|
||||
case GUI_A:
|
||||
case ALT_S:
|
||||
case SFT_D:
|
||||
case CTL_F:
|
||||
case CTL_G:
|
||||
case GUI_SCLN:
|
||||
case ALT_L:
|
||||
case SFT_K:
|
||||
case CTL_J:
|
||||
case CTL_H:
|
||||
case ALT_A:
|
||||
case GUI_S:
|
||||
case CTL_D:
|
||||
case SFT_F:
|
||||
case ALT_SCLN:
|
||||
case GUI_L:
|
||||
case CTL_K:
|
||||
case SFT_J:
|
||||
|
||||
case GUI_1:
|
||||
case ALT_2:
|
||||
case SFT_3:
|
||||
case CTL_4:
|
||||
case GUI_0:
|
||||
case ALT_9:
|
||||
case SFT_8:
|
||||
case CTL_7:
|
||||
case ALT_BSLS:
|
||||
case GUI_LBRC:
|
||||
case CTL_RBRC:
|
||||
case SFT_MINS:
|
||||
case ALT_RGHT:
|
||||
case GUI_UP:
|
||||
case CTL_DOWN:
|
||||
case SFT_LEFT:
|
||||
|
||||
case GUI_BSLS:
|
||||
case ALT_LBRC:
|
||||
case SFT_RBRC:
|
||||
case CTL_MINS: // no hold on other key press for homerow mods
|
||||
case GUI_RGHT:
|
||||
case ALT_UP:
|
||||
case SFT_DOWN:
|
||||
case CTL_LEFT:
|
||||
case ALT_1:
|
||||
case GUI_2:
|
||||
case CTL_3:
|
||||
case SFT_4:
|
||||
case ALT_0:
|
||||
case GUI_9:
|
||||
case CTL_8:
|
||||
case SFT_7: // no hold on other key press for mod taps
|
||||
return false;
|
||||
break;
|
||||
}
|
||||
|
|
@ -122,19 +116,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) {
|
||||
switch (keycode) {
|
||||
case GUI_A:
|
||||
case GUI_SCLN:
|
||||
case GUI_1:
|
||||
case GUI_0:
|
||||
case GUI_BSLS:
|
||||
case GUI_RGHT:
|
||||
case GUI_S:
|
||||
case GUI_L:
|
||||
case GUI_2:
|
||||
case GUI_9:
|
||||
case GUI_LBRC:
|
||||
case GUI_UP:
|
||||
|
||||
case ALT_S:
|
||||
case ALT_L:
|
||||
case ALT_2:
|
||||
case ALT_9:
|
||||
case ALT_LBRC: // alt and gui have events for a hold and release
|
||||
case ALT_UP:
|
||||
case ALT_A:
|
||||
case ALT_SCLN:
|
||||
case ALT_1:
|
||||
case ALT_0:
|
||||
case ALT_BSLS: // alt and gui have events for a hold and release
|
||||
case ALT_RGHT:
|
||||
return 400;
|
||||
break;
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in a new issue