You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 

28 lines
830 B

// Copyright 2022 Andrew Dunai (@and3rson)
// SPDX-License-Identifier: GPL-2.0-or-later
#include "quantum.h"
typedef enum taphold_mode_t {
TAPHOLD_LAYER,
TAPHOLD_MOD
} taphold_mode_t;
typedef struct taphold_t {
uint16_t key;
uint32_t time;
taphold_mode_t mode;
uint16_t shortAction;
uint16_t longAction;
keypos_t keypos;
/* We store key pos to properly release the key */
/* even when a different layer is active and the key has a different action now */
} taphold_t;
extern taphold_t taphold_config[];
extern uint16_t taphold_config_size;
/* Dual keys tap/hold timeout. */
/* If key is tapped for less than this value, send key in addition to primary action after completing the action. */
extern uint32_t taphold_timeout;
bool taphold_process(uint16_t keycode, keyrecord_t *record);