summary refs log tree commit diff
path: root/users
diff options
context:
space:
mode:
authorJames Smith <37446827+Klackygears@users.noreply.github.com>2020-06-28 07:07:57 -0400
committerGitHub <noreply@github.com>2020-06-28 12:07:57 +0100
commitd36d5ecfad3ea32c11fbf4a251cea7e25caafc28 (patch)
tree9d2c22db777861430aff53ac8c3b9fc9a85a1c4b /users
parent7baeaae9bb92b9501d4bb73149bbed28ad25446b (diff)
Klackygears add user and handwired brain (#9154)
Co-authored-by: Ryan <fauxpark@gmail.com>
Co-authored-by: Erovia <Erovia@users.noreply.github.com>
Diffstat (limited to 'users')
-rw-r--r--users/klackygears/klackygears.c75
-rw-r--r--users/klackygears/klackygears.h72
-rw-r--r--users/klackygears/readme.md15
-rw-r--r--users/klackygears/rules.mk6
-rw-r--r--users/klackygears/tap_dances.c184
-rw-r--r--users/klackygears/tap_dances.h37
-rw-r--r--users/klackygears/wrappers.h220
7 files changed, 609 insertions, 0 deletions
diff --git a/users/klackygears/klackygears.c b/users/klackygears/klackygears.c
new file mode 100644
index 0000000000..2e7533eb16
--- /dev/null
+++ b/users/klackygears/klackygears.c
@@ -0,0 +1,75 @@
+#include "klackygears.h"
+
+bool process_record_user(uint16_t keycode, keyrecord_t *record) {
+    /*
+     if (!process_record_dynamic_macro(keycode, record)) {
+            return false;
+        }
+    */
+    switch (keycode) {
+        case KC_MACBASE:
+            if (record->event.pressed) {
+                set_single_persistent_default_layer(_MACBASE);
+            }
+            break;
+
+        case KC_QWERTY:
+            if (record->event.pressed) {
+                set_single_persistent_default_layer(_QWERTY);
+            }
+            break;
+
+        case KC_WINBASE:
+            if (record->event.pressed) {
+                set_single_persistent_default_layer(_WINBASE);
+            }
+            break;
+
+        case KC_GAMER:
+            if (record->event.pressed) {
+                set_single_persistent_default_layer(_GAMER);
+            }
+            break;
+
+        case KC_GAMR1:
+            if (record->event.pressed) {
+                set_single_persistent_default_layer(_GAMR1);
+            }
+            break;
+
+        case KC_GAMR2:
+            if (record->event.pressed) {
+                set_single_persistent_default_layer(_GAMR2);
+            }
+            break;
+        case RGBRST:
+#ifdef RGBLIGHT_ENABLE
+            if (record->event.pressed) {
+                eeconfig_update_rgblight_default();
+                rgblight_enable();
+            }
+#endif
+            break;
+
+        case MAKEK:
+            if (record->event.pressed) {
+                SEND_STRING("make " QMK_KEYBOARD ":" QMK_KEYMAP);
+            }
+            break;
+
+        case MAKEKF:
+            if (!record->event.pressed) {
+                SEND_STRING("make " QMK_KEYBOARD ":" QMK_KEYMAP ":flash");
+            }
+
+            break;
+
+        case SHRUG:
+            if (record->event.pressed) {
+                SEND_STRING(":Shrug:");
+            }
+            break;
+    }
+
+    return true;
+}
diff --git a/users/klackygears/klackygears.h b/users/klackygears/klackygears.h
new file mode 100644
index 0000000000..69f3279e2f
--- /dev/null
+++ b/users/klackygears/klackygears.h
@@ -0,0 +1,72 @@
+#pragma once
+
+#include QMK_KEYBOARD_H
+
+#include "wrappers.h"
+#include "eeprom.h"
+#ifdef TAP_DANCE_ENABLE
+  #include "tap_dances.h"
+#endif // TAP_DANCE_ENABLE
+
+enum layer_number {
+    _WINBASE = 0,
+    _MACBASE,
+    _QWERTY,
+    _GAMER,
+    _GAMR1,
+    _GAMR2,
+    _NGMR,
+    _NUMB,
+    _MNMB,
+    _SYMB,
+    _FUNC,
+    _MDIA,
+    _MEME
+};
+
+enum userspace_custom_keycodes {
+  KC_MACBASE = SAFE_RANGE,
+  KC_QWERTY,
+  KC_WINBASE,
+  KC_GAMER,
+  KC_GAMR1,
+  KC_GAMR2,
+  NUMB,
+  MNMB,
+  SYMB,
+  FUNC,
+  MDIA,
+  RGBRST,
+  MAKEK,
+  MAKEKF,
+  SHRUG,
+  //DYNAMIC_MACRO_RANGE,
+  SAFE_RANGE_KEYMAP
+};
+
+
+/*
+#ifdef UNICODEMAP_ENABLE
+enum unicode_names {
+  BANG,
+  IRONY,
+  SNEK,
+};
+
+const uint32_t PROGMEM unicode_map[] = {
+  [BANG]  = 0x203D,  // ‽
+  [IRONY] = 0x2E2E,  // ⸮
+  [SNEK]  = 0x1F40D, // 🐍
+};
+#endif // UNICODEMAP_ENABLE
+*/
+
+
+//#include "dynamic_macro.h"
+
+
+
+#if RGBLIGHT_ENABLE
+uint8_t RGB_current_mode;
+
+#endif
diff --git a/users/klackygears/readme.md b/users/klackygears/readme.md
new file mode 100644
index 0000000000..d00d9a17c0
--- /dev/null
+++ b/users/klackygears/readme.md
@@ -0,0 +1,15 @@
+Copyright<2019><James Smith><bronzegears@gmail.com> @klackygears
+
+This program is free software : you can redistribute it and /or modify it under 
+the terms of the GNU General Public License as published by the Free Software Foundation,
+either version 2 of the License, or (at your option) any later version.
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program.  If not, see <http://www.gnu.org/licenses/>.
+
+
+Most of what I have here was copied and modified from drashna. If it looks a bit messy it's because I'm a total noob and trying to push myself to learn new things.
diff --git a/users/klackygears/rules.mk b/users/klackygears/rules.mk
new file mode 100644
index 0000000000..82b2233f12
--- /dev/null
+++ b/users/klackygears/rules.mk
@@ -0,0 +1,6 @@
+SRC += klackygears.c
+
+
+ifeq ($(strip $(TAP_DANCE_ENABLE)), yes)
+  SRC += tap_dances.c
+endif
\ No newline at end of file
diff --git a/users/klackygears/tap_dances.c b/users/klackygears/tap_dances.c
new file mode 100644
index 0000000000..af4f187fcc
--- /dev/null
+++ b/users/klackygears/tap_dances.c
@@ -0,0 +1,184 @@
+#include "tap_dances.h"
+
+/*
+void macroTogKey(qk_tap_dance_state_t *state, void *user_data) {
+  keyrecord_t kr;
+
+  if (state->count == 1)
+  {
+    kr.event.pressed = false;
+    process_record_dynamic_macro( DYN_MACRO_PLAY1, &kr );
+  }
+  else if (state->count == 2)
+  {
+    kr.event.pressed = true;
+    process_record_dynamic_macro( DYN_REC_STOP, &kr );
+  }
+  else if (state->count == 3)
+  {
+    kr.event.pressed = false;
+    process_record_dynamic_macro( DYN_REC_START1, &kr );
+  }
+}
+
+void macroTogKey2(qk_tap_dance_state_t *state, void *user_data) {
+  keyrecord_t kr;
+
+  if (state->count == 1)
+  {
+    kr.event.pressed = false;
+    process_record_dynamic_macro( DYN_MACRO_PLAY2, &kr );
+  }
+  else if (state->count == 2)
+  {
+    kr.event.pressed = true;
+    process_record_dynamic_macro( DYN_REC_STOP, &kr );
+  }
+  else if (state->count == 3)
+  {
+    kr.event.pressed = false;
+    process_record_dynamic_macro( DYN_REC_START2, &kr );
+  }
+}
+*/
+
+void pstinsrt(qk_tap_dance_state_t *state, void *user_data) {
+    if (state->count > 1) {
+        register_code(KC_LALT);
+        tap_code(KC_I);
+        tap_code(KC_E);
+        unregister_code(KC_LALT);
+    } else {
+        tap_code16(C(KC_V));
+    }
+    reset_tap_dance(state);
+}
+
+void ccopy(qk_tap_dance_state_t *state, void *user_data) {
+    if (state->count > 1) {
+        tap_code16(C(KC_X));
+
+        // SEND_STRING( SS_DOWN(KC_LCTL) SS_TAP(KC_X) SS_UP(KC_LCTL));
+    } else {
+        tap_code16(C(KC_C));
+    }
+    reset_tap_dance(state);
+}
+
+void pstspecial(qk_tap_dance_state_t *state, void *user_data) {
+    if (state->count > 1) {
+        register_code(KC_LALT);
+        tap_code(KC_E);
+        tap_code(KC_S);
+        unregister_code(KC_LALT);
+        tap_code(KC_V);
+    } else {
+        register_code(KC_LALT);
+        tap_code(KC_E);
+        tap_code(KC_S);
+        unregister_code(KC_LALT);
+        tap_code(KC_T);
+    }
+    reset_tap_dance(state);
+}
+
+void deldel(qk_tap_dance_state_t *state, void *user_data) {
+    if (state->count > 1) {
+        register_code(KC_LALT);
+        tap_code(KC_E);
+        tap_code(KC_D);
+        unregister_code(KC_LALT);
+    } else {
+        tap_code(KC_DEL);
+    }
+    reset_tap_dance(state);
+}
+
+void findreplace(qk_tap_dance_state_t *state, void *user_data) {
+    if (state->count > 1) {
+        tap_code16(C(KC_H));
+    } else {
+        tap_code16(C(KC_F));
+    }
+    reset_tap_dance(state);
+}
+
+void cyclawin(qk_tap_dance_state_t *state, void *user_data) {
+    if (state->count > 1) {
+        tap_code16(C(S(KC_F6)));
+    } else {
+        tap_code16(C(KC_F6));
+    }
+    reset_tap_dance(state);
+}
+
+void SCRNSNP(qk_tap_dance_state_t *state, void *user_data) {
+    if (state->count > 1) {
+        tap_code16(A(KC_PSCR));
+    } else {
+        tap_code(KC_LGUI);
+        tap_code(KC_S);
+        tap_code(KC_N);
+        tap_code16(C(KC_N));
+    }
+    reset_tap_dance(state);
+}
+
+void mcccpy(qk_tap_dance_state_t *state, void *user_data) {
+    if (state->count > 1) {
+        tap_code16(G(KC_X));
+    } else {
+        tap_code16(G(KC_C));
+    }
+    reset_tap_dance(state);
+}
+
+void mcpstin(qk_tap_dance_state_t *state, void *user_data) {
+    if (state->count > 1) {
+        tap_code16(G(KC_I));
+    } else {
+        tap_code16(G(KC_V));
+    }
+    reset_tap_dance(state);
+}
+
+void enttab(qk_tap_dance_state_t *state, void *user_data) {
+    if (state->count > 1) {
+        tap_code(KC_ENT);
+    } else {
+        tap_code(KC_TAB);
+    }
+    reset_tap_dance(state);
+}
+
+void rgb_toggle(qk_tap_dance_state_t *state, void *user_data) {
+#ifdef RGBLIGHT_ENABLE
+    if (state->count == 1) {
+        rgblight_step();
+    } else {
+        rgblight_increase_hue();
+    }
+#endif
+}
+
+// Tap Dance Definitions
+qk_tap_dance_action_t tap_dance_actions[] = {
+    [TD_PSTI] = ACTION_TAP_DANCE_FN(pstinsrt),
+    [TD_PTSP] = ACTION_TAP_DANCE_FN(pstspecial),
+    [TD_FNDR] = ACTION_TAP_DANCE_FN(findreplace),
+    [TD_CCPY] = ACTION_TAP_DANCE_FN(ccopy),
+    [TD_DDEL] = ACTION_TAP_DANCE_FN(deldel),
+    [TD_ACCW] = ACTION_TAP_DANCE_FN(cyclawin),
+    [TD_CAPESC] = ACTION_TAP_DANCE_DOUBLE(KC_ESC, KC_CAPS),
+    [TD_DTEX] = ACTION_TAP_DANCE_DOUBLE(KC_DOT, KC_EXLM),
+    [TD_COMQUES] = ACTION_TAP_DANCE_DOUBLE(KC_COMM, KC_QUES),
+    [TD_MINPLS] = ACTION_TAP_DANCE_DOUBLE(KC_PMNS, KC_PPLS),
+    [TD_DIVMLT] = ACTION_TAP_DANCE_DOUBLE(KC_PSLS, KC_PAST),
+    [TD_DOTEQL] = ACTION_TAP_DANCE_DOUBLE(KC_DOT, KC_EQL),
+    [TD_SCNSP] = ACTION_TAP_DANCE_FN(SCRNSNP),
+    [TD_MCCCPY] = ACTION_TAP_DANCE_FN(mcccpy),
+    [TD_MCPSTIN] = ACTION_TAP_DANCE_FN(mcpstin),
+    [TD_ENTAB] = ACTION_TAP_DANCE_FN(enttab),
+    [TD_XSPC] = ACTION_TAP_DANCE_DOUBLE(KC_SPACE, KC_X),
+    [TD_RGB] = ACTION_TAP_DANCE_FN_ADVANCED(NULL, rgb_toggle, NULL)
+};
diff --git a/users/klackygears/tap_dances.h b/users/klackygears/tap_dances.h
new file mode 100644
index 0000000000..66c2c48c91
--- /dev/null
+++ b/users/klackygears/tap_dances.h
@@ -0,0 +1,37 @@
+#pragma once
+#include "klackygears.h"
+
+#ifdef TAP_DANCE_ENABLE
+enum {
+    // TD_MCROTOG,
+    // TD_MCROTG2,
+    TD_BTK,
+    TD_TDE,
+    TD_LPRN,
+    TD_RPRN,
+    TD_MIN,
+    TD_USC,
+    TD_CMWN,
+    TD_ATSH,
+    TD_PSTI,
+    TD_PTSP,
+    TD_FNDR,
+    TD_CCPY,
+    TD_DDEL,
+    TD_ACCW,
+    TD_CAPESC,
+    TD_DTEX,
+    TD_COMQUES,
+    TD_MINPLS,
+    TD_DIVMLT,
+    TD_DOTEQL,
+    TD_LSHSYM,
+    TD_RSHSYM,
+    TD_SCNSP,
+    TD_MCCCPY,
+    TD_MCPSTIN,
+    TD_ENTAB,
+    TD_XSPC,
+    TD_RGB,
+};
+#endif
diff --git a/users/klackygears/wrappers.h b/users/klackygears/wrappers.h
new file mode 100644
index 0000000000..88cbae1849
--- /dev/null
+++ b/users/klackygears/wrappers.h
@@ -0,0 +1,220 @@
+#pragma once
+#include "klackygears.h"
+/*
+Most of this is copied from drashna. I added and changed a few things but, it's all based off of his user folder.
+*/
+#if (!defined(LAYOUT) && defined(KEYMAP))
+#define LAYOUT KEYMAP
+#endif
+
+//Added other layout options
+#define LAYOUT_ergodox_wrapper(...)          LAYOUT_ergodox(__VA_ARGS__)
+#define LAYOUT_ergodox_pretty_wrapper(...)   LAYOUT_ergodox_pretty(__VA_ARGS__)
+#define KEYMAP_wrapper(...)                  LAYOUT(__VA_ARGS__)
+#define LAYOUT_wrapper(...)                  LAYOUT(__VA_ARGS__)
+#define LAYOUT_ortho_4x12_wrapper(...)       LAYOUT_ortho_4x12(__VA_ARGS__)
+#define LAYOUT_ortho_5x10_wrapper(...)       LAYOUT_ortho_5x10(__VA_ARGS__)
+#define LAYOUT_ortho_5x5_wrapper(...)        LAYOUT_ortho_5x5(__VA_ARGS__)
+
+
+/*
+NOTE: If you do a search/replace
+  then you need to add/remove underscores to keep the
+  lengths consistent.
+*/
+//keymaps for tap dance and without
+#ifdef TAP_DANCE_ENABLE
+  #define _________________QWERTY_L1_________________        KC_Q,    KC_W,    KC_E,    KC_R,    KC_T
+  #define _________________QWERTY_L2_________________        KC_A,    KC_S,    KC_D,    KC_F,    KC_G
+  #define _________________QWERTY_L3_________________        KC_Z,    KC_X,    KC_C,    KC_V,    KC_B
+
+  #define _________________QWERTY_R1_________________        KC_Y,    KC_U,    KC_I,           KC_O,        KC_P
+  #define _________________QWERTY_R2_________________        KC_H,    KC_J,    KC_K,           KC_L,        KC_SCLN
+  #define _________________QWERTY_R3_________________        KC_N,    KC_M,    TD(TD_COMQUES), TD(TD_DTEX), LT(_MDIA,KC_SLASH)
+
+
+  #define _________________COLEMAK_L1________________        KC_Q,    KC_W,    KC_F,    KC_P,    KC_G
+  #define _________________COLEMAK_L2________________        KC_A,    KC_R,    KC_S,    KC_T,    KC_D
+  #define _________________COLEMAK_L3________________        KC_Z,    KC_X,    KC_C,    KC_V,    KC_B
+
+  #define _________________COLEMAK_R1________________        KC_J,    KC_L,    KC_U,           KC_Y,        KC_SCLN
+  #define _________________COLEMAK_R2________________        KC_H,    KC_N,    KC_E,           KC_I,        KC_O
+  #define _________________COLEMAK_R3________________        KC_K,    KC_M,    TD(TD_COMQUES), TD(TD_DTEX), KC_SLASH
+/*
+  #define ______________COLEMAK_MOD_DH_L1____________        KC_Q,    KC_W,    KC_F,    KC_P,    KC_B
+  #define ______________COLEMAK_MOD_DH_L2____________        KC_A,    KC_R,    KC_S,    KC_T,    KC_G
+  #define ______________COLEMAK_MOD_DH_L3____________        KC_Z,    KC_X,    KC_C,    KC_D,    KC_V
+
+  #define ______________COLEMAK_MOD_DH_R1____________        KC_J,    KC_L,    KC_U,    KC_Y,    KC_SCLN
+  #define ______________COLEMAK_MOD_DH_R2____________        KC_M,    KC_N,    KC_E,    KC_I,    KC_O
+  #define ______________COLEMAK_MOD_DH_R3____________        KC_K,    KC_H,    KC_COMM, KC_DOT,  KC_SLASH
+*/
+
+  #define _______________DVORAK_L1___________________        KC_QUOT,              TD(TD_COMQUES),    TD(TD_DTEX),        KC_P, KC_Y
+  #define _______________DVORAK_L2___________________        KC_A,                 KC_O,              KC_E,               KC_U, KC_I
+  #define _______________MACDVK_L3___________________        MT(MOD_LCTL,KC_SCLN), MT(MOD_LALT,KC_Q), MT(MOD_LGUI, KC_J), KC_K, KC_X
+  #define _______________WINDVK_L3___________________        MT(MOD_LGUI,KC_SCLN), MT(MOD_LALT,KC_Q), MT(MOD_LCTL, KC_J), KC_K, KC_X
+
+  #define _______________DVORAK_R1___________________        KC_F,       KC_G,       KC_C,              KC_R,              KC_L
+  #define _______________DVORAK_R2___________________        KC_D,       KC_H,       KC_T,              KC_N,              KC_S
+  #define _______________MACDVK_R3___________________        KC_B,       KC_M,       MT(MOD_LGUI,KC_W), MT(MOD_LALT,KC_V), LT(_MDIA,KC_Z)
+  #define _______________WINDVK_R3___________________        KC_B,       KC_M,       MT(MOD_LCTL,KC_W), MT(MOD_LALT,KC_V), LT(_MDIA,KC_Z)
+
+  #define __________c39__MACDVK_L3___________________        MT(MOD_LCTL,KC_SCLN), MT(MOD_LALT,KC_Q), MT(MOD_LGUI, KC_J), LT(_SYMB,KC_K), TD(TD_XSPC)
+  #define __________c39__WINDVK_L3___________________        MT(MOD_LGUI,KC_SCLN), MT(MOD_LALT,KC_Q), MT(MOD_LCTL, KC_J), LT(_SYMB,KC_K), TD(TD_XSPC)
+  #define __________c39__MACDVK_R3___________________        LT(_MNMB,KC_B),       LT(_SYMB,KC_M),    MT(MOD_LGUI,KC_W),  MT(MOD_LALT,KC_V), LT(_MDIA,KC_Z)
+  #define __________c39__WINDVK_R3___________________        LT(_NUMB,KC_B),       LT(_SYMB,KC_M),    MT(MOD_LCTL,KC_W),  MT(MOD_LALT,KC_V), LT(_MDIA,KC_Z)
+#else
+
+  #define _________________QWERTY_L1_________________        KC_Q,    KC_W,    KC_E,    KC_R,    KC_T
+  #define _________________QWERTY_L2_________________        KC_A,    KC_S,    KC_D,    KC_F,    KC_G
+  #define _________________QWERTY_L3_________________        KC_Z,    KC_X,    KC_C,    KC_V,    KC_B
+
+  #define _________________QWERTY_R1_________________        KC_Y,    KC_U,    KC_I,           KC_O,        KC_P
+  #define _________________QWERTY_R2_________________        KC_H,    KC_J,    KC_K,           KC_L,        KC_SCLN
+  #define _________________QWERTY_R3_________________        KC_N,    KC_M,    KC_COMM, KC_DOT, LT(_MDIA,KC_SLASH)
+
+
+  #define _________________COLEMAK_L1________________        KC_Q,    KC_W,    KC_F,    KC_P,    KC_G
+  #define _________________COLEMAK_L2________________        KC_A,    KC_R,    KC_S,    KC_T,    KC_D
+  #define _________________COLEMAK_L3________________        KC_Z,    KC_X,    KC_C,    KC_V,    KC_B
+
+  #define _________________COLEMAK_R1________________        KC_J,    KC_L,    KC_U,           KC_Y,        KC_SCLN
+  #define _________________COLEMAK_R2________________        KC_H,    KC_N,    KC_E,           KC_I,        KC_O
+  #define _________________COLEMAK_R3________________        KC_K,    KC_M,    KC_COMM, KC_DOT, KC_SLASH
+
+  #define _______________DVORAK_L1___________________        KC_QUOT,              KC_COMM,    KC_DOT,        KC_P, KC_Y
+  #define _______________DVORAK_L2___________________        KC_A,                 KC_O,              KC_E,               KC_U, KC_I
+  #define _______________MACDVK_L3___________________        MT(MOD_LCTL,KC_SCLN), MT(MOD_LALT,KC_Q), MT(MOD_LGUI, KC_J), KC_K, KC_X
+  #define _______________WINDVK_L3___________________        MT(MOD_LGUI,KC_SCLN), MT(MOD_LALT,KC_Q), MT(MOD_LCTL, KC_J), KC_K, KC_X
+
+  #define _______________DVORAK_R1___________________        KC_F,       KC_G,       KC_C,              KC_R,              KC_L
+  #define _______________DVORAK_R2___________________        KC_D,       KC_H,       KC_T,              KC_N,              KC_S
+  #define _______________MACDVK_R3___________________        KC_B,       KC_M,       MT(MOD_LGUI,KC_W), MT(MOD_LALT,KC_V), LT(_MDIA,KC_Z)
+  #define _______________WINDVK_R3___________________        KC_B,       KC_M,       MT(MOD_LCTL,KC_W), MT(MOD_LALT,KC_V), LT(_MDIA,KC_Z)
+#endif
+
+/*
+#define ________________DVORAK_AU_L1_______________        KC_QUOT, KC_COMM, KC_DOT, KC_P,     KC_Y
+#define ________________DVORAK_AU_L2_______________        KC_O,    KC_A,    KC_E,   KC_I,     KC_U
+#define ________________DVORAK_AU_L3_______________        KC_SCLN, KC_Q,    KC_J,   KC_K,     KC_X
+
+#define ________________DVORAK_AU_R1_______________        KC_F,    KC_G,    KC_C,    KC_R,    KC_L
+#define ________________DVORAK_AU_R2_______________        KC_D,    KC_H,    KC_T,    KC_N,    KC_S
+#define ________________DVORAK_AU_R3_______________        KC_B,    KC_M,    KC_W,    KC_V,    KC_Z
+
+
+#define _________________WORKMAN_L1________________        KC_Q,    KC_D,    KC_R,   KC_W,     KC_B
+#define _________________WORKMAN_L2________________        KC_A,    KC_S,    KC_H,   KC_T,     KC_G
+#define _________________WORKMAN_L3________________        KC_Z,    KC_X,    KC_M,   KC_C,     KC_V
+
+#define _________________WORKMAN_R1________________        KC_J,    KC_F,    KC_U,           KC_P,        KC_SCLN
+#define _________________WORKMAN_R2________________        KC_Y,    KC_N,    KC_E,           KC_O,        KC_I
+#define _________________WORKMAN_R3________________        KC_K,    KC_L,    TD(TD_COMQUES), TD(TD_DTEX), KC_SLASH
+
+
+#define _________________NORMAN_L1_________________       KC_Q,    KC_W,    KC_D,    KC_F,    KC_K
+#define _________________NORMAN_L2_________________       KC_A,    KC_S,    KC_E,    KC_T,    KC_G
+#define _________________NORMAN_L3_________________       KC_Z,    KC_X,    KC_C,    KC_V,    KC_B
+
+#define _________________NORMAN_R1_________________       KC_J,    KC_U,    KC_R,    KC_L,    KC_SCLN
+#define _________________NORMAN_R2_________________       KC_Y,    KC_N,    KC_I,    KC_O,    KC_U
+#define _________________NORMAN_R3_________________       KC_P,    KC_M,    KC_COMM, KC_DOT,  KC_SLASH
+*/
+
+// thumb key layouts
+#define ________WIN_THUMB_CLUSTER_________                LT(_SYMB,KC_SPC), LT(_NUMB,KC_BSPC), LT(_NUMB,KC_TAB), LT(_SYMB,KC_ENT)
+#define ________MAC_THUMB_CLUSTER_________                LT(_SYMB,KC_SPC), LT(_MNMB,KC_BSPC), LT(_MNMB,KC_TAB), LT(_SYMB,KC_ENT)
+
+#define __________________WIN_THUMB_CLUSTER_V2______________ LT(_FUNC,KC_ENT), LT(_NUMB,KC_BSPC), MT(MOD_LSFT,KC_SPC), LT(_NUMB,KC_TAB), LT(_SYMB,KC_ENT), KC_RSFT
+#define __________________MAC_THUMB_CLUSTER_V2______________ LT(_FUNC,KC_ENT), LT(_MNMB,KC_BSPC), MT(MOD_LSFT,KC_SPC), LT(_MNMB,KC_TAB), LT(_SYMB,KC_ENT), KC_RSFT
+#define ________MAC_THUMB_L______                            LT(_FUNC,KC_ENT), LT(_MNMB,KC_BSPC), MT(MOD_LSFT,KC_SPC)
+#define ________MAC_THUMB_R______                            LT(_MNMB,KC_TAB), LT(_SYMB,KC_ENT),    LT(_MDIA,KC_ENT)
+#define ________WIN_THUMB_L______                            LT(_FUNC,KC_ENT), LT(_NUMB,KC_BSPC), MT(MOD_LSFT,KC_SPC)
+#define ________WIN_THUMB_R______                            LT(_NUMB,KC_TAB), LT(_SYMB,KC_ENT),    LT(_MDIA,KC_ENT)
+
+// Mission Control Commands
+#define ________MAC_MISSION_CTRL__________                LCTL(KC_LEFT),    LCTL(KC_UP),       LCTL(KC_DOWN),    LCTL(KC_RGHT)
+
+//Number Row
+#define _________________NUMBER_L__________________       KC_1,    KC_2,    KC_3,    KC_4,    KC_5
+#define _________________NUMBER_R__________________       KC_6,    KC_7,    KC_8,    KC_9,    KC_0
+
+//keymaps for tap dance and without
+#ifdef TAP_DANCE_ENABLE
+//Arrow keys and copy-paste shortcuts for MAC OS
+  #define _________________MACNAV_L1_________________       KC_PGUP,    KC_PGDN,    KC_HOME,       KC_END,         _______
+  #define _________________MACNAV_L2_________________       KC_LEFT,    KC_UP,      KC_DOWN,       KC_RIGHT,       _______
+  #define _________________MACNAV_L3_________________       _______,    LGUI(KC_A), TD(TD_MCCCPY), TD(TD_MCPSTIN), KC_DEL
+
+//Arrow keys and copy-paste shortcuts for Windows and Microsoft Access & Excel
+  #define _________________WINNAV_L1_________________       KC_PGUP,     KC_PGDN,    KC_HOME,     KC_END,      TD(TD_FNDR)
+  #define _________________WINNAV_L2_________________       KC_LEFT,     KC_UP,      KC_DOWN,     KC_RIGHT,    TD(TD_PTSP)
+  #define _________________WINNAV_L3_________________       TD(TD_ACCW), LCTL(KC_A), TD(TD_CCPY), TD(TD_PSTI), TD(TD_DDEL)
+
+//Numpad layout with different mod-tap keys for MAC OS and Windows
+  #define _________________NUMB_R1___________________       TD(TD_MINPLS), KC_7, KC_8,              KC_9,              KC_COLN
+  #define _________________NUMB_R2___________________       TD(TD_DIVMLT), KC_4, KC_5,              KC_6,              C_S_T(KC_COLN)
+  #define _________________NUMB_R3_MAC_______________       TD(TD_DOTEQL), KC_1, MT(MOD_LGUI,KC_2), MT(MOD_LALT,KC_3), MT(MOD_LCTL,KC_0)
+  #define _________________NUMB_R3_WIN_______________       TD(TD_DOTEQL), KC_1, MT(MOD_LCTL,KC_2), MT(MOD_LALT,KC_3), MT(MOD_LGUI,KC_0)
+  #define _________________NUMB_R4___________________       KC_LSFT,       KC_0, KC_0,              _______,           _______
+#else
+//Arrow keys and copy-paste shortcuts for MAC OS
+  #define _________________MACNAV_L1_________________       KC_PGUP,    KC_PGDN,    KC_HOME,       KC_END,         _______
+  #define _________________MACNAV_L2_________________       KC_LEFT,    KC_UP,      KC_DOWN,       KC_RIGHT,       _______
+  #define _________________MACNAV_L3_________________       _______,    LGUI(KC_A), _______,       _______, KC_DEL
+
+//Arrow keys and copy-paste shortcuts for Windows and Microsoft Access & Excel
+  #define _________________WINNAV_L1_________________       KC_PGUP,     KC_PGDN,    KC_HOME,     KC_END,      _______
+  #define _________________WINNAV_L2_________________       KC_LEFT,     KC_UP,      KC_DOWN,     KC_RIGHT,    _______
+  #define _________________WINNAV_L3_________________       _______,     _______,    _______,     _______,     _______
+  #define _________________NUMB_R1___________________       KC_PMNS,       KC_7, KC_8,              KC_9,              KC_PPLS
+  #define _________________NUMB_R2___________________       KC_PSLS,       KC_4, KC_5,              KC_6,              KC_PAST
+  #define _________________NUMB_R3_MAC_______________       KC_DOT,        KC_1, MT(MOD_LGUI,KC_2), MT(MOD_LALT,KC_3), MT(MOD_LCTL,KC_0)
+  #define _________________NUMB_R3_WIN_______________       KC_DOT,        KC_1, MT(MOD_LCTL,KC_2), MT(MOD_LALT,KC_3), MT(MOD_LGUI,KC_0)
+  #define _________________NUMB_R4___________________       KC_LSFT,       KC_0, KC_0,              _______,           _______
+#endif
+
+//Function Row
+/*
+#define _________________FUNC_LEFT_________________       KC_F1,   KC_F2,   KC_F3,   KC_F4,   KC_F5
+#define _________________FUNC_RIGHT________________       KC_F6,   KC_F7,   KC_F8,   KC_F9,   KC_F10
+*/
+
+//Function keys as macropad
+#define _____________FUNC_1_______________                KC_F9,      KC_F10,     KC_F11,     KC_F12
+#define _____________FUNC_2_______________                KC_F5,      KC_F6,      KC_F7,      KC_F8
+#define _____________FUNC_3_______________                KC_F1,      KC_F2,      KC_F3,      KC_F4
+
+//RGB keys
+#if defined RGBLIGHT_ENABLE || defined RGB_MATRIX_ENABLE
+#define _________________RGB_1_____________________       RGBRST,     RGB_HUI,    RGB_SAI,    RGB_VAI,    RGB_SPI
+#define _________________RGB_2_____________________       RGB_MOD,    RGB_HUD,    RGB_SAD,    RGB_VAD,    RGB_SPD
+#else
+#define _________________RGB_1_____________________       _______,    _______,    _______,    _______,    _______
+#define _________________RGB_2_____________________       _______,    _______,    _______,    _______,    _______
+#endif
+
+//Audio keys
+#define _________________MEDIA_____________________       KC_MPLY,    KC_MUTE,     KC_VOLD,      KC_VOLU,     _______
+#define _________________MEDIA_V2__________________       KC_EJCT,    KC_MRWD,     KC_MPLY,      KC_MFFD,     _______
+
+//Base layer keys
+#define _________________LYOUT_____________________       _______,    KC_QWERTY,   KC_MACBASE,   KC_WINBASE,  _______
+
+//Punctuation keys
+#define _________________PUNC_L1___________________       KC_BSLS,    KC_AT,      KC_HASH,    KC_DLR,     KC_PERC
+#define _________________PUNC_L1_ALT_______________       KC_DQT,     KC_AT,      KC_HASH,    KC_DLR,     KC_PERC
+#define _________________PUNC_L2___________________       KC_PLUS,    KC_MINS,    KC_ASTR,    KC_SLSH,    KC_EQL
+#define _________________PUNC_L3___________________       KC_LBRC,    KC_RBRC,    KC_LPRN,    KC_RPRN,    KC_AMPR
+#define _________________PUNC_L3_ALT_______________       _______,    _______,    KC_TILD,    KC_CIRC,    KC_GRV
+#define _________________PUNC_R1___________________       _______, KC_DQT,  KC_EQL,  _______, _______
+#define _________________PUNC_R2___________________       _______, KC_ASTR, KC_SLSH, KC_PLUS, KC_MINS
+#define _________________PUNC_R3___________________       _______, KC_EQL,  KC_BSLS, _______, _______
+
+//Make Shortcuts and window switching
+#define _____________FUNC_L1_______________________       MAKEKF,   MAKEK,   _______, KC_ESC,  LCTL(LALT(KC_DEL))
+#define _____________FUNC_L3_______________________       KC_LGUI, KC_RALT, KC_LCTL, KC_TAB,  _______
+
+
+#define _________________KC_BLANK__________________       _______, _______, _______, _______, _______