From 16443e98379e652b3bf102bc3dbd8700e2e4e185 Mon Sep 17 00:00:00 2001 From: Drew Whitney Date: Fri, 7 Nov 2025 16:54:13 -0700 Subject: [PATCH] Now using left and right mods to prevent accidental release while switching hands --- .../keebio/nyquist/rev4/keymaps/drew/alias.h | 30 +++--- .../keebio/nyquist/rev4/keymaps/drew/keymap.c | 32 +++---- .../keymaps/drew/taphold/taphold_options.c | 92 +++++++++---------- 3 files changed, 77 insertions(+), 77 deletions(-) diff --git a/keyboards/keebio/nyquist/rev4/keymaps/drew/alias.h b/keyboards/keebio/nyquist/rev4/keymaps/drew/alias.h index 7a64f290..de676d3a 100644 --- a/keyboards/keebio/nyquist/rev4/keymaps/drew/alias.h +++ b/keyboards/keebio/nyquist/rev4/keymaps/drew/alias.h @@ -41,34 +41,34 @@ enum CustomKeycodes { // home row mods // base layer -#define ALT_A ALT_T(KC_A) -#define GUI_S GUI_T(KC_S) +#define GUI_A GUI_T(KC_A) +#define ALT_S ALT_T(KC_S) #define CTL_D CTL_T(KC_D) #define SFT_F SFT_T(KC_F) -#define ALT_SCLN ALT_T(KC_SCLN) -#define GUI_L GUI_T(KC_L) -#define CTL_K CTL_T(KC_K) +#define GUI_SCLN RGUI_T(KC_SCLN) +#define ALT_L RALT_T(KC_L) +#define CTL_K RCTL_T(KC_K) #define SFT_J RSFT_T(KC_J) // nav layer -#define ALT_BSLS ALT_T(KC_BSLS) -#define GUI_LBRC GUI_T(KC_LBRC) +#define GUI_BSLS GUI_T(KC_BSLS) +#define ALT_LBRC ALT_T(KC_LBRC) #define CTL_RBRC CTL_T(KC_RBRC) #define SFT_MINS SFT_T(KC_MINS) -#define ALT_RGHT ALT_T(KC_RGHT) -#define GUI_UP GUI_T(KC_UP) -#define CTL_DOWN CTL_T(KC_DOWN) +#define GUI_RGHT RGUI_T(KC_RGHT) +#define ALT_UP RALT_T(KC_UP) +#define CTL_DOWN RCTL_T(KC_DOWN) #define SFT_LEFT RSFT_T(KC_LEFT) // num layer -#define ALT_1 ALT_T(KC_1) -#define GUI_2 GUI_T(KC_2) +#define GUI_1 GUI_T(KC_1) +#define ALT_2 ALT_T(KC_2) #define CTL_3 CTL_T(KC_3) #define SFT_4 SFT_T(KC_4) -#define ALT_0 ALT_T(KC_0) -#define GUI_9 GUI_T(KC_9) -#define CTL_8 CTL_T(KC_8) +#define GUI_0 RGUI_T(KC_0) +#define ALT_9 RALT_T(KC_9) +#define CTL_8 RCTL_T(KC_8) #define SFT_7 RSFT_T(KC_7) \ No newline at end of file diff --git a/keyboards/keebio/nyquist/rev4/keymaps/drew/keymap.c b/keyboards/keebio/nyquist/rev4/keymaps/drew/keymap.c index 37f17bdd..c20f3355 100644 --- a/keyboards/keebio/nyquist/rev4/keymaps/drew/keymap.c +++ b/keyboards/keebio/nyquist/rev4/keymaps/drew/keymap.c @@ -24,9 +24,9 @@ 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, 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, - 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 [_GAME] = LAYOUT_ortho_4x12( @@ -38,14 +38,14 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { // 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, 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_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, 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_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; // noshift homerow mods with control overrides - case ALT_1: + case GUI_1: return unshift_register_or_ctrl_fallthrough(keycode, KC_A, record); break; - case GUI_2: + case ALT_2: return unshift_register_or_ctrl_fallthrough(keycode, KC_S, record); break; case SFT_4: @@ -108,10 +108,10 @@ bool process_record_user(uint16_t keycode, keyrecord_t* record) { case SFT_7: return unshift_register_or_ctrl_fallthrough(keycode, KC_J, record); break; - case ALT_BSLS: + case GUI_BSLS: return unshift_register_or_ctrl_fallthrough(keycode, KC_A, record); break; - case GUI_LBRC: + case ALT_LBRC: return unshift_register_or_ctrl_fallthrough(keycode, KC_S, record); break; case SFT_MINS: @@ -119,15 +119,15 @@ bool process_record_user(uint16_t keycode, keyrecord_t* record) { break; case CTL_3: - case ALT_0: + case GUI_0: case CTL_8: - case GUI_9: + case ALT_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 GUI_UP: + case ALT_UP: case CTL_DOWN: if (!record->tap.count && !record->tap.interrupted) { if (record->event.pressed) { @@ -148,7 +148,7 @@ bool process_record_user(uint16_t keycode, keyrecord_t* record) { } } case SFT_LEFT: - case ALT_RGHT: + case GUI_RGHT: // if this is a hold action and it occurred naturally if (!record->tap.count && !record->tap.interrupted) { if (record->event.pressed) { @@ -177,8 +177,8 @@ bool process_record_user(uint16_t keycode, keyrecord_t* record) { } break; - case ALT_A: - case GUI_S: + case GUI_A: + case ALT_S: case CTL_D: case SFT_F: 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 } break; - case ALT_SCLN: - case GUI_L: + case GUI_SCLN: + case ALT_L: case CTL_K: case SFT_J: if (IS_LAYER_ON(_BASE) && record->event.pressed && record->tap.count && diff --git a/keyboards/keebio/nyquist/rev4/keymaps/drew/taphold/taphold_options.c b/keyboards/keebio/nyquist/rev4/keymaps/drew/taphold/taphold_options.c index 7a07b45a..ad07169f 100644 --- a/keyboards/keebio/nyquist/rev4/keymaps/drew/taphold/taphold_options.c +++ b/keyboards/keebio/nyquist/rev4/keymaps/drew/taphold/taphold_options.c @@ -10,27 +10,27 @@ uint16_t get_quick_tap_term(uint16_t keycode, keyrecord_t* record) { case NAV_ENT: case FUNC_PLAY: // no repeat tapping for these keys - case ALT_A: - case GUI_S: + case GUI_A: + case ALT_S: case CTL_D: case SFT_F: - case ALT_SCLN: - case GUI_L: + case GUI_SCLN: + case ALT_L: case CTL_K: case SFT_J: - case ALT_BSLS: - case GUI_LBRC: + case GUI_BSLS: + case ALT_LBRC: case CTL_RBRC: case SFT_MINS: // intentionally omitting arrow keys - case ALT_1: - case GUI_2: + case GUI_1: + case ALT_2: case CTL_3: case SFT_4: - case ALT_0: - case GUI_9: + case GUI_0: + case ALT_9: case CTL_8: case SFT_7: // no repeat tapping for homerow mods return 0; @@ -45,30 +45,30 @@ bool get_permissive_hold(uint16_t keycode, keyrecord_t* record) { return true; break; - case ALT_A: - case GUI_S: + case GUI_A: + case ALT_S: case CTL_D: case SFT_F: - case ALT_SCLN: - case GUI_L: + case GUI_SCLN: + case ALT_L: case CTL_K: case SFT_J: - case ALT_BSLS: - case GUI_LBRC: + case GUI_BSLS: + case ALT_LBRC: case CTL_RBRC: case SFT_MINS: - case ALT_RGHT: - case GUI_UP: + case GUI_RGHT: + case ALT_UP: case CTL_DOWN: case SFT_LEFT: - case ALT_1: - case GUI_2: + case GUI_1: + case ALT_2: case CTL_3: case SFT_4: - case ALT_0: - case GUI_9: + case GUI_0: + case ALT_9: case CTL_8: case SFT_7: // permissive hold for mod-taps return true; @@ -83,30 +83,30 @@ bool get_hold_on_other_key_press(uint16_t keycode, keyrecord_t* record) { return false; break; - case ALT_A: - case GUI_S: + case GUI_A: + case ALT_S: case CTL_D: case SFT_F: - case ALT_SCLN: - case GUI_L: + case GUI_SCLN: + case ALT_L: case CTL_K: case SFT_J: - case ALT_BSLS: - case GUI_LBRC: + case GUI_BSLS: + case ALT_LBRC: case CTL_RBRC: case SFT_MINS: - case ALT_RGHT: - case GUI_UP: + case GUI_RGHT: + case ALT_UP: case CTL_DOWN: case SFT_LEFT: - case ALT_1: - case GUI_2: + case GUI_1: + case ALT_2: case CTL_3: case SFT_4: - case ALT_0: - case GUI_9: + case GUI_0: + case ALT_9: case CTL_8: case SFT_7: // no hold on other key press for mod taps 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) { switch (keycode) { - 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: + case ALT_UP: - case ALT_A: - case ALT_SCLN: - case ALT_1: - case ALT_0: - case ALT_BSLS: - case ALT_RGHT: // alt and gui have events for a hold and release + case GUI_A: + case GUI_SCLN: + case GUI_1: + case GUI_0: + case GUI_BSLS: + case GUI_RGHT: // alt and gui have events for a hold and release case GUI_LAUNCH: // also non-homerow mod-taps return 400;