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/hvp.c        |  2 ++
 users/hvp/hvp.h        |  6 ++++
 users/hvp/readme.md    |  1 +
 users/hvp/rules.mk     |  4 +++
 users/hvp/tap_dances.c | 75 ++++++++++++++++++++++++++++++++++++++++++++++++++
 users/hvp/tap_dances.h | 10 +++++++
 6 files changed, 98 insertions(+)
 create mode 100644 users/hvp/hvp.c
 create mode 100644 users/hvp/hvp.h
 create mode 100644 users/hvp/readme.md
 create mode 100644 users/hvp/rules.mk
 create mode 100644 users/hvp/tap_dances.c
 create mode 100644 users/hvp/tap_dances.h

(limited to 'users')

diff --git a/users/hvp/hvp.c b/users/hvp/hvp.c
new file mode 100644
index 0000000000..7e484535c8
--- /dev/null
+++ b/users/hvp/hvp.c
@@ -0,0 +1,2 @@
+
+#include "hvp.h"
diff --git a/users/hvp/hvp.h b/users/hvp/hvp.h
new file mode 100644
index 0000000000..2b2210f873
--- /dev/null
+++ b/users/hvp/hvp.h
@@ -0,0 +1,6 @@
+#pragma once
+
+#ifdef TAP_DANCE_ENABLE
+#    include "tap_dances.h"
+#endif
+#include "quantum.h"
diff --git a/users/hvp/readme.md b/users/hvp/readme.md
new file mode 100644
index 0000000000..2d8f9d8597
--- /dev/null
+++ b/users/hvp/readme.md
@@ -0,0 +1 @@
+Personal user space for hvpcode / cablegore at discord
diff --git a/users/hvp/rules.mk b/users/hvp/rules.mk
new file mode 100644
index 0000000000..0a7e679631
--- /dev/null
+++ b/users/hvp/rules.mk
@@ -0,0 +1,4 @@
+SRC += hvp.c
+ifeq ($(strip $(TAP_DANCE_ENABLE)), yes)
+    SRC += tap_dances.c
+endif
\ No newline at end of file
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
diff --git a/users/hvp/tap_dances.h b/users/hvp/tap_dances.h
new file mode 100644
index 0000000000..705985faac
--- /dev/null
+++ b/users/hvp/tap_dances.h
@@ -0,0 +1,10 @@
+#pragma once
+#include "hvp.h"
+
+// Tap Dance Declarations
+enum tapdance_id
+{
+  TD1 = 0,
+  TD2,
+  TD3
+};
-- 
cgit v1.2.3