#include <fauxclicky.h>
#endif
+#ifndef TAP_HOLD_CAPS_DELAY
+# define TAP_HOLD_CAPS_DELAY 200
+#endif
/** \brief Called to execute an action.
*
* FIXME: Needs documentation.
/* Default Layer Bitwise Operation */
if (!event.pressed) {
uint8_t shift = action.layer_bitop.part*4;
- uint32_t bits = ((uint32_t)action.layer_bitop.bits)<<shift;
- uint32_t mask = (action.layer_bitop.xbit) ? ~(((uint32_t)0xf)<<shift) : 0;
+ layer_state_t bits = ((layer_state_t)action.layer_bitop.bits)<<shift;
+ layer_state_t mask = (action.layer_bitop.xbit) ? ~(((layer_state_t)0xf)<<shift) : 0;
switch (action.layer_bitop.op) {
case OP_BIT_AND: default_layer_and(bits | mask); break;
case OP_BIT_OR: default_layer_or(bits | mask); break;
case OP_BIT_XOR: default_layer_xor(bits | mask); break;
- case OP_BIT_SET: default_layer_and(mask); default_layer_or(bits); break;
+ case OP_BIT_SET: default_layer_set(bits | mask); break;
}
}
} else {
if (event.pressed ? (action.layer_bitop.on & ON_PRESS) :
(action.layer_bitop.on & ON_RELEASE)) {
uint8_t shift = action.layer_bitop.part*4;
- uint32_t bits = ((uint32_t)action.layer_bitop.bits)<<shift;
- uint32_t mask = (action.layer_bitop.xbit) ? ~(((uint32_t)0xf)<<shift) : 0;
+ layer_state_t bits = ((layer_state_t)action.layer_bitop.bits)<<shift;
+ layer_state_t mask = (action.layer_bitop.xbit) ? ~(((layer_state_t)0xf)<<shift) : 0;
switch (action.layer_bitop.op) {
case OP_BIT_AND: layer_and(bits | mask); break;
case OP_BIT_OR: layer_or(bits | mask); break;
case OP_BIT_XOR: layer_xor(bits | mask); break;
- case OP_BIT_SET: layer_and(mask); layer_or(bits); break;
+ case OP_BIT_SET: layer_state_set(bits | mask); break;
}
}
}
if (tap_count > 0) {
dprint("KEYMAP_TAP_KEY: Tap: unregister_code\n");
if (action.layer_tap.code == KC_CAPS) {
- wait_ms(80);
+ wait_ms(TAP_HOLD_CAPS_DELAY);
}
unregister_code(action.layer_tap.code);
} else {
action_macro_play(action_get_macro(record, action.func.id, action.func.opt));
break;
#endif
-#ifdef BACKLIGHT_ENABLE
+#if defined(BACKLIGHT_ENABLE) | defined(LED_MATRIX_ENABLE)
case ACT_BACKLIGHT:
if (!event.pressed) {
switch (action.backlight.opt) {
*/
void tap_code(uint8_t code) {
register_code(code);
+ if (code == KC_CAPS) {
+ wait_ms(TAP_HOLD_CAPS_DELAY);
+ }
#if TAP_CODE_DELAY > 0
+ else {
wait_ms(TAP_CODE_DELAY);
+ }
#endif
unregister_code(code);
}