/* * user defined action function */ void action_function(keyrecord_t *record, uint8_t id, uint8_t opt) { keyevent_t event = record->event; tap_t tap = record->tap; switch (id) { case LSHIFT_LPAREN: // LShft + tap '(' // NOTE: cant use register_code to avoid conflicting with magic key bind if (event.pressed) { if (tap.count == 0 || tap.interrupted) { add_mods(MOD_BIT(KC_LSHIFT)); } else { host_add_mods(MOD_BIT(KC_LSHIFT)); host_add_key(KC_9); host_send_keyboard_report(); host_del_mods(MOD_BIT(KC_LSHIFT)); host_del_key(KC_9); host_send_keyboard_report(); } } else { if (tap.count == 0 || tap.interrupted) { del_mods(MOD_BIT(KC_LSHIFT)); } } break; case RSHIFT_RPAREN: // RShift + tap ')' if (event.pressed) { if (tap.count == 0 || tap.interrupted) { add_mods(MOD_BIT(KC_RSHIFT)); } else { host_add_mods(MOD_BIT(KC_RSHIFT)); host_add_key(KC_0); host_send_keyboard_report(); host_del_mods(MOD_BIT(KC_RSHIFT)); host_del_key(KC_0); host_send_keyboard_report(); } } else { if (tap.count == 0 || tap.interrupted) { del_mods(MOD_BIT(KC_RSHIFT)); } } break; } }
static void register_code(uint8_t code) { if IS_KEY(code) { if (!command_proc(code)) { host_add_key(code); host_send_keyboard_report(); } } else if IS_MOD(code) {