qmk_userspace/users/t4corun/features/taphold.h
Victor ec97151d14
Fixing bugs and adding more tap holds
- Had the wrong mod order on symbol layer
- Rearranged the symbol layer to add UCCPR back
- Added more tap holds like \\, //, &&
- Removed pipe tap hold
2024-05-05 21:18:44 -05:00

45 lines
1.4 KiB
C

#pragma once
#include "t4corun.h"
void single_tap(uint16_t key, uint16_t altkey, bool isHold);
void double_tap(uint16_t key, uint16_t altkey, uint32_t ms);
void insert_brackets(uint16_t left, uint16_t right, uint32_t ms);
bool process_tap_hold_key(keyrecord_t* record, uint16_t keycode);
/* the first element is the alt key (tap action)
* the second is altkey (hold action usually)
*
* I was doing a switch statement to assign these each time, but this is faster
* and easier to maintain
*/
//Brackets: open and close brackets and put the cursor inside
#define TAPHOLD_LCBR KC_LCBR, KC_RCBR
#define TAPHOLD_LABK KC_LABK, KC_RABK
#define TAPHOLD_LBRC KC_LBRC, KC_RBRC
#define TAPHOLD_SQUO KC_QUOT, KC_QUOT
#define TAPHOLD_DQUO KC_DQUO, KC_DQUO
#define TAPHOLD_LPRN KC_LPRN, KC_RPRN
//double tap
#define TAPHOLD_EQL KC_EQL, KC_EQL
#define TAPHOLD_PLUS KC_PLUS, KC_PLUS
//#define TAPHOLD_PIPE KC_PIPE, KC_PIPE
#define TAPHOLD_BSLS KC_BSLS, KC_BSLS
#define TAPHOLD_SLSH KC_SLSH, KC_SLSH
#define TAPHOLD_AMPR KC_AMPR, KC_AMPR
//Custom: things like overriding default shifted key
#define TAPHOLD_COMM KC_COMM, KC_LPRN
#define TAPHOLD_DOT KC_DOT, KC_RPRN
#define TAPHOLD_PERC KC_PERC, KC_CIRC
#define TAPHOLD_EXLM KC_EXLM, KC_EXLM
#define TAPHOLD_NEQL KC_EXLM, KC_EQL
//auto shift
#define TAPHOLD_MINS KC_MINS, KC_UNDS
#define TAPHOLD_GRV KC_GRV, KC_TILD
#define TAPHOLD_SCLN KC_SCLN, KC_COLN
#define TAPHOLD_QUOT KC_QUOT, KC_DQUO