Remove IGNORE_MOD_TAP_INTERRUPT_PER_KEY in favour of HOLD_ON_OTHER_KEY_PRESS_PER_KEY (#15741)

This commit is contained in:
precondition
2022-12-13 12:20:07 +01:00
committed by GitHub
parent ca13734f91
commit 515dd18c28
42 changed files with 227 additions and 518 deletions

View File

@@ -1,3 +1,2 @@
#define HOLD_ON_OTHER_KEY_PRESS_PER_KEY
#define QUICK_TAP_TERM_PER_KEY
#define IGNORE_MOD_TAP_INTERRUPT_PER_KEY

View File

@@ -93,21 +93,15 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
),
};
bool get_ignore_mod_tap_interrupt(uint16_t keycode, keyrecord_t *record) {
switch (keycode) {
case RC_QUT:
return true;
default:
bool get_hold_on_other_key_press(uint16_t keycode, keyrecord_t *record) {
// Special if-condition outside the switch because `RC_QUT` overlaps with
// the `QK_MOD_TAP ... QK_MOD_TAP_MAX` range.
if (keycode == RC_QUT) {
return false;
}
}
bool get_hold_on_other_key_press(uint16_t keycode, keyrecord_t *record) {
switch (keycode) {
case LLS_ESC:
case LLS_RALT:
case LLE_ENT:
case LLA_DEL:
case QK_MOD_TAP ... QK_MOD_TAP_MAX:
case QK_LAYER_TAP ... QK_LAYER_TAP_MAX:
return true;
default:
return false;

View File

@@ -28,15 +28,12 @@
#define TAPPING_TERM 200
// Prevent normal rollover on alphas from accidentally triggering mods.
// #define IGNORE_MOD_TAP_INTERRUPT
// Enable rapid switch from tap to hold, disables double tap hold auto-repeat.
// #define QUICK_TAP_TERM 0
// Apply the modifier on keys that are tapped during a short hold of a modtap
// #define PERMISSIVE_HOLD
#define IGNORE_MOD_TAP_INTERRUPT_PER_KEY
#define HOLD_ON_OTHER_KEY_PRESS_PER_KEY
#define FORCE_NKRO
#define FORCE_NKRO

View File

@@ -169,12 +169,13 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
)
};
bool get_ignore_mod_tap_interrupt(uint16_t keycode, keyrecord_t *record) {
switch (keycode) {
case CM_SPAR:
return true;
default:
return false;
bool get_hold_on_other_key_press(uint16_t keycode, keyrecord_t *record) {
if (keycode == CM_SPAR) {
return false;
} else if (QK_MOD_TAP <= keycode && keycode <= QK_MOD_TAP_MAX) {
return true;
} else {
return false;
}
}

View File

@@ -18,8 +18,7 @@
#define TAPPING_TERM 200 // Delay for tap modifiers until it is considered a hold
#define IGNORE_MOD_TAP_INTERRUPT // Enable ignore mod tap interrupt: https://docs.qmk.fm/#/tap_hold?id=ignore-mod-tap-interrupt
#define IGNORE_MOD_TAP_INTERRUPT_PER_KEY // Allows configuration of ignore mod tap interrupt per key in keymap.c
#define HOLD_ON_OTHER_KEY_PRESS_PER_KEY // Allows configuration of hold on other key press per key in keymap.c
#define COMBO_COUNT 2 // Number of defined combos
#define COMBO_TERM 20 // Delay for combo keys to be chained together

View File

@@ -174,13 +174,13 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
};
// clang-format on
// Configure ignore mod tap interrupt per key
bool get_ignore_mod_tap_interrupt(uint16_t keycode, keyrecord_t *record) {
// Configure hold on other key press per key
bool get_hold_on_other_key_press(uint16_t keycode, keyrecord_t *record) {
switch (keycode) {
// I don't like how mod tap interrupt feels with these keys specifically when I'm typing
// I don't like how ignore interrupt feels with these keys specifically when I'm typing
case LCTL_T(KC_ESC):
return false;
default:
return true;
default:
return false;
}
}

View File

@@ -57,7 +57,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
// fix for me putting alt under A and being a fast typist
#define IGNORE_MOD_TAP_INTERRUPT
//#define IGNORE_MOD_TAP_INTERRUPT_PER_KEY
#define LAYER_STATE_8BIT
#define SPLIT_WPM_ENABLE

View File

@@ -198,12 +198,14 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
// }
//}
//
// bool get_ignore_mod_tap_interrupt(uint16_t keycode, keyrecord_t *record) {
// bool get_hold_on_other_key_press(uint16_t keycode, keyrecord_t *record) {
// if (keycode == ALT_T(KC_A) || keycode == SH_BKSP) {
// return false;
// }
// switch (keycode) {
// case ALT_T(KC_A):
// case SH_BKSP:
// case QK_MOD_TAP ... QK_MOD_TAP_MAX:
// return true;
// default:
// return false;
// }
//}
//}

View File

@@ -29,8 +29,8 @@
#define PERMISSIVE_HOLD
/* #define PERMISSIVE_HOLD_PER_KEY */
#define IGNORE_MOD_TAP_INTERRUPT
#define IGNORE_MOD_TAP_INTERRUPT_PER_KEY
#define HOLD_ON_OTHER_KEY_PRESS
#define HOLD_ON_OTHER_KEY_PRESS_PER_KEY
#define QUICK_TAP_TERM 0
#define QUICK_TAP_TERM_PER_KEY

View File

@@ -206,7 +206,7 @@ uint16_t get_tapping_term(uint16_t keycode, keyrecord_t *record) {
return TAPPING_TERM;
}
}
bool get_ignore_mod_tap_interrupt(uint16_t keycode, keyrecord_t *record) {
bool get_hold_on_other_key_press(uint16_t keycode, keyrecord_t *record) {
switch (keycode) {
case E_NUMBERS:
case R_MOUSE:
@@ -219,7 +219,7 @@ bool get_ignore_mod_tap_interrupt(uint16_t keycode, keyrecord_t *record) {
case RCTL_T(KC_L):
case RSFT_T(KC_SEMICOLON):
case ARROWS:
return true;
return false;
default:
return false;
}

View File

@@ -45,10 +45,7 @@
// Configure the global tapping term (default: 200ms)
#define TAPPING_TERM 200
// Prevent normal rollover on alphas from accidentally triggering mods.
#define IGNORE_MOD_TAP_INTERRUPT
//#define IGNORE_MOD_TAP_INTERRUPT
#define IGNORE_MOD_TAP_INTERRUPT_PER_KEY
#define HOLD_ON_OTHER_KEY_PRESS_PER_KEY
// Enable rapid switch from tap to hold, disables double tap hold auto-repeat.
#define QUICK_TAP_TERM 0

View File

@@ -195,18 +195,18 @@ layer_state_t layer_state_set_user(layer_state_t state) {
return update_tri_layer_state(state, _LOWER, _RAISE, _ADJUST);
}
bool get_ignore_mod_tap_interrupt(uint16_t keycode, keyrecord_t *record) {
bool get_hold_on_other_key_press(uint16_t keycode, keyrecord_t *record) {
switch (keycode) {
case SPC_L:
return false;
return true;
case SPC_R:
return true;
return false;
case ENT_L:
return false;
case ENT_R:
return false;
default:
return true;
case ENT_R:
return true;
default:
return false;
}
}

View File

@@ -17,4 +17,4 @@
#define MASTER_LEFT
#define TAPPING_TERM 200
#define IGNORE_MOD_TAP_INTERRUPT_PER_KEY
#define HOLD_ON_OTHER_KEY_PRESS_PER_KEY

View File

@@ -96,9 +96,11 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
)
};
bool get_ignore_mod_tap_interrupt(uint16_t keycode, keyrecord_t *record) {
bool get_hold_on_other_key_press(uint16_t keycode, keyrecord_t *record) {
switch (keycode) {
case SY_SPC:
return false;
case QK_MOD_TAP ... QK_MOD_TAP_MAX:
return true;
default:
return false;

View File

@@ -33,7 +33,7 @@
// Tap-Hold Configs
#define TAPPING_TERM 180
#define PERMISSIVE_HOLD
#define IGNORE_MOD_TAP_INTERRUPT
#define IGNORE_MOD_TAP_INTERRUPT_PER_KEY
#define HOLD_ON_OTHER_KEY_PRESS
#define HOLD_ON_OTHER_KEY_PRESS_PER_KEY
#define QUICK_TAP_TERM 0
#define QUICK_TAP_TERM_PER_KEY

View File

@@ -255,7 +255,7 @@ uint16_t get_quick_tap_term(uint16_t keycode, keyrecord_t *record) {
}
}
bool get_ignore_mod_tap_interrupt(uint16_t keycode, keyrecord_t *record) {
bool get_hold_on_other_key_press(uint16_t keycode, keyrecord_t *record) {
switch (keycode) {
case ALT__A:
case ALTSCLN:
@@ -272,7 +272,7 @@ bool get_ignore_mod_tap_interrupt(uint16_t keycode, keyrecord_t *record) {
case CTL__J:
case CTL__T:
case CTL__N:
return true;
return false;
default:
return false;
}

View File

@@ -118,7 +118,7 @@
*/
#define RETRO_TAPPING_PER_KEY // Control Retro-Tap individually by key
#define QUICK_TAP_TERM_PER_KEY // Control Quick-Tap individually by key
#define IGNORE_MOD_TAP_INTERRUPT_PER_KEY // Control Mod-Tap-Interrupt individually by key
#define HOLD_ON_OTHER_KEY_PRESS_PER_KEY // Control Hold-on-Other-Key-Press individually by key
#define PERMISSIVE_HOLD_PER_KEY // Control Permissive-Hold individually by key
#define MK_KINETIC_SPEED // Use kinetic acceleration for mouse-keys

View File

@@ -1369,9 +1369,11 @@ bool get_retro_tapping(uint16_t keycode, keyrecord_t* record) {
return false;
}
}
// Handles per-key configuration of Mod-Tap-Interrupt
bool get_ignore_mod_tap_interrupt(uint16_t keycode, keyrecord_t* record) {
// Handles per-key configuration of Hold-on-Other-Key-Press
bool get_hold_on_other_key_press(uint16_t keycode, keyrecord_t* record) {
switch (keycode) {
case QK_MOD_TAP ... QK_MOD_TAP_MAX:
return true;
default:
return false;
}

View File

@@ -17,5 +17,5 @@
#pragma once
#define TAPPING_TERM 200
#define IGNORE_MOD_TAP_INTERRUPT_PER_KEY
#define HOLD_ON_OTHER_KEY_PRESS_PER_KEY
#define PERMISSIVE_HOLD_PER_KEY

View File

@@ -133,18 +133,18 @@ layer_state_t layer_state_set_user(layer_state_t state) {
}
/*
* Enable `IGNORE_MOD_TAP_INTERRUPT` for all modifiers except `Shift`.
* For more info see `IGNORE_MOD_TAP_INTERRUPT_PER_KEY` in `docs/tap_hold.md`.
* Enable `HOLD_ON_OTHER_KEY_PRESS` only for `Shift`.
* For more info see `HOLD_ON_OTHER_KEY_PRESS_PER_KEY` in `docs/tap_hold.md`.
*/
bool get_ignore_mod_tap_interrupt(uint16_t keycode, keyrecord_t *record) {
bool get_hold_on_other_key_press(uint16_t keycode, keyrecord_t *record) {
switch (keycode) {
case S_EQL:
return false;
case S_MINS:
return false;
default:
return true;
case S_MINS:
return true;
default:
return false;
}
}