QMK: shift + backspace = delete
This is a neat trick I’ve incorporated into all my QMK based keyboards – pressing shift and backspace makes backspace act like the delete key. It’s probably not the most exciting trick out there – but it’s just so practical!
It’s also stolen from an excellent guide on QMK, so credit where credit is due – thank you Pascal!
The snippet below enables the feature:
bool process_record_user(uint16_t keycode, keyrecord_t* record) {
switch (keycode) {
case KC_BSPC: {
static uint16_t registered_key = KC_NO;
if (record->event.pressed) { // On key press.
const uint8_t mods = get_mods();
#ifndef NO_ACTION_ONESHOT
uint8_t shift_mods = (mods | get_oneshot_mods()) & MOD_MASK_SHIFT;
#else
uint8_t shift_mods = mods & MOD_MASK_SHIFT;
#endif // NO_ACTION_ONESHOT
if (shift_mods) { // At least one shift key is held.
registered_key = KC_DEL;
// If one shift is held, clear it from the mods. But if both
// shifts are held, leave as is to send Shift + Del.
if (shift_mods != MOD_MASK_SHIFT) {
#ifndef NO_ACTION_ONESHOT
del_oneshot_mods(MOD_MASK_SHIFT);
#endif // NO_ACTION_ONESHOT
unregister_mods(MOD_MASK_SHIFT);
}
} else {
registered_key = KC_BSPC;
}
register_code(registered_key);
set_mods(mods);
} else { // On key release.
unregister_code(registered_key);
}
} return false;
// Other macros...
}
return true;
}
You can read more about this trick in the guide.