summaryrefslogtreecommitdiff
path: root/users/nstickney
diff options
context:
space:
mode:
Diffstat (limited to 'users/nstickney')
-rw-r--r--users/nstickney/nstickney.c44
-rw-r--r--users/nstickney/nstickney.h25
-rw-r--r--users/nstickney/rules.mk4
3 files changed, 73 insertions, 0 deletions
diff --git a/users/nstickney/nstickney.c b/users/nstickney/nstickney.c
new file mode 100644
index 0000000000..3e18e5c838
--- /dev/null
+++ b/users/nstickney/nstickney.c
@@ -0,0 +1,44 @@
+#include "nstickney.h"
+
+// Tap Dancing
+void dance_layer (qk_tap_dance_state_t *state, void *user_data) {
+ switch (state -> count) {
+ case 1: tap_code(KC_APP); break;
+ case 2: layer_invert(NUMP); break;
+ case 3: layer_invert(SYMB); break;
+ case 4: layer_invert(SYSH); break;
+ default: break;
+ }
+};
+
+void dance_lock_finished (qk_tap_dance_state_t *state, void *user_data) {
+ switch (state->count) {
+ case 1: register_code(KC_LGUI); break;
+ case 2: register_code(KC_NLCK); break;
+ case 3: register_code(KC_CAPS); break;
+ case 4: register_code(KC_SLCK); break;
+ default: break;
+ }
+};
+
+void dance_lock_reset (qk_tap_dance_state_t *state, void *user_data) {
+ switch (state->count) {
+ case 1: unregister_code(KC_LGUI); break;
+ case 2: unregister_code(KC_NLCK); break;
+ case 3: register_code(KC_CAPS); break;
+ case 4: register_code(KC_SLCK); break;
+ default: break;
+ }
+};
+
+qk_tap_dance_action_t tap_dance_actions[] = {
+ [LOCKS] = ACTION_TAP_DANCE_FN_ADVANCED(NULL, dance_lock_finished, dance_lock_reset),
+ [LAYERS] = ACTION_TAP_DANCE_FN(dance_layer)
+};
+
+void eeconfig_init_user (void) {
+ set_unicode_input_mode(UC_LNX); // Linux
+ //set_unicode_input_mode(UC_OSX); // Mac OSX
+ //set_unicode_input_mode(UC_WIN); // Windows (with registry key, see wiki)
+ //set_unicode_input_mode(UC_WINC); // Windows (with WinCompose, see wiki)
+}; \ No newline at end of file
diff --git a/users/nstickney/nstickney.h b/users/nstickney/nstickney.h
new file mode 100644
index 0000000000..d3f5a7c6fc
--- /dev/null
+++ b/users/nstickney/nstickney.h
@@ -0,0 +1,25 @@
+#include QMK_KEYBOARD_H
+
+#pragma once
+#define USE_SERIAL
+#define MASTER_LEFT
+
+#undef UNICODE_SELECTED_MODES
+#define UNICODE_SELECTED_MODES UC_OSX, UC_LNX, UC_WINC
+
+// Layers
+#define BASE 0 // Base layer
+#define SYMB 1 // Symbols
+#define SYSH 2 // Symbols, shifted
+#define NUMP 3 // Numpad
+#define FCTN 4 // Function
+
+// Make keymaps more clear
+#define CC_ESC LCTL_T(KC_ESC)
+#define CC_QUOT RCTL_T(KC_QUOT)
+#define AC_SLSH LALT_T(KC_SLSH)
+#define AC_EQL RALT_T(KC_EQL)
+#define FC_BSLS LT(FCTN, KC_BSLS)
+#define FC_MINS LT(FCTN, KC_MINS)
+
+enum tap_dances {LOCKS = 0, LAYERS = 1}; \ No newline at end of file
diff --git a/users/nstickney/rules.mk b/users/nstickney/rules.mk
new file mode 100644
index 0000000000..f52371c791
--- /dev/null
+++ b/users/nstickney/rules.mk
@@ -0,0 +1,4 @@
+SRC += nstickney.c
+
+TAP_DANCE_ENABLE = yes
+UNICODE_ENABLE = yes \ No newline at end of file