mirror of
https://github.com/qmk/qmk_userspace.git
synced 2025-06-24 06:02:44 -04:00
- removed most combos and all key overrides - implemented custom override for haptic and audio config - went back to older keymap (e.g. backspace and del on most layers) - reintroduced dedicated mouse button on thumb cluster - mouse button 2 is now a combo
49 lines
1 KiB
C
49 lines
1 KiB
C
#include "taphold.h"
|
|
|
|
|
|
void double_tap(uint16_t key, uint32_t ms) {
|
|
|
|
tap_code16(key);
|
|
wait_ms(ms);
|
|
tap_code16(key);
|
|
|
|
}
|
|
|
|
void insert_brackets(uint16_t left, uint16_t right, uint32_t ms) {
|
|
|
|
tap_code16(left);
|
|
wait_ms(ms);
|
|
tap_code16(right);
|
|
wait_ms(ms);
|
|
tap_code16(KC_LEFT);
|
|
|
|
}
|
|
|
|
bool process_tap_hold_key(keyrecord_t* record, uint16_t tap_keycode, uint16_t hold_keycode, int mode) {
|
|
|
|
if (record->tap.count > 0) { // Key is being tapped
|
|
|
|
// register on press, unregister on release
|
|
record->event.pressed ? register_code16(tap_keycode) : unregister_code16(tap_keycode);
|
|
|
|
} else { // Key is being held
|
|
|
|
switch (mode) {
|
|
|
|
case HOLD_BRACKETS:
|
|
record->event.pressed ? insert_brackets(tap_keycode, hold_keycode, TAP_CODE_DELAY) : 0;
|
|
break;
|
|
|
|
case HOLD_DOUBLETP:
|
|
record->event.pressed ? double_tap(tap_keycode, TAP_CODE_DELAY) : 0;
|
|
break;
|
|
|
|
default:
|
|
record->event.pressed ? register_code16(hold_keycode) : unregister_code16(hold_keycode);
|
|
break;
|
|
}
|
|
|
|
}
|
|
|
|
return false;
|
|
}
|