From 162dd3fe19a9c3bf15d63013bf51a49877de0bc9 Mon Sep 17 00:00:00 2001 From: hvp <32483282+hvpkod@users.noreply.github.com> Date: Wed, 16 Oct 2019 19:44:43 +0200 Subject: [Keymap] Corne keyap with tap dance Swedish support (#6857) * Adding profile for Corne with tap dance Swedish support. * Remove extern keymap_config_t keymap_config as no longer needed * Changed to use tap_code over register_code * Removed persistent_default_layer_set * Moved macros to hvp user space ink tap dance code * Removed not used functions * Moved to an ifbased include statement * Removed not needed characters --- users/hvp/tap_dances.c | 75 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 75 insertions(+) create mode 100644 users/hvp/tap_dances.c (limited to 'users/hvp/tap_dances.c') diff --git a/users/hvp/tap_dances.c b/users/hvp/tap_dances.c new file mode 100644 index 0000000000..bb102b30ab --- /dev/null +++ b/users/hvp/tap_dances.c @@ -0,0 +1,75 @@ +#include "tap_dances.h" + +// Tap dance function for enable swedish characters on first layer. Unregister to not let tap bleed over to next keypress. +// Tap dance 1 +void dance_1_finished(qk_tap_dance_state_t *state, void *user_data) { + if (state->count == 2) { + tap_code(KC_SCLN); + } else { + register_code(KC_RALT); + register_code(KC_O); + unregister_code(KC_RALT); + unregister_code(KC_O); + } +} + +void dance_1_reset(qk_tap_dance_state_t *state, void *user_data) { + if (state->count == 2) { + unregister_code(KC_SCLN); + } else { + unregister_code(KC_RALT); + unregister_code(KC_O); + } +} + +// Tap dance 2 +void dance_2_finished(qk_tap_dance_state_t *state, void *user_data) { + if (state->count == 2) { + tap_code(KC_QUOT); + } else { + register_code(KC_RALT); + register_code(KC_A); + unregister_code(KC_RALT); + unregister_code(KC_A); + } +} + +void dance_2_reset(qk_tap_dance_state_t *state, void *user_data) { + if (state->count == 2) { + unregister_code(KC_QUOT); + } else { + unregister_code(KC_RALT); + unregister_code(KC_A); + } +} + +// Tap dance 3 +void dance_3_finished(qk_tap_dance_state_t *state, void *user_data) { + // if (state->count == 2) + if (state->count == 2) { + tap_code(KC_SLSH); + } else { + register_code(KC_RALT); + register_code(KC_W); + unregister_code(KC_RALT); + unregister_code(KC_W); + } +} + +void dance_3_reset(qk_tap_dance_state_t *state, void *user_data) { + if (state->count == 2) { + unregister_code(KC_SLSH); + } else { + unregister_code(KC_RALT); + unregister_code(KC_W); + } +} + +// Tap Dance Definitions +qk_tap_dance_action_t tap_dance_actions[] = { + // simple tap dance + [TD1] = ACTION_TAP_DANCE_FN_ADVANCED(NULL, dance_1_finished, dance_1_reset), + + [TD2] = ACTION_TAP_DANCE_FN_ADVANCED(NULL, dance_2_finished, dance_2_reset), + + [TD3] = ACTION_TAP_DANCE_FN_ADVANCED(NULL, dance_3_finished, dance_3_reset)}; \ No newline at end of file -- cgit v1.2.3