summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--keyboards/1upkeyboards/pi40/mit_v1_0/keymaps/miketronic/config.h13
-rw-r--r--keyboards/1upkeyboards/pi40/mit_v1_0/keymaps/miketronic/keymap.c290
-rw-r--r--keyboards/1upkeyboards/pi40/mit_v1_0/keymaps/miketronic/rules.mk25
-rw-r--r--keyboards/hazel/bad_wings/keymaps/miketronic/config.h16
-rw-r--r--keyboards/hazel/bad_wings/keymaps/miketronic/keymap.c258
-rw-r--r--keyboards/hazel/bad_wings/keymaps/miketronic/rules.mk31
-rw-r--r--keyboards/mechwild/bde/rev2/keymaps/miketronic/config.h10
-rw-r--r--keyboards/mechwild/bde/rev2/keymaps/miketronic/keymap.c221
-rw-r--r--keyboards/mechwild/bde/rev2/keymaps/miketronic/rules.mk13
-rw-r--r--users/miketronic/config.h12
-rw-r--r--users/miketronic/miketronic.c17
-rw-r--r--users/miketronic/miketronic.h63
-rw-r--r--users/miketronic/process_records.c151
-rw-r--r--users/miketronic/process_records.h38
-rw-r--r--users/miketronic/readme.md25
-rw-r--r--users/miketronic/rules.mk4
-rw-r--r--users/miketronic/tapdances.c33
-rw-r--r--users/miketronic/tapdances.h57
-rw-r--r--users/miketronic/wrappers.h226
19 files changed, 1503 insertions, 0 deletions
diff --git a/keyboards/1upkeyboards/pi40/mit_v1_0/keymaps/miketronic/config.h b/keyboards/1upkeyboards/pi40/mit_v1_0/keymaps/miketronic/config.h
new file mode 100644
index 0000000000..834b7ee0ab
--- /dev/null
+++ b/keyboards/1upkeyboards/pi40/mit_v1_0/keymaps/miketronic/config.h
@@ -0,0 +1,13 @@
+// Copyright 2023 @miketronic -- Mike B <mxb540@gmail.com>
+// SPDX-License-Identifier: GPL-2.0+
+
+#pragma once
+
+# define TAPPING_TERM 160
+# define TAPPING_TERM_PER_KEY
+# define HOLD_ON_OTHER_KEY_PRESS
+# define QUICK_TAP_TERM TAPPING_TERM / 2
+# define QUICK_TAP_TERM_PER_KEY
+
+
+
diff --git a/keyboards/1upkeyboards/pi40/mit_v1_0/keymaps/miketronic/keymap.c b/keyboards/1upkeyboards/pi40/mit_v1_0/keymaps/miketronic/keymap.c
new file mode 100644
index 0000000000..636aad675b
--- /dev/null
+++ b/keyboards/1upkeyboards/pi40/mit_v1_0/keymaps/miketronic/keymap.c
@@ -0,0 +1,290 @@
+// Copyright 2023 @miketronic -- Mike B <mxb540@gmail.com>
+// SPDX-License-Identifier: GPL-2.0+
+
+#include "miketronic.h"
+
+
+
+
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+
+ /* Workman
+ * ┌─────┬─────┬─────┬─────┬─────┬─────┐ ┌─────┬─────┬─────┬─────┬─────┬─────┐
+ * │ TAB │ Q │ D │ R │ W │ B │ │ J │ F │ U │ P │ BSPC│ BSPC│
+ * │ ESC │ ESC │ │ │ │ SYM │ │ SYM │ │ │ │ │ │
+ * ├─────┼─────┼─────┼─────╆━━━━━╅─────┤ ├─────╆━━━━━╅─────┼─────┼─────┼─────┤
+ * │ TAB │ A │ S │ H ┃ T ┃ G │ │ Y ┃ N ┃ E │ O │ I │ │
+ * │SHIFT│ │ │ ┃ EX ┃ │ │ ┃ ┃ │ │ENTER│ENTER│
+ * ├─────┼─────┼─────┼─────╄━━━━━╃─────┤ ├─────╄━━━━━╃─────┼─────┼─────┼─────┤
+ * │SHIFT| Z │ X │ M │ C │ V │ │ K │ L │ SPC │ SPC │ / │ UP |
+ * │ │ │ │ │ │ │ │ │ │ , │ . │ │RIGHT|
+ * ├─────┼─────┼─────┼─────┼─────┼─────┤ ├─────┼─────┼─────┼─────┼─────┼─────┤
+ * │ FN │CTRL │ OS │ ALT │LOWER│ │ │ │RAISE│ SS │CLIP │COPY │ DN │
+ * │ │ │ │ │ │ │ │ │ │ │ │PASTE│LEFT │
+ * └─────┴─────┴─────┴─────┴─────┴─────┘ └─────┴─────┴─────┴─────┴─────┴─────┘
+ */
+
+ [_WM] = LAYOUT_ortho_4x12_wrapper (
+ RGB_TOG,
+ _____________WORKMAN_412_001_L_____________, _____________WORKMAN_412_001_R_____________,
+ _____________WORKMAN_412_002_L_____________, _____________WORKMAN_412_002_R_____________,
+ _____________WORKMAN_412_003_L_____________, _____________WORKMAN_412_003_R_____________,
+ _____________WORKMAN_412_004_L_____________, _____________WORKMAN_412_004_R_____________
+ ),
+
+ [_QW] = LAYOUT_ortho_4x12_wrapper (
+ RGB_TOG,
+ KC_TAB, _________________QWERTY_L1_________________, _________________QWERTY_R1_________________, KC_BSPC,
+ KC_ESC, _________________QWERTY_L2_________________, _________________QWERTY_R2_________________, KC_QUOT,
+ KC_LSFT, _________________QWERTY_L3_________________, _________________QWERTY_R3_________________, KC_ENT,
+ _____________WORKMAN_412_004_L_____________, _____________WORKMAN_412_004_R_____________
+ ),
+
+
+
+
+ /* Lower
+ * ┌─────┬─────┬─────┬─────┬─────┬─────┐ ┌─────┬─────┬─────┬─────┬─────┬─────┐
+ * │ │ () │ [] │ /\ │ │ │ │ │ 7 │ 8 │ 9 │ │ │
+ * │ │ │ │ │ │ │ │ │ │ │ │ │ │
+ * ├─────┼─────┼─────┼─────╆━━━━━╅─────┤ ├─────╆━━━━━╅─────┼─────┼─────┼─────┤
+ * │ │ @ # │ & % │ ┃ ┃ │ │ ┃ 4 ┃ 5 │ 6 │ │ │
+ * │ │ │ │ ┃ ┃ │ │ ┃ ┃ │ │ │ │
+ * ├─────┼─────┼─────┼─────╄━━━━━╃─────┤ ├─────╄━━━━━╃─────┼─────┼─────┼─────┤
+ * │ │ │ │ │ │ │ │ 0 │ 1 │ 2 │ 3 │ │ UP │
+ * │ │ │ │ │ │ │ │ │ │ 0 │ │ │RIGHT│
+ * ├─────┼─────┼─────┼─────┼─────┼─────┤ ├─────┼─────┼─────┼─────┼─────┼─────┤
+ * │ │ │ │ │LOWER│ │ │ │BPSC │ SPC │ . │ │ DN │
+ * │ │ │ │ │ │ │ │ │ │ │ ENT │ │LEFT │
+ * └─────┴─────┴─────┴─────┴─────┴─────┘ └─────┴─────┴─────┴─────┴─────┴─────┘
+ */
+ [_LOWER] = LAYOUT_ortho_4x12_wrapper (
+ KC_MUTE,
+ _______________LOWER_412_L1________________, _______________LOWER_412_R1________________,
+ _______________LOWER_412_L2________________, _______________LOWER_412_R2________________,
+ _______________LOWER_412_L3________________, _______________LOWER_412_R3________________,
+ _______________LOWER_412_L4________________, _______________LOWER_412_R4________________
+ ),
+
+
+ /* RAISE
+ * ┌─────┬─────┬─────┬─────┬─────┬─────┐ ┌─────┬─────┬─────┬─────┬─────┬─────┐
+ * │BOOT │DEBUG│ │ │ │MAKE │ │ │ │ F7 │ F8 │ F9 │ F10 │
+ * │ │ │ │ │ │ │ │ │ │ │ │ │ │
+ * ├─────┼─────┼─────┼─────╆━━━━━╅─────┤ ├─────╆━━━━━╅─────┼─────┼─────┼─────┤
+ * │ │ RGB | RGB | RGB ┃ RGB ┃ WM │ │ ┃ / \ ┃ F4 │ F5 │ F6 │ F11 │
+ * │ │ TOG │ MOD │ HUI ┃ HUD ┃ │ │ ┃ ┃ │ │ │ │
+ * ├─────┼─────┼─────┼─────╄━━━━━╃─────┤ ├─────╄━━━━━╃─────┼─────┼─────┼─────┤
+ * │ │ RGB │ RGB │ RGB │ RGB │ QW │ │ │ _ │ F1 | F2 | F3 │ F12 │
+ * │ │ SAI │ SAD │ VAI │ VAD │ │ │ │ - │ │ │ │ │
+ * ├─────┼─────┼─────┼─────┼─────┼─────┤ ├─────┼─────┼─────┼─────┼─────┼─────┤
+ * │ │ │ │ │ │ │ │ │RAISE│ │ │ │ │
+ * │ │ │ │ │ │ │ │ │ │ │ │ │ │
+ * └─────┴─────┴─────┴─────┴─────┴─────┘ └─────┴─────┴─────┴─────┴─────┴─────┘
+ */
+ [_RAISE] = LAYOUT_ortho_4x12_wrapper (
+ KC_MUTE,
+ _______________RAISE_412_L1________________, _______________RAISE_412_R1________________,
+ _______________RAISE_412_L2________________, _______________RAISE_412_R2________________,
+ _______________RAISE_412_L3________________, _______________RAISE_412_R3________________,
+ _________________BLANK_6___________________, _________________BLANK_6___________________
+ ),
+
+
+ /* EXTRAS
+ * ┌─────┬─────┬─────┬─────┬─────┬─────┐ ┌─────┬─────┬─────┬─────┬─────┬─────┐
+ * │ │ ! │ │ │ │ │ │ │ /\ | [ | ] | ; │ │
+ * │ │ │ │ │ │ │ │ │ │ │ │ │ │
+ * ├─────┼─────┼─────┼─────╆━━━━━╅─────┤ ├─────╆━━━━━╅─────┼─────┼─────┼─────┤
+ * │SHIFT│ | |EXTRA┃ ┃ │ │ ┃ @ # ┃ & % | | ' | │
+ * │ │ │ │ ┃ ┃ │ │ ┃ ┃ │ │ │ │
+ * ├─────┼─────┼─────┼─────╄━━━━━╃─────┤ ├─────╄━━━━━╃─────┼─────┼─────┼─────┤
+ * │ │ │ │ │ │ │ │ │ │ , | . | ? │ │
+ * │ │ │ │ │ │ │ │ │ │ │ │ │ │
+ * ├─────┼─────┼─────┼─────┼─────┼─────┤ ├─────┼─────┼─────┼─────┼─────┼─────┤
+ * │ │ │ │ │ │ │ │ │ │ │ │ │ │
+ * │ │ │ │ │ │ │ │ │ │ │ │ │ │
+ * └─────┴─────┴─────┴─────┴─────┴─────┘ └─────┴─────┴─────┴─────┴─────┴─────┘
+ */
+ [_EX] = LAYOUT_ortho_4x12_wrapper (
+ KC_MUTE,
+ ______________EXTRAS_412_L1________________, ______________EXTRAS_412_R1________________,
+ ______________EXTRAS_412_L2________________, ______________EXTRAS_412_R2________________,
+ ______________EXTRAS_412_L3________________, ______________EXTRAS_412_R3________________,
+ ______________EXTRAS_412_L4________________, ______________EXTRAS_412_R4________________
+ ),
+
+
+
+ /* FUNCTION
+ * ┌─────┬─────┬─────┬─────┬─────┬─────┐ ┌─────┬─────┬─────┬─────┬─────┬─────┐
+ * │COPY │CLIP │ SS │ │ │ │ │ │ /\ │ UP │ │ │ DEL │
+ * │PASTE│ │ │ │ │ │ │ │ │ │ │ │ │
+ * ├─────┼─────┼─────┼─────╆━━━━━╅─────┤ ├─────╆━━━━━╅─────┼─────┼─────┼─────┤
+ * │TAB │ M05 | M06 | M07 ┃ M08 ┃ │ │ ┃LEFT ┃DOWN │RIGHT│ │UP │
+ * │SHIFT│ │ │ ┃ ┃ │ │ ┃ ┃ │ │ │RIGHT│
+ * ├─────┼─────┼─────┼─────╄━━━━━╃─────┤ ├─────╄━━━━━╃─────┼─────┼─────┼─────┤
+ * │ │ M01 │ M02 │ M03 │ M04 │ │ │ │ │ , | . | ? │DOWN │
+ * │ │ │ │ │ │ │ │ │ │ │ │ │LEFT │
+ * ├─────┼─────┼─────┼─────┼─────┼─────┤ ├─────┼─────┼─────┼─────┼─────┼─────┤
+ * │ │RGB1 │RGB2 │RGB3 │RGB4 │ │ │ │ │ │ │ │ │
+ * │ │ │ │ │ │ │ │ │ │ │ │ │ │
+ * └─────┴─────┴─────┴─────┴─────┴─────┘ └─────┴─────┴─────┴─────┴─────┴─────┘
+ */
+ [_FN] = LAYOUT_ortho_4x12_wrapper (
+ KC_MUTE,
+ _____________FUNCTION_412_L1_______________, _____________FUNCTION_412_R1_______________,
+ _____________FUNCTION_412_L2_______________, _____________FUNCTION_412_R2_______________,
+ _____________FUNCTION_412_L3_______________, _____________FUNCTION_412_R3_______________,
+ _____________FUNCTION_412_L4_______________, _____________FUNCTION_412_R4_______________
+ ),
+
+
+ /* SYMBOLS
+ * ┌─────┬─────┬─────┬─────┬─────┬─────┐ ┌─────┬─────┬─────┬─────┬─────┬─────┐
+ * │ | $ | ^ | < | > │ SYMB│ │ SYMB│ | | [ | ] | - | |
+ * │ │ │ │ │ │ │ │ │ │ │ │ │ │
+ * ├─────┼─────┼─────┼─────╆━━━━━╅─────┤ ├─────╆━━━━━╅─────┼─────┼─────┼─────┤
+ * │ | % | : | ; ┃ + ┃ = │ │ ┃ ┃ ( | ) | _ | |
+ * │ │ │ │ ┃ ┃ │ │ ┃ ┃ │ │ │ │
+ * ├─────┼─────┼─────┼─────╄━━━━━╃─────┤ ├─────╄━━━━━╃─────┼─────┼─────┼─────┤
+ * | | & | ' | " | * | # │ │ ! | ? | / | \ | @ | |
+ * │ │ │ │ │ │ │ │ │ │ │ │ │ │
+ * ├─────┼─────┼─────┼─────┼─────┼─────┤ ├─────┼─────┼─────┼─────┼─────┼─────┤
+ * │ │ │ │ │ │ │ │ │ │ │ │ │ │
+ * │ │ │ │ │ │ │ │ │ │ │ │ │ │
+ * └─────┴─────┴─────┴─────┴─────┴─────┘ └─────┴─────┴─────┴─────┴─────┴─────┘
+ */
+
+ [_SYMB] = LAYOUT_ortho_4x12_wrapper (
+ KC_MUTE,
+ _______, _____________SYMBOLS_310_L1________________, _____________SYMBOLS_310_R1________________, _______,
+ _______, _____________SYMBOLS_310_L2________________, _____________SYMBOLS_310_R2________________, _______,
+ _______, _____________SYMBOLS_310_L3________________, _____________SYMBOLS_310_R3________________, _______,
+ _________________BLANK_6___________________, _________________BLANK_6___________________
+ )
+
+};
+
+#ifndef NUM_DIRECTIONS
+# define NUM_DIRECTIONS 2
+#endif
+
+#if defined(ENCODER_MAP_ENABLE) && defined(KEYBOARD_1upkeyboards_pi40_mit_v1_0)
+const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = {
+ [_WM] = { ENCODER_CCW_CW(LCTL(KC_V), LCTL(KC_C)) },
+ [_QW] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU) },
+ [_LOWER] = { ENCODER_CCW_CW(____, ____) },
+ [_RAISE] = { ENCODER_CCW_CW(____, ____) },
+ [_EX] = { ENCODER_CCW_CW(____, ____) },
+ [_FN] = { ENCODER_CCW_CW(RGB_MOD, RGB_RMOD) },
+ [_SYMB] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU) }
+};
+#endif
+
+
+#ifdef OLED_ENABLE
+bool oled_task_user(void) {
+ // Host Keyboard Layer Status
+ oled_write_P(PSTR("Layer: "), false);
+
+ switch (get_highest_layer(layer_state)) {
+ case _LOWER:
+ oled_write_P(PSTR("LOWER"), false);
+ break;
+ case _RAISE:
+ oled_write_P(PSTR("RAISE"), false);
+ break;
+ case _EX:
+ oled_write_P(PSTR("EXTRA"), false);
+ break;
+ case _FN:
+ oled_write_P(PSTR("FUNCTION"), false);
+ break;
+ case _WM:
+ oled_write_P(PSTR("WORKMAN"), false);
+ break;
+ case _SYMB:
+ oled_write_P(PSTR("SYMBOLS"), false);
+ break;
+ default:
+ // Or use the write_ln shortcut over adding '\n' to the end of your string
+ oled_write_ln_P(PSTR("HOME"), false);
+ }
+
+// Host Keyboard LED Status
+ // led_t led_state = host_keyboard_led_state();
+ // oled_write_P(led_state.num_lock ? PSTR("NUM ") : PSTR(" "), false);
+ // oled_write_P(led_state.caps_lock ? PSTR("CAP ") : PSTR(" "), false);
+ // oled_write_P(led_state.scroll_lock ? PSTR("SCR ") : PSTR(" "), false);
+
+ return false;
+}
+#endif
+
+
+bool get_hold_on_other_key_press(uint16_t keycode, keyrecord_t *record) {
+ switch (keycode) {
+ case SFT_T(KC_A):
+ // Do not force the mod-tap key press to be handled as a modifier
+ // if any other key was pressed while the mod-tap key is held down.
+ return false;
+ case TEX:
+ return false;
+ case CTRLX:
+ return false;
+ case FNZ:
+ return false;
+ case MGUI:
+ return false;
+ case VLOWER:
+ return false;
+ case KRAISE:
+ return false;
+ default:
+ // Force the dual-role key press to be handled as a modifier if any
+ // other key was pressed while the mod-tap key is held down.
+ return true;
+ }
+}
+
+#ifdef AUDIO_ENABLE
+float leader_start_song[][2] = SONG(ONE_UP_SOUND);
+float leader_succeed_song[][2] = SONG(ALL_STAR);
+float leader_fail_song[][2] = SONG(RICK_ROLL);
+#endif
+
+void matrix_scan_user(void);
+
+void leader_start_user(void) {
+#ifdef AUDIO_ENABLE
+ PLAY_SONG(leader_start_song);
+#endif
+}
+
+bool did_leader_succeed;
+
+void leader_end_user(void) {
+ did_leader_succeed = false;
+
+ if (leader_sequence_one_key(KC_E)) {
+ SEND_STRING(SS_LCTL(SS_LSFT("t")));
+ did_leader_succeed = true;
+ } else if (leader_sequence_two_keys(KC_E, KC_D)) {
+ SEND_STRING(SS_LGUI("r") "cmd\n" SS_LCTL("c"));
+ did_leader_succeed = true;
+ } else if (leader_sequence_two_keys(KC_A, KC_T)) {
+ SEND_STRING("@guidehouse.com");
+ did_leader_succeed = true;
+ }
+
+
+#ifdef AUDIO_ENABLE
+ if (did_leader_succeed) {
+ PLAY_SONG(leader_succeed_song);
+ } else {
+ PLAY_SONG(leader_fail_song);
+ }
+#endif
+} \ No newline at end of file
diff --git a/keyboards/1upkeyboards/pi40/mit_v1_0/keymaps/miketronic/rules.mk b/keyboards/1upkeyboards/pi40/mit_v1_0/keymaps/miketronic/rules.mk
new file mode 100644
index 0000000000..96f930ffa1
--- /dev/null
+++ b/keyboards/1upkeyboards/pi40/mit_v1_0/keymaps/miketronic/rules.mk
@@ -0,0 +1,25 @@
+# Common feature for all keyboards
+BOOTMAGIC_ENABLE = yes # Enable Bootmagic Lite
+EXTRAKEY_ENABLE = yes # Audio control and System control
+TAP_DANCE_ENABLE = yes # Tap Dance keys
+NKRO_ENABLE = yes # Enable N-Key Rollover
+MACROS_ENABLED = yes
+
+
+# Keyboard specific
+AUTO_SHIFT_ENABLE = no
+CONSOLE_ENABLE = no # Console for debug
+COMMAND_ENABLE = no # Commands for debug and configuration
+BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
+RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow
+AUDIO_ENABLE = no # Audio output
+MOUSEKEY_ENABLE = no # Mouse keys
+
+LEADER_ENABLE = yes
+RGB_MATRIX_ENABLE = yes
+RGB_MATRIX_DRIVER = WS2812
+WS2812_DRIVER = vendor
+ENCODER_ENABLE = yes
+ENCODER_MAP_ENABLE = yes
+OLED_ENABLE = yes
+OLED_DRIVER = SSD1306 \ No newline at end of file
diff --git a/keyboards/hazel/bad_wings/keymaps/miketronic/config.h b/keyboards/hazel/bad_wings/keymaps/miketronic/config.h
new file mode 100644
index 0000000000..1f5c059c00
--- /dev/null
+++ b/keyboards/hazel/bad_wings/keymaps/miketronic/config.h
@@ -0,0 +1,16 @@
+// Copyright 2023 @miketronic -- Mike B <mxb540@gmail.com>
+// SPDX-License-Identifier: GPL-2.0+
+
+#pragma once
+
+# define TAPPING_TERM 160
+# define TAPPING_TERM_PER_KEY
+# define HOLD_ON_OTHER_KEY_PRESS
+# define QUICK_TAP_TERM TAPPING_TERM / 2
+# define QUICK_TAP_TERM_PER_KEY
+
+# define CIRQUE_PINNACLE_TAP_ENABLE
+# define CIRQUE_PINNACLE_SECONDARY_TAP_ENABLE
+# define CIRQUE_PINNACLE_ATTENUATION_4X
+# define CIRQUE_PINNACLE_POSITION_MODE CIRQUE_PINNACLE_RELATIVE_MODE
+//# define CIRQUE_DEVICE_GESTURES_SCROLL_ENABLE
diff --git a/keyboards/hazel/bad_wings/keymaps/miketronic/keymap.c b/keyboards/hazel/bad_wings/keymaps/miketronic/keymap.c
new file mode 100644
index 0000000000..3ebcc79fde
--- /dev/null
+++ b/keyboards/hazel/bad_wings/keymaps/miketronic/keymap.c
@@ -0,0 +1,258 @@
+// Copyright 2023 @miketronic -- Mike B <mxb540@gmail.com>
+// SPDX-License-Identifier: GPL-2.0+
+
+#include "miketronic.h"
+
+
+/*
+layer_state_t layer_state_set_user(layer_state_t state) {
+ return update_tri_layer_state(state, 1, 2, 3);
+}
+
+
+ [0] = LAYOUT_split_3x5_3(
+ KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, \
+ KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_QUOT, \
+ KC_Z, LGUI_T(KC_X), LALT_T(KC_C), KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, \
+ KC_LCTL, OSL(1), OSM(MOD_LSFT), KC_SPC, LT(2, KC_BSPC), KC_ENT
+ ),
+ [1] = LAYOUT_split_3x5_3(
+ KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_RBRC, KC_RCBR, KC_RPRN, KC_RABK, KC_NO, \
+ KC_GRV, KC_TILD, KC_UNDS, KC_EQL, KC_NO, KC_LBRC, KC_LCBR, KC_LPRN, KC_LABK, KC_BACKSLASH, \
+ KC_NO, KC_NO, KC_PLUS, KC_MINS, KC_NO, KC_NO, KC_NO, KC_COLN, KC_DOT, KC_SCLN, \
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
+ ),
+ [2] = LAYOUT_split_3x5_3(
+ KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_PIPE, KC_NO, \
+ KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, \
+ KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_DOT, KC_NO, \
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
+ ),
+ [3] = LAYOUT_split_3x5_3(
+ KC_ESC, KC_F1, KC_F4, KC_F7, KC_F10, KC_NO, KC_HOME, KC_UP, KC_END, KC_BSPC, \
+ KC_TAB, KC_F2, KC_F5, KC_F8, KC_F11, KC_NO, KC_LEFT, KC_DOWN, KC_RIGHT, KC_ENT, \
+ KC_NO, KC_F3, KC_F6, KC_F9, KC_F12, KC_NO, KC_MPRV, KC_MPLY, KC_MNXT, KC_DEL, \
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
+ )
+*/
+
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+ /* WORKMAN
+ * ┌─────┬─────┬─────┬─────┬─────┐ ┌─────┬─────┬─────┬─────┬─────┐
+ * │ Q │ D │ R │ W │ B │ │ J │ F │ U │ P │ BSPC│
+ * │ ESC │ │ │ │ SYM │ │ SYM │ │ │ │ │
+ * ├─────┼─────┼─────╆━━━━━╅─────┤ ├─────╆━━━━━╅─────┼─────┼─────┤
+ * │ A │ S │ H ┃ T ┃ G │ │ Y ┃ N ┃ E │ O │ I │
+ * │SHIFT│ │ ┃ EX ┃ │ │ ┃ ┃ │ │ │
+ * ├─────┼─────┼─────╄━━━━━╃─────┤ ├─────╄━━━━━╃─────┼─────┼─────┤
+ * │ Z │ X │ M │ C │ V │ │ K │ L │ SPC │ SPC │ENTER│
+ * │ FN │ CTRL│ OS │ ALT │LOWER│ │RAISE│ │ , │ . │ │
+ * └─────┴─────┼─────┼─────┼─────┤ ├─────┼─────┼─────┼─────┴─────┘
+ * │OSM │SPACE│LOWER│ │RAISE│ENTER│COPY │
+ * │SHIFT│ │ │ │ │ │PASTE│
+ * └─────┴─────┴─────┘ └─────┴─────┴─────┘
+*/
+ [_WM] = LAYOUT_split_3x5_3_wrapper (
+ _____________WORKMAN_310_001_L_____________, _____________WORKMAN_310_001_R_____________,
+ _____________WORKMAN_310_002_L_____________, _____________WORKMAN_310_002_R_____________,
+ _____________WORKMAN_310_003_L_____________, _____________WORKMAN_310_003_R_____________,
+ _________3KEY_LEFT___________, _________3KEY_RIGHT__________
+ ),
+
+ [_QW] = LAYOUT_split_3x5_3_wrapper (
+ _________________QWERTY_L1_________________, _________________QWERTY_R1_________________,
+ _________________QWERTY_L2_________________, _________________QWERTY_R2_________________,
+ _________________QWERTY_L3_________________, _________________QWERTY_R3_________________,
+ _________3KEY_LEFT___________, _________3KEY_RIGHT__________
+ ),
+
+
+
+ /* LOWER
+ * ┌─────┬─────┬─────┬─────┬─────┐ ┌─────┬─────┬─────┬─────┬─────┐
+ * │ () │ [] │ /\ │ │ │ │ │ 7 │ 8 │ 9 │ │
+ * │ │ <> │ │ │ │ │ │ │ │ │ │
+ * ├─────┼─────┼─────╆━━━━━╅─────┤ ├─────╆━━━━━╅─────┼─────┼─────┤
+ * │ @ # │ & % │ ┃ ┃ │ │ . ┃ 4 ┃ 5 │ 6 │ UP │
+ * │ │ │ ┃ ┃ │ │ENTER┃ ┃ │ │RIGHT│
+ * ├─────┼─────┼─────╄━━━━━╃─────┤ ├─────╄━━━━━╃─────┼─────┼─────┤
+ * │ │ │ │ │ │ │ 0 │ 1 │ 2 │ 3 │ DOWN│
+ * │ │ │ │ │LOWER│ │ │ │ 0 │ │ LEFT│
+ * └─────┴─────┼─────┼─────┼─────┤ ├─────┼─────┼─────┼─────┴─────┘
+ * │OSM │SPACE│LOWER│ │RAISE│ENTER│COPY │
+ * │SHIFT│ │ │ │ │ │PASTE│
+ * └─────┴─────┴─────┘ └─────┴─────┴─────┘
+*/
+ [_LOWER] = LAYOUT_split_3x5_3_wrapper (
+ _______________LOWER_310_L1________________, _______________LOWER_310_R1________________,
+ _______________LOWER_310_L2________________, _______________LOWER_310_R2________________,
+ _______________LOWER_310_L3________________, _______________LOWER_310_R3________________,
+ _________3KEY_LEFT___________, _________3KEY_RIGHT__________
+ ),
+
+
+
+ /* RAISE
+ * ┌─────┬─────┬─────┬─────┬─────┐ ┌─────┬─────┬─────┬─────┬─────┐
+ * │ BOOT│DEBUG│ │ │ MAKE│ │ │ F7 │ F8 │ F9 │ F10 │
+ * │ │ │ │ │ │ │ │ │ │ │ │
+ * ├─────┼─────┼─────╆━━━━━╅─────┤ ├─────╆━━━━━╅─────┼─────┼─────┤
+ * │ │ RGB │ RGB ┃ RGB ┃ RGB │ │ _ ┃ F4 ┃ F5 │ F6 │ F11 │
+ * │ │ TOG │ MOD ┃ HUI ┃ HUD │ │ - ┃ ┃ │ │ │
+ * ├─────┼─────┼─────╄━━━━━╃─────┤ ├─────╄━━━━━╃─────┼─────┼─────┤
+ * │ │ RGB │ RGB │ RGB │ RGB │ │ │ F1 │ F2 │ F3 │ F12 │
+ * │ │ SAI │ SAD │ VAI │ VAD │ │RAISE│ │ │ │ │
+ * └─────┴─────┼─────┼─────┼─────┤ ├─────┼─────┼─────┼─────┴─────┘
+ * │OSM │SPACE│LOWER│ │RAISE│ENTER│COPY │
+ * │SHIFT│ │ │ │ │ │PASTE│
+ * └─────┴─────┴─────┘ └─────┴─────┴─────┘
+*/
+ [_RAISE] = LAYOUT_split_3x5_3_wrapper (
+ _______________RAISE_310_L1________________, _______________RAISE_310_R1________________,
+ _______________RAISE_310_L2________________, _______________RAISE_310_R2________________,
+ _______________RAISE_310_L3________________, _______________RAISE_310_R3________________,
+ _________3KEY_LEFT___________, _________3KEY_RIGHT__________
+ ),
+
+
+
+ /* EXTRAS
+ * ┌─────┬─────┬─────┬─────┬─────┐ ┌─────┬─────┬─────┬─────┬─────┐
+ * │ ! │ │ │ │ │ │ │ /\ | () | [] | ; │
+ * │ │ │ │ │ │ │ │ │ │ │ │
+ * ├─────┼─────┼─────╆━━━━━╅─────┤ ├─────╆━━━━━╅─────┼─────┼─────┤
+ * │ │ │ ┃EXTRA┃ │ │ ┃ @ # ┃ & % | │ ' │
+ * │ │ │ ┃ ┃ │ │ ┃ ┃ │ │ │
+ * ├─────┼─────┼─────╄━━━━━╃─────┤ ├─────╄━━━━━╃─────┼─────┼─────┤
+ * │ │ │ │ │ │ │ │ │ , │ . │ ? │
+ * │ │ │ │ │ │ │ │ │ │ │ │
+ * └─────┴─────┼─────┼─────┼─────┤ ├─────┼─────┼─────┼─────┴─────┘
+ * │OSM │SPACE│LOWER│ │RAISE│ENTER│COPY │
+ * │SHIFT│ │ │ │ │ │PASTE│
+ * └─────┴─────┴─────┘ └─────┴─────┴─────┘
+*/
+ [_EX] = LAYOUT_split_3x5_3_wrapper (
+ ______________EXTRAS_310_L1________________, ______________EXTRAS_310_R1________________,
+ ______________EXTRAS_310_L2________________, ______________EXTRAS_310_R2________________,
+ ______________EXTRAS_310_L3________________, ______________EXTRAS_310_R3________________,
+ _________3KEY_LEFT___________, _________3KEY_RIGHT__________
+ ),
+
+
+
+ /* FUNCTION
+ * ┌─────┬─────┬─────┬─────┬─────┐ ┌─────┬─────┬─────┬─────┬─────┐
+ * │COPY │CLIP │ SS │ │ │ │ │ /\ │ UP │ │ DEL │
+ * │PASTE│ │ │ │ │ │ │ │ │ │ │
+ * ├─────┼─────┼─────╆━━━━━╅─────┤ ├─────╆━━━━━╅─────┼─────┼─────┤
+ * │ TAB │ M05 │ M06 ┃ M07 ┃ M08 │ │ ┃ LEFT┃ DOWN│RIGHT│ UP │
+ * │ │ │ ┃ ┃ │ │ ┃ ┃ │ │RIGHT│
+ * ├─────┼─────┼─────╄━━━━━╃─────┤ ├─────╄━━━━━╃─────┼─────┼─────┤
+ * │ │ M01 │ M02 │ M03 │ M04 │ │ │ │ , │ . │DOWN │
+ * │ FN │ │ │ │ │ │ │ │ │ │LEFT │
+ * └─────┴─────┼─────┼─────┼─────┤ ├─────┼─────┼─────┼─────┴─────┘
+ * │OSM │SPACE│LOWER│ │RAISE│ENTER│COPY │
+ * │SHIFT│ │ │ │ │ │PASTE│
+ * └─────┴─────┴─────┘ └─────┴─────┴─────┘
+*/
+ [_FN] = LAYOUT_split_3x5_3_wrapper (
+ _____________FUNCTION_310_L1_______________, _____________FUNCTION_310_R1_______________,
+ _____________FUNCTION_310_L2_______________, _____________FUNCTION_310_R2_______________,
+ _____________FUNCTION_310_L3_______________, _____________FUNCTION_310_R3_______________,
+ _________3KEY_LEFT___________, _________3KEY_RIGHT__________
+ ),
+
+
+
+ /* SYMBOLS
+ * ┌─────┬─────┬─────┬─────┬─────┐ ┌─────┬─────┬─────┬─────┬─────┐
+ * │ $ │ ^ │ < │ > │ │ │ │ | │ [ │ ] │ - │
+ * │ │ │ │ │ SYMB│ │ SYMB│ │ │ │ │
+ * ├─────┼─────┼─────╆━━━━━╅─────┤ ├─────╆━━━━━╅─────┼─────┼─────┤
+ * │ % │ : │ ; ┃ + ┃ = │ │ ┃ ┃ ( │ ) │ _ │
+ * │ │ │ ┃ ┃ │ │ ┃ ┃ │ │ │
+ * ├─────┼─────┼─────╄━━━━━╃─────┤ ├─────╄━━━━━╃─────┼─────┼─────┤
+ * │ & │ ' │ " │ * │ # │ │ ! │ ? │ / │ \ │ @ │
+ * │ │ │ │ │ │ │ │ │ │ │ │
+ * └─────┴─────┼─────┼─────┼─────┤ ├─────┼─────┼─────┼─────┴─────┘
+ * │OSM │SPACE│LOWER│ │RAISE│ENTER│COPY │
+ * │SHIFT│ │ │ │ │ │PASTE│
+ * └─────┴─────┴─────┘ └─────┴─────┴─────┘
+*/
+ [_SYMB] = LAYOUT_split_3x5_3_wrapper (
+ KC_DLR, KC_CIRC, KC_LABK, KC_RABK, XXXX, XXXX, KC_PIPE, KC_LBRC, KC_RBRC, KC_MINS,
+ KC_PERC, KC_COLN, KC_SCLN, KC_PLUS, KC_EQL, XXXX, XXXX, KC_LPRN, KC_RPRN, KC_UNDS,
+ KC_AMPR, KC_QUOT, KC_DQUO, KC_ASTR, KC_HASH, KC_EXLM, KC_QUES, KC_SLSH, KC_BSLS, KC_AT,
+ _________3KEY_LEFT___________, _________3KEY_RIGHT__________
+ ),
+
+};
+
+
+bool get_hold_on_other_key_press(uint16_t keycode, keyrecord_t *record) {
+ switch (keycode) {
+ case SFT_T(KC_A):
+ // Do not force the mod-tap key press to be handled as a modifier
+ // if any other key was pressed while the mod-tap key is held down.
+ return false;
+ case TEX:
+ return false;
+ case CTRLX:
+ return false;
+ case FNZ:
+ return false;
+ case MGUI:
+ return false;
+ case VLOWER:
+ return false;
+ case KRAISE:
+ return false;
+ default:
+ // Force the dual-role key press to be handled as a modifier if any
+ // other key was pressed while the mod-tap key is held down.
+ return true;
+ }
+}
+
+
+#ifdef AUDIO_ENABLE
+float leader_start_song[][2] = SONG(ONE_UP_SOUND);
+float leader_succeed_song[][2] = SONG(ALL_STAR);
+float leader_fail_song[][2] = SONG(RICK_ROLL);
+#endif
+
+void matrix_scan_user(void);
+
+void leader_start_user(void) {
+#ifdef AUDIO_ENABLE
+ PLAY_SONG(leader_start_song);
+#endif
+}
+
+bool did_leader_succeed;
+
+void leader_end_user(void) {
+ did_leader_succeed = false;
+
+ if (leader_sequence_one_key(KC_E)) {
+ SEND_STRING(SS_LCTL(SS_LSFT("t")));
+ did_leader_succeed = true;
+ } else if (leader_sequence_two_keys(KC_E, KC_D)) {
+ SEND_STRING(SS_LGUI("r") "cmd\n" SS_LCTL("c"));
+ did_leader_succeed = true;
+ } else if (leader_sequence_two_keys(KC_A, KC_T)) {
+ SEND_STRING("@guidehouse.com");
+ did_leader_succeed = true;
+ }
+
+
+#ifdef AUDIO_ENABLE
+ if (did_leader_succeed) {
+ PLAY_SONG(leader_succeed_song);
+ } else {
+ PLAY_SONG(leader_fail_song);
+ }
+#endif
+}
+
diff --git a/keyboards/hazel/bad_wings/keymaps/miketronic/rules.mk b/keyboards/hazel/bad_wings/keymaps/miketronic/rules.mk
new file mode 100644
index 0000000000..72c338c157
--- /dev/null
+++ b/keyboards/hazel/bad_wings/keymaps/miketronic/rules.mk
@@ -0,0 +1,31 @@
+# Common feature for all keyboards
+BOOTMAGIC_ENABLE = yes # Enable Bootmagic Lite
+EXTRAKEY_ENABLE = yes # Audio control and System control
+TAP_DANCE_ENABLE = yes # Tap Dance keys
+NKRO_ENABLE = yes # Enable N-Key Rollover
+MACROS_ENABLED = yes
+
+# Keyboard specific
+MOUSEKEY_ENABLE = yes # Mouse keys
+CAPS_WORD_ENABLE = yes
+KEY_OVERRIDE_ENABLE = yes
+LEADER_ENABLE = yes
+
+
+ LTO_ENABLE = no # Enabled this causes longer build time, but smaller file.
+ AUTO_SHIFT_ENABLE = no
+ UNICODE_ENABLE = no # Unicode
+ CONSOLE_ENABLE = no # Console for debug
+ COMMAND_ENABLE = no # Commands for debug and configuration
+ RGBLIGHT_ENABLE = no
+ BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
+ SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend (it uses the same timer as BACKLIGHT_ENABLE)
+ AUDIO_ENABLE = no # Audio output on port C6
+ MIDI_ENABLE = no # MIDI support
+ BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
+ GRAVE_ESC_ENABLE = no
+ SPACE_CADET_ENABLE = no
+ COMBO_ENABLE = no
+ OLED_ENABLE = no
+ ENCODER_ENABLE = no
+ ENCODER_MAP_ENABLE = no
diff --git a/keyboards/mechwild/bde/rev2/keymaps/miketronic/config.h b/keyboards/mechwild/bde/rev2/keymaps/miketronic/config.h
new file mode 100644
index 0000000000..658c829f04
--- /dev/null
+++ b/keyboards/mechwild/bde/rev2/keymaps/miketronic/config.h
@@ -0,0 +1,10 @@
+// Copyright 2023 @miketronic -- Mike B <mxb540@gmail.com>
+// SPDX-License-Identifier: GPL-2.0+
+
+#pragma once
+
+# define TAPPING_TERM 160
+# define TAPPING_TERM_PER_KEY
+# define HOLD_ON_OTHER_KEY_PRESS
+# define QUICK_TAP_TERM TAPPING_TERM / 2
+# define QUICK_TAP_TERM_PER_KEY
diff --git a/keyboards/mechwild/bde/rev2/keymaps/miketronic/keymap.c b/keyboards/mechwild/bde/rev2/keymaps/miketronic/keymap.c
new file mode 100644
index 0000000000..e8a26fd28a
--- /dev/null
+++ b/keyboards/mechwild/bde/rev2/keymaps/miketronic/keymap.c
@@ -0,0 +1,221 @@
+// Copyright 2023 @miketronic -- Mike B <mxb540@gmail.com>
+// SPDX-License-Identifier: GPL-2.0+
+
+#include "miketronic.h"
+
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+
+ /* WORKMAN
+ * ┌─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┐
+ * │ Q │ D │ R │ W │ B │ 7 │ 8 │ 9 │ J │ F │ U │ P │ BSPC│BSPC │
+ * │ ESC │ │ │ │ SYM │ │ │ │ SYM │ │ │ │ │ │
+ * ├─────┼─────┼─────╆━━━━━╅─────┼─────┼─────┼─────┼─────╆━━━━━╅─────┼─────┼─────┼─────┤
+ * │ A │ S │ H ┃ T ┃ G │ 4 │ 5 │ 6 │ Y ┃ N ┃ E │ O │ I │UP │
+ * │SHIFT│ │ ┃ EX ┃ │ │ │ │ ┃ ┃ │ │ │RIGHT│
+ * ├─────┼─────┼─────╄━━━━━╃─────┼─────┼─────┼─────┼─────╄━━━━━╃─────┼─────┼─────┼─────┤
+ * │ Z │ X │ M │ C │ V │ 1 │ 2 │ 3 │ K │ L │ SPC │ SPC │ENTER│DOWN │
+ * │ FN │ CTRL│ OS │ ALT │LOWER│ │ 0 │ │RAISE│RAISE│ │ │ │LEFT │
+ * └─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┘
+ *
+ */
+
+ [_WM] = LAYOUT_3x14_wrapper (
+ _____________WORKMAN_310_001_L_____________, _________NUMBER_01__________, _____________WORKMAN_310_001_R_____________, KC_BSPC,
+ _____________WORKMAN_310_002_L_____________, _________NUMBER_02__________, _____________WORKMAN_310_002_R_____________, TD_UR,
+ _____________WORKMAN_310_003_L_____________, _________NUMBER_03__________, _____________WORKMAN_310_003_R_____________, TD_DL
+ ),
+
+ [_QW] = LAYOUT_3x14_wrapper (
+ _________________QWERTY_L1_________________, _________NUMBER_01__________, _________________QWERTY_R1_________________, KC_MUTE,
+ _________________QWERTY_L2_________________, _________NUMBER_02__________, _________________QWERTY_R2_________________, TD_UR,
+ _________________QWERTY_L3_________________, _________NUMBER_03__________, _________________QWERTY_R3_________________, TD_DL
+ ),
+
+
+ /* LOWER
+ * ┌─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┐
+ * │ () │ [] │ /\ │ │ │ │ 7 │ 8 │ 9 │ 0 │ │ │ │LEAD │
+ * │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
+ * ├─────┼─────┼─────╆━━━━━╅─────┼─────╆━━━━━╅─────┼─────┼─────┼─────┼─────┼─────┼─────┤
+ * │ @ # │ & % │ ┃ ┃ │ ┃ 4 ┃ 5 │ 6 │ │ │ │ │ │
+ * │ │ │ ┃ ┃ │ ┃ ┃ │ │ │ │ │ │ │
+ * ├─────┼─────┼─────╄━━━━━╃─────┼─────╄━━━━━╃─────┼─────┼─────┼─────┼─────┼─────┼─────┤
+ * │ │ │ │ │ │ 0 │ 1 │ 2 │ 3 │ . │ │ │ │ │
+ * │ │ │ │ │LOWER│ │ │ 0 │ │ ENT │ │ │ │ │
+ * └─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┘
+ *
+ */
+
+ [_LOWER] = LAYOUT_3x14_wrapper (
+ _______________LOWER_310_L1________________, _________NUMBER_01__________, _______________LOWER_310_R1________________, QK_LEAD,
+ _______________LOWER_310_L2________________, _________NUMBER_02__________, _______________LOWER_310_R2________________, TD_UR,
+ _______________LOWER_310_L3________________, _________NUMBER_03__________, _______________LOWER_310_R3________________, TD_DL
+ ),
+
+
+ /* RAISE
+ * ┌─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┐
+ * │ BOOT│DEBUG│ │ │ MAKE│ │ F7 │ F8 │ F9 │ F10 │ │ │ │LEAD │
+ * │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
+ * ├─────┼─────┼─────╆━━━━━╅─────┼─────╆━━━━━╅─────┼─────┼─────┼─────┼─────┼─────┼─────┤
+ * │ │ RGB │ RGB ┃ RGB ┃ RGB │ _ ┃ F4 ┃ F5 │ F6 │ F11 │ │ │ │ │
+ * │ │ TOG │ MOD ┃ HUI ┃ HUD │ - ┃ ┃ _ │ │ │ │ │ │ │
+ * ├─────┼─────┼─────╄━━━━━╃─────┼─────╄━━━━━╃─────┼─────┼─────┼─────┼─────┼─────┼─────┤
+ * │ │ RGB │ RGB │ RGB │ RGB │RAISE│ F1 │ F2 │ F3 │ F12 │ │ │ │ │
+ * │ │ SAI │ SAD │ VAI │ VAD │ │ │ │ │ │ │ │ │ │
+ * └─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┘
+ *
+ */
+
+ [_RAISE] = LAYOUT_3x14_wrapper (
+ _______________RAISE_310_L1________________, _________NUMBER_01__________, _______________RAISE_310_R1________________, QK_LEAD,
+ _______________RAISE_310_L2________________, _________NUMBER_02__________, _______________RAISE_310_R2________________, TD_UR,
+ _______________RAISE_310_L3________________, _________NUMBER_03__________, _______________RAISE_310_R3________________, TD_DL
+ ),
+
+
+ /* EXTRAS
+ * ┌─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┐
+ * │ ! │ │ │ │ │ │ /\ | () | [] | ; │ │ │ │LEAD │
+ * │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
+ * ├─────┼─────┼─────╆━━━━━╅─────┼─────╆━━━━━╅─────┼─────┼─────┼─────┼─────┼─────┼─────┤
+ * │ │ │ ┃EXTRA┃ │ ┃ @ # ┃ & % | | ' | │ │ │ │
+ * │ │ │ ┃ ┃ │ ┃ ┃ _ │ │ │ │ │ │ │
+ * ├─────┼─────┼─────╄━━━━━╃─────┼─────╄━━━━━╃─────┼─────┼─────┼─────┼─────┼─────┼─────┤
+ * │ │ │ │ │ │ │ │ , | . | ? │ │ │ │ │
+ * │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
+ * └─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┘
+ */
+
+ [_EX] = LAYOUT_3x14_wrapper (
+ ______________EXTRAS_310_L1________________, _________NUMBER_01__________, ______________EXTRAS_310_R1________________, QK_LEAD,
+ ______________EXTRAS_310_L2________________, _________NUMBER_02__________, ______________EXTRAS_310_R2________________, TD_UR,
+ ______________EXTRAS_310_L3________________, _________NUMBER_03__________, ______________EXTRAS_310_R3________________, TD_DL
+),
+
+
+ /* FUNCTION
+ * ┌─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┐
+ * │COPY │CLIP │ SS │ │ │ │ │ │ | /\ │ UP │ │ DEL │LEAD │
+ * │PASTE│ │ │ │ │ │ │ │ │ │ │ │ │ │
+ * ├─────┼─────┼─────╆━━━━━╅─────┼─────┼─────┼─────┼─────╆━━━━━╅─────┼─────┼─────┼─────┤
+ * │SHIFT│ M05 │ M06 ┃ M07 ┃ M08 │ │ │ │ ┃ LEFT┃ DOWN│RIGHT│ │ UP │
+ * │ │ │ ┃ ┃ │ │ │ │ ┃ ┃ │ │ │RIGHT│
+ * ├─────┼─────┼─────╄━━━━━╃─────┼─────┼─────┼─────┼─────╄━━━━━╃─────┼─────┼─────┼─────┤
+ * │ │ M01 │ M02 │ M03 │ M04 │ │ │ | | │ , │ . │ │DOWN │
+ * │ FN │ │ │ │ │ │ │ │ │ │ │ │ │LEFT │
+ * └─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┘
+ */
+
+ [_FN] = LAYOUT_3x14_wrapper (
+ _____________FUNCTION_310_L1_______________, _________NUMBER_01__________, _____________FUNCTION_310_R1_______________, QK_LEAD,
+ _____________FUNCTION_310_L2_______________, _________NUMBER_02__________, _____________FUNCTION_310_R2_______________, TD_UR,
+ _____________FUNCTION_310_L3_______________, _________NUMBER_03__________, _____________FUNCTION_310_R3_______________, TD_DL
+ ),
+
+
+
+ /* SYMBOLS
+ * ┌─────┬─────┬─────┬─────┬─────┐ ┌─────┬─────┬─────┬─────┬─────┐
+ * │ $ │ ^ │ < │ > │ │ │ │ | │ [ │ ] │ - │
+ * │ │ │ │ │ SYMB│ │ SYMB│ │ │ │ │
+ * ├─────┼─────┼─────╆━━━━━╅─────┤ ├─────╆━━━━━╅─────┼─────┼─────┤
+ * │ % │ : │ ; ┃ + ┃ = │ │ ┃ ┃ ( │ ) │ _ │
+ * │ │ │ ┃ ┃ │ │ ┃ ┃ │ │ │
+ * ├─────┼─────┼─────╄━━━━━╃─────┤ ├─────╄━━━━━╃─────┼─────┼─────┤
+ * │ & │ ' │ " │ * │ # │ │ ! │ ? │ / │ \ │ @ │
+ * │ │ │ │ │ │ │ │ │ │ │ │
+ * └─────┴─────┴─────┴─────┴─────┘ └─────┴─────┴─────┴─────┴─────┘
+ */
+
+ [_SYMB] = LAYOUT_3x14_wrapper (
+ _____________SYMBOLS_310_L1________________, _________NUMBER_01__________, _____________SYMBOLS_310_R1________________, QK_LEAD,
+ _____________SYMBOLS_310_L2________________, _________NUMBER_02__________, _____________SYMBOLS_310_R2________________, TD_UR,
+ _____________SYMBOLS_310_L3________________, _________NUMBER_03__________, _____________SYMBOLS_310_R3________________, TD_DL
+ ),
+
+
+
+};
+
+
+#ifndef NUM_DIRECTIONS
+# define NUM_DIRECTIONS 2
+#endif
+#ifdef ENCODER_MAP_ENABLE
+const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = {
+ [_WM] = { ENCODER_CCW_CW(LCTL(KC_V), LCTL(KC_C)) },
+ [_QW] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU) },
+ [_LOWER] = { ENCODER_CCW_CW(____, ____) },
+ [_RAISE] = { ENCODER_CCW_CW(____, ____) },
+ [_EX] = { ENCODER_CCW_CW(____, ____) },
+ [_FN] = { ENCODER_CCW_CW(RGB_MOD, RGB_RMOD) },
+ [_SYMB] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU) }
+};
+#endif
+
+bool get_hold_on_other_key_press(uint16_t keycode, keyrecord_t *record) {
+ switch (keycode) {
+ case SFT_T(KC_A):
+ // Do not force the mod-tap key press to be handled as a modifier
+ // if any other key was pressed while the mod-tap key is held down.
+ return false;
+ case TEX:
+ return false;
+ case CTRLX:
+ return false;
+ case FNZ:
+ return false;
+ case MGUI:
+ return false;
+ case VLOWER:
+ return false;
+ case KRAISE:
+ return false;
+ default:
+ // Force the dual-role key press to be handled as a modifier if any
+ // other key was pressed while the mod-tap key is held down.
+ return true;
+ }
+}
+
+#ifdef AUDIO_ENABLE
+float leader_start_song[][2] = SONG(ONE_UP_SOUND);
+float leader_succeed_song[][2] = SONG(ALL_STAR);
+float leader_fail_song[][2] = SONG(RICK_ROLL);
+#endif
+
+void matrix_scan_user(void);
+
+void leader_start_user(void) {
+#ifdef AUDIO_ENABLE
+ PLAY_SONG(leader_start_song);
+#endif
+}
+
+bool did_leader_succeed;
+
+void leader_end_user(void) {
+ did_leader_succeed = false;
+
+ if (leader_sequence_one_key(KC_E)) {
+ SEND_STRING(SS_LCTL(SS_LSFT("t")));
+ did_leader_succeed = true;
+ } else if (leader_sequence_two_keys(KC_E, KC_D)) {
+ SEND_STRING(SS_LGUI("r") "cmd\n" SS_LCTL("c"));
+ did_leader_succeed = true;
+ } else if (leader_sequence_two_keys(KC_A, KC_T)) {
+ SEND_STRING("@guidehouse.com");
+ did_leader_succeed = true;
+ }
+
+
+#ifdef AUDIO_ENABLE
+ if (did_leader_succeed) {
+ PLAY_SONG(leader_succeed_song);
+ } else {
+ PLAY_SONG(leader_fail_song);
+ }
+#endif
+} \ No newline at end of file
diff --git a/keyboards/mechwild/bde/rev2/keymaps/miketronic/rules.mk b/keyboards/mechwild/bde/rev2/keymaps/miketronic/rules.mk
new file mode 100644
index 0000000000..540fbaecb2
--- /dev/null
+++ b/keyboards/mechwild/bde/rev2/keymaps/miketronic/rules.mk
@@ -0,0 +1,13 @@
+BOOTMAGIC_ENABLE = yes # Enable Bootmagic Lite
+EXTRAKEY_ENABLE = yes # Audio control and System control
+TAP_DANCE_ENABLE = yes # Tap Dance keys
+NKRO_ENABLE = yes # Enable N-Key Rollover
+MACROS_ENABLED = yes
+LEADER_ENABLE = yes
+
+ENCODER_ENABLE = yes
+ENCODER_MAP_ENABLE = yes
+OLED_ENABLE = yes # Enable OLED Screen
+OLED_DRIVER = SSD1306 # Set OLED Driver
+
+RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow \ No newline at end of file
diff --git a/users/miketronic/config.h b/users/miketronic/config.h
new file mode 100644
index 0000000000..4123caa5bc
--- /dev/null
+++ b/users/miketronic/config.h
@@ -0,0 +1,12 @@
+// Copyright 2023 @miketronic -- Mike B <mxb540@gmail.com>
+// SPDX-License-Identifier: GPL-2.0+
+
+#pragma once
+
+#define DEBOUNCE 10
+#if defined(TAP_DANCE_ENABLE)
+# define TAP_CODE_DELAY 5
+# define TAP_HOLD_CAPS_DELAY 25
+#endif
+#define MACRO_TIMER 5
+#define ENABLE_COMPILE_KEYCODE \ No newline at end of file
diff --git a/users/miketronic/miketronic.c b/users/miketronic/miketronic.c
new file mode 100644
index 0000000000..3c47a72462
--- /dev/null
+++ b/users/miketronic/miketronic.c
@@ -0,0 +1,17 @@
+// Copyright 2023 @miketronic -- Mike B <mxb540@gmail.com>
+// SPDX-License-Identifier: GPL-2.0+
+
+#include "miketronic.h"
+
+
+__attribute__ ((weak)) void keyboard_post_init_keymap(void) { }
+
+// Init effect for RGB boards only
+void keyboard_post_init_user(void) {
+#ifdef RGB_MATRIX_ENABLE
+ rgblight_enable_noeeprom(); // enables Rgb, without saving settings
+ rgblight_sethsv_noeeprom(HSV_ORANGE); // sets the color without saving
+ rgb_matrix_mode_noeeprom(RGB_MATRIX_SOLID_COLOR);
+#endif
+ keyboard_post_init_keymap();
+} \ No newline at end of file
diff --git a/users/miketronic/miketronic.h b/users/miketronic/miketronic.h
new file mode 100644
index 0000000000..4032215a1d
--- /dev/null
+++ b/users/miketronic/miketronic.h
@@ -0,0 +1,63 @@
+// Copyright 2023 @miketronic -- Mike B <mxb540@gmail.com>
+// SPDX-License-Identifier: GPL-2.0+
+
+#pragma once
+#include QMK_KEYBOARD_H
+
+#include "quantum.h"
+#include "wrappers.h"
+#include "action.h"
+#include "version.h"
+#include "process_records.h"
+#ifdef TAP_DANCE_ENABLE
+# include "tapdances.h"
+#endif
+
+enum layer_names {
+ _WM,
+ _QW,
+ _LOWER,
+ _RAISE,
+ _EX,
+ _FN,
+ _SYMB
+};
+
+
+// Layer macros
+#define LOWER MO(_LOWER)
+#define RAISE MO(_RAISE)
+#define FN MO(_FN)
+#define EX MO(_EX)
+#define TEX LT(_EX, KC_T) // Tap for "T", hold for Extras layer
+#define BSYM LT(_SYMB, KC_B) // Tap for "B", hold for Symbols layer
+#define JSYM LT(_SYMB, KC_J) // Tap for "J", hold for Symbols layer
+#define FNZ LT(_FN, KC_Z) // Tap for "Z", hold for FN layer
+#define VLOWER LT(_LOWER, KC_V) // Tap for "V", hold for Lower layer
+#define KRAISE LT(_RAISE, KC_K) // Tap for "K", hold for Raise layer
+
+// Mod Tap
+//#define ASFT MT(MOD_LSFT, KC_A) // Tap for "A", hold for Shift
+#define ASFT SFT_T(KC_A) // Tap for "A", hold for Shift
+#define GGUI MT(MOD_LGUI, KC_G) // Tap for "G", hold for OS Key
+#define MGUI MT(MOD_LGUI, KC_M) // Tap for "M", hold for OS Key
+#define CTRLX MT(MOD_LCTL, KC_X) // Tap for "X", hold for Ctrl
+#define CALT MT(MOD_LALT, KC_C) // Tap for "C", hold for Alt
+#define L_ALT MT(MOD_RALT, KC_L) // Tap for "L", hold for Alt
+#define TBSHFT MT(MOD_LSFT, KC_TAB) // Tap for Tab, hold for Shift
+#define SLSHFT MT(MOD_RSFT, KC_SLSH) // Tap for Slash, hold for Shift
+#define SFT_ENT RSFT_T(KC_ENT) // Tap for Enter, hold for Shift
+#define OSSFT OSM(MOD_LSFT) // One shot left Shift
+
+// MISC
+#define CALTDEL LCTL(LALT(KC_DEL)) // Ctrl Alt Del
+#define TSKMGR LCTL(LSFT(KC_ESC)) // Task Manager
+#define CLIP LCTL(LALT(KC_Q)) // Clipboard (Ditto)
+#define SS LCTL(LALT(KC_G)) // Greenshot region
+#define NUM LSFT(KC_3)
+#define AT LSFT(KC_2)
+#define COPY LCTL(KC_C)
+#define PASTE LCTL(KC_V)
+#define ____ KC_TRNS
+#define XXXX KC_NO
+#define XXXXXXX KC_NO
diff --git a/users/miketronic/process_records.c b/users/miketronic/process_records.c
new file mode 100644
index 0000000000..5c60ddf100
--- /dev/null
+++ b/users/miketronic/process_records.c
@@ -0,0 +1,151 @@
+// Copyright 2023 @miketronic -- Mike B <mxb540@gmail.com>
+// SPDX-License-Identifier: GPL-2.0+
+
+#include "miketronic.h"
+#include "process_records.h"
+
+__attribute__((weak)) bool process_record_keymap(uint16_t keycode, keyrecord_t *record) {
+ return true;
+}
+
+__attribute__((weak)) bool process_record_secrets(uint16_t keycode, keyrecord_t *record) {
+ return true;
+}
+
+
+bool process_record_user(uint16_t keycode, keyrecord_t *record) {
+
+ switch (keycode) {
+ case VERSION:
+ if (!record->event.pressed) {
+ send_string_with_delay_P(PSTR(QMK_KEYBOARD ":" QMK_KEYMAP "\nVersion:" QMK_VERSION ", built: " QMK_BUILDDATE "\n"), MACRO_TIMER);
+ }
+ break;
+
+ case M01:
+ if (record->event.pressed) {
+ SEND_STRING("//a11");
+ }
+ break;
+
+ case M02:
+ if (record->event.pressed) {
+ SEND_STRING("//a12");
+ }
+ break;
+
+ case M03:
+ if (record->event.pressed) {
+ SEND_STRING("//a08");
+ }
+ break;
+
+ case M04:
+ if (record->event.pressed) {
+ SEND_STRING("//a09");
+ }
+ break;
+
+ case M05:
+ if (record->event.pressed) {
+ SEND_STRING("//th");
+ }
+ break;
+
+ case M06:
+ if (record->event.pressed) {
+ SEND_STRING("//re");
+ }
+ break;
+
+ case M07:
+ if (record->event.pressed) {
+ SEND_STRING("//yw");
+ }
+ break;
+
+ case M08:
+ if (record->event.pressed) {
+ tap_random_base64();
+ }
+ break;
+
+ case CCCV: // One key copy/paste
+ if (record->event.pressed) {
+ copy_paste_timer = timer_read();
+ } else {
+ if (timer_elapsed(copy_paste_timer) > TAPPING_TERM) { // Hold, copy
+ tap_code16(LCTL(KC_C));
+ } else { // Tap, paste
+ tap_code16(LCTL(KC_V));
+ }
+ }
+ break;
+
+ case IENTER: // Tap for letter "i", slight hold for "enter"
+ if (record->event.pressed) {
+ copy_paste_timer = timer_read();
+ } else {
+ if (timer_elapsed(copy_paste_timer) > TAPPING_TERM) { // Hold, enter
+ tap_code16(KC_ENT);
+ } else { // Tap, "i"
+ tap_code16(KC_I);
+ }
+ }
+ break;
+
+ case PRN:
+ if (record->event.pressed) {
+ SEND_STRING("()");
+ tap_code(KC_LEFT);
+ }
+ break;
+
+ case BRACES:
+ if (record->event.pressed) {
+ uint8_t shifted = get_mods() & (MOD_MASK_SHIFT);
+ if (shifted) {
+ unregister_code(KC_LSFT);
+ unregister_code(KC_RSFT);
+ SEND_STRING("<>"SS_TAP(X_LEFT));
+ }
+ else {
+ SEND_STRING("[]"SS_TAP(X_LEFT));
+ }
+ }
+ break;
+
+#if defined(RGBLIGHT_ENABLE)
+ case RGB1:
+ if (record->event.pressed) {
+ rgblight_sethsv_noeeprom(HSV_BLUE);
+ }
+ break;
+
+ case RGB2:
+ if (record->event.pressed) {
+ rgblight_sethsv_noeeprom(HSV_RED);
+ }
+ break;
+
+ case RGB3:
+ if (record->event.pressed) {
+ rgblight_sethsv_noeeprom(HSV_ORANGE);
+ }
+ break;
+
+ case RGB4:
+ if (record->event.pressed) {
+ rgblight_sethsv_noeeprom(HSV_WHITE);
+ }
+ break;
+
+ case RGB5:
+ if (record->event.pressed) {
+ rgblight_sethsv_noeeprom(HSV_GREEN);
+ }
+ break;
+#endif
+ }
+ return process_record_keymap(keycode, record) && process_record_secrets(keycode, record);
+}
diff --git a/users/miketronic/process_records.h b/users/miketronic/process_records.h
new file mode 100644
index 0000000000..17737490a1
--- /dev/null
+++ b/users/miketronic/process_records.h
@@ -0,0 +1,38 @@
+// Copyright 2023 @miketronic -- Mike B <mxb540@gmail.com>
+// SPDX-License-Identifier: GPL-2.0+
+
+#pragma once
+#include "miketronic.h"
+
+
+bool process_record_secrets(uint16_t keycode, keyrecord_t *record);
+bool process_record_keymap(uint16_t keycode, keyrecord_t *record);
+uint16_t copy_paste_timer;
+
+enum custom_keycodes {
+ WM = QK_USER,
+ QW,
+ MAKE,
+ VERSION,
+ M01,
+ M02,
+ M03,
+ M04,
+ M05,
+ M06,
+ M07,
+ M08,
+ M09,
+ M10,
+ M11,
+ M12,
+ RGB1,
+ RGB2,
+ RGB3,
+ RGB4,
+ RGB5,
+ IENTER,
+ PRN,
+ BRACES,
+ CCCV
+};
diff --git a/users/miketronic/readme.md b/users/miketronic/readme.md
new file mode 100644
index 0000000000..619a84ec2e
--- /dev/null
+++ b/users/miketronic/readme.md
@@ -0,0 +1,25 @@
+Copyright 2023 @miketronic -- Mike B <mxb540@gmail.com>
+SPDX-License-Identifier: GPL-2.0+
+
+# Layout for ortho 4x12 and 3x10 boards
+# My current daily drivers: Planck, Pi40 and Satpad
+
+**Objective:** I tried to make layouts with core functions that are able to be present on the 3x10 boards and adapt those to the "middle 3x10" of the 4x12 boards to make going back and forth between the two board sizes easier.
+
+
+##### My Main Layer - Workman
+
+| | | | | | | | | | | | |
+| ---- |:----:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| ----:|
+| Tab/Esc | Q/Esc | D | R | W | B/SYM | J/SYM | F | U | P | BSPC | BSPC |
+| Tab/Shift | A | S | H | T/EX | G | Y | N | E | O | I/Enter | Enter|
+| Shft | Z | X | M | C | V | K | L | Spc/, | Spc/. | / | Up/Right |
+| FN | Ctrl | OS | Alt |Lower | Spc/Enter |Spc/Enter |Raise | SS| Clip | CopyPaste | Dn/Left |
+
+SYM - Symbols layer on hold
+FN - Function layer on hold
+EX - Extras layer on hold
+Clip - Macro to my clipboard app (Ditto)
+SS - Greenshot screenshot region
+
+##### Will add the other layers as I find time \ No newline at end of file
diff --git a/users/miketronic/rules.mk b/users/miketronic/rules.mk
new file mode 100644
index 0000000000..bbd3e4131e
--- /dev/null
+++ b/users/miketronic/rules.mk
@@ -0,0 +1,4 @@
+SRC += miketronic.c process_records.c
+ifeq ($(strip $(TAP_DANCE_ENABLE)), yes)
+ SRC += $(USER_PATH)/tapdances.c
+endif
diff --git a/users/miketronic/tapdances.c b/users/miketronic/tapdances.c
new file mode 100644
index 0000000000..5fcf66062b
--- /dev/null
+++ b/users/miketronic/tapdances.c
@@ -0,0 +1,33 @@
+// Copyright 2023 @miketronic -- Mike B <mxb540@gmail.com>
+// SPDX-License-Identifier: GPL-2.0+
+
+#include "miketronic.h"
+#include "tapdances.h"
+
+
+tap_dance_action_t tap_dance_actions[] = {
+
+ [T_BRC] = ACTION_TAP_DANCE_DOUBLE(KC_LBRC, KC_RBRC), // Tap once for Left Brace, twice for Right Brace
+ [T_MIN] = ACTION_TAP_DANCE_DOUBLE(KC_MINUS, KC_EQUAL), // Minus, Equals
+ [T_UMIN] = ACTION_TAP_DANCE_DOUBLE(KC_UNDS, KC_MINS), // Underscore, Minus
+ [T_GESC] = ACTION_TAP_DANCE_DOUBLE(KC_GRAVE, KC_ESCAPE), // Grave, Escape
+ [T_SE] = ACTION_TAP_DANCE_DOUBLE(KC_SPC, KC_ENT), // Space, Enter
+ [T_MULTDIV] = ACTION_TAP_DANCE_DOUBLE(KC_PAST, KC_PSLS), // Multiply, Divide
+ [T_UR] = ACTION_TAP_DANCE_DOUBLE(KC_UP, KC_RGHT), // Up, Right
+ [T_DL] = ACTION_TAP_DANCE_DOUBLE(KC_DOWN, KC_LEFT), // Down, Left
+ [T_CP] = ACTION_TAP_DANCE_DOUBLE(LCTL(KC_C), LCTL(KC_V)), // Copy, Paste
+ [T_DENT] = ACTION_TAP_DANCE_DOUBLE(KC_DOT, KC_ENT), // Dot, Enter
+ [T_IENT] = ACTION_TAP_DANCE_DOUBLE(KC_I, KC_ENT), // "I", Enter
+ [T_CSPC] = ACTION_TAP_DANCE_DOUBLE(KC_SPC, KC_COMM), // Space, Comma
+ [T_DSPC] = ACTION_TAP_DANCE_DOUBLE(KC_SPC, KC_DOT), // Space, Dot
+ [T_QEXC] = ACTION_TAP_DANCE_DOUBLE(KC_QUES, KC_EXLM), // "?", "!"
+ [T_QESC] = ACTION_TAP_DANCE_DOUBLE(KC_Q, KC_ESC), // "q", Escape
+ [T_TE] = ACTION_TAP_DANCE_DOUBLE(KC_TAB, KC_ESC), // Tab, Escape
+ [T_20] = ACTION_TAP_DANCE_DOUBLE(KC_2, KC_0), // "2", "0"
+ [T_SL] = ACTION_TAP_DANCE_DOUBLE(KC_SLSH, KC_BSLS), // Slash, Backslash
+ [T_XX] = ACTION_TAP_DANCE_DOUBLE(KC_LPRN, KC_RPRN), // Left Paren, Right Paren
+ [T_YY] = ACTION_TAP_DANCE_DOUBLE(KC_LBRC, KC_RBRC), // Left Bracket, Right Bracket
+ [T_ATH] = ACTION_TAP_DANCE_DOUBLE(KC_AT, KC_HASH), // "@", "#"
+ [T_PRAM] = ACTION_TAP_DANCE_DOUBLE(KC_PERC, KC_AMPR) // "%", "&"
+};
+
diff --git a/users/miketronic/tapdances.h b/users/miketronic/tapdances.h
new file mode 100644
index 0000000000..8135bac269
--- /dev/null
+++ b/users/miketronic/tapdances.h
@@ -0,0 +1,57 @@
+// Copyright 2023 @miketronic -- Mike B <mxb540@gmail.com>
+// SPDX-License-Identifier: GPL-2.0+
+
+#pragma once
+#include "quantum.h"
+
+
+#define TD_BRC TD(T_BRC)
+#define TD_ATH TD(T_ATH)
+#define TD_CSPC TD(T_CSPC)
+#define TD_DSPC TD(T_DSPC)
+#define TD_CP TD(T_CP)
+#define TD_DENT TD(T_DENT)
+#define TD_IENT TD(T_IENT)
+#define TD_MIN TD(T_MIN)
+#define TD_UMIN TD(T_UMIN)
+#define TD_GESC TD(T_GESC)
+#define TD_QESC TD(T_QESC)
+#define TD_QEXC TD(T_QEXC)
+#define TD_PRAM TD(T_PRAM)
+#define TD_SE TD(T_SE)
+#define TD_MD TD(T_MULTDIV)
+#define TD_UR TD(T_UR)
+#define TD_DL TD(T_DL)
+#define TD_TE TD(T_TE)
+#define TD_20 TD(T_20)
+#define TD_SL TD(T_SL)
+#define TD_XX TD(T_XX)
+#define TD_YY TD(T_YY)
+
+
+
+// Tap Dance
+enum tapdance_id{
+ T_BRC = 0,
+ T_ATH,
+ T_CSPC,
+ T_DSPC,
+ T_CP,
+ T_DENT,
+ T_IENT,
+ T_MIN,
+ T_UMIN,
+ T_GESC,
+ T_QESC,
+ T_QEXC,
+ T_SE,
+ T_MULTDIV,
+ T_UR,
+ T_DL,
+ T_TE,
+ T_20,
+ T_SL,
+ T_XX,
+ T_YY,
+ T_PRAM
+}; \ No newline at end of file
diff --git a/users/miketronic/wrappers.h b/users/miketronic/wrappers.h
new file mode 100644
index 0000000000..7d955f4172
--- /dev/null
+++ b/users/miketronic/wrappers.h
@@ -0,0 +1,226 @@
+// Copyright 2023 @miketronic -- Mike B <mxb540@gmail.com>
+// SPDX-License-Identifier: GPL-2.0+
+
+#pragma once
+#include "miketronic.h"
+
+/* Pattern adapted from users/drashna/wrapper.h
+ Define per-layout keymap sections. Also requires a wrapper.
+ Example:
+ #define LAYOUT_:name_wrapper(...) LAYOUT_:name(__VA_ARGS__)
+ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+ [_MODS] = LAYOUT_:name _wrapper(
+ _______, ___________________BLANK___________________, ...
+ ...
+ ),
+ }
+*/
+
+
+// clang-format off
+# define LAYOUT_ortho_4x12_wrapper(...) LAYOUT_ortho_4x12(__VA_ARGS__)
+# define LAYOUT_planck_grid_wrapper(...) LAYOUT_planck_grid(__VA_ARGS__)
+#if (defined(KEYBOARD_hazel_satpad))
+# define LAYOUT_3x11_wrapper(...) LAYOUT(__VA_ARGS__)
+#endif
+#if (defined(KEYBOARD_mechwild_bde_rev2))
+# define LAYOUT_3x14_wrapper(...) LAYOUT(__VA_ARGS__)
+#endif
+#if (defined(KEYBOARD_hazel_bad_wings))
+# define LAYOUT_split_3x5_3_wrapper(...) LAYOUT_split_3x5_3(__VA_ARGS__)
+#endif
+#if (defined(KEYBOARD_idobao_id75_v1))
+# define LAYOUT_ortho_5x15_wrapper(...) LAYOUT_ortho_5x15(__VA_ARGS__)
+#endif
+
+
+#define _________NUMBER_01__________ KC_7, KC_8, KC_9
+#define _________NUMBER_02__________ KC_4, KC_5, KC_6
+#define _________NUMBER_03__________ KC_1, TD_20, KC_3
+
+
+
+#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_________________ FNZ, KC_X, KC_C, VLOWER, KC_B
+
+#define _________________QWERTY_R1_________________ KC_Y, KC_U, KC_I, KC_O, KC_P
+#define _________________QWERTY_R2_________________ KC_H, KC_J, KRAISE, KC_L, KC_SCLN
+#define _________________QWERTY_R3_________________ KC_N, KC_M, KC_COMM, KC_DOT, KC_SLASH
+
+
+
+#define ________________NUMBER_LEFT________________ KC_1, KC_2, KC_3, KC_4, KC_5
+#define ________________NUMBER_RIGHT_______________ KC_6, KC_7, KC_8, KC_9, KC_0
+#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
+
+#define ______________LONG_FUNC_LEFT_______________ KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6
+#define ______________LONG_FUNC_RIGHT______________ KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12
+
+#define _________________BLANK_5___________________ _______, _______, _______, _______, _______
+#define _________________BLANK_6___________________ _______, _______, _______, _______, _______, _______
+
+#define _________________LOWER_L1__________________ KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC
+#define _________________LOWER_L2__________________ _________________FUNC_LEFT_________________
+#define _________________LOWER_L3__________________ _________________FUNC_RIGHT________________
+
+#define _________________LOWER_R1__________________ KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN
+#define _________________LOWER_R2__________________ _______, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR
+#define _________________LOWER_R3__________________ _______, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT
+
+#define _______________LOWER_310_L1________________ PRN, BRACES, TD_SL, _______, _______
+#define _______________LOWER_310_L2________________ TD_ATH, TD_PRAM, _______, _______, _______
+#define _______________LOWER_310_L3________________ _______, _______, _______, _______, _______
+
+#define _______________LOWER_310_R1________________ _______, KC_7, KC_8, KC_9, _______
+#define _______________LOWER_310_R2________________ TD_DENT, KC_4, KC_5, KC_6, TD_UR
+#define _______________LOWER_310_R3________________ KC_0, KC_1, TD_20, KC_3, TD_DL
+
+#define _______________LOWER_412_L1________________ _______, PRN, BRACES, TD_SL, _______, _______
+#define _______________LOWER_412_L2________________ _______, TD_ATH, TD_PRAM, _______, _______, _______
+#define _______________LOWER_412_L3________________ _______, _______, _______, _______, _______, _______
+#define _______________LOWER_412_L4________________ _______, _______, _______, _______, _______, _______
+
+#define _______________LOWER_412_R1________________ _______, KC_7, KC_8, KC_9, _______, _______
+#define _______________LOWER_412_R2________________ TD_DENT, KC_4, KC_5, KC_6, _______, _______
+#define _______________LOWER_412_R3________________ KC_0, KC_1, TD_20, KC_3, _______, TD_UR
+#define _______________LOWER_412_R4________________ _______, _______, KC_BSPC, KC_SPC, TD_DENT, TD_DL
+
+
+
+#define _________________RAISE_L1__________________ ________________NUMBER_LEFT________________
+#define _________________RAISE_L2__________________ ___________________BLANK___________________
+#define _________________RAISE_L3__________________ ___________________BLANK___________________
+
+#define _________________RAISE_R1__________________ ________________NUMBER_RIGHT_______________
+#define _________________RAISE_R2__________________ _______, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC
+#define _________________RAISE_R3__________________ _______, KC_HOME, KC_PGDN, KC_PGUP, KC_END
+
+#define _______________RAISE_310_L1________________ QK_BOOT, DB_TOGG, _______, _______, QK_MAKE
+#define _______________RAISE_310_L2________________ KC_LSFT, RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD
+#define _______________RAISE_310_L3________________ _______, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD
+
+#define _______________RAISE_310_R1________________ _______, KC_F7, KC_F8, KC_F9, KC_F10
+#define _______________RAISE_310_R2________________ TD_UMIN, KC_F4, KC_F5, KC_F6, KC_F11
+#define _______________RAISE_310_R3________________ _______, KC_F1, KC_F2, KC_F3, KC_F12
+
+#define _______________RAISE_412_L1________________ QK_BOOT, DB_TOGG, _______, _______, _______, QK_MAKE
+#define _______________RAISE_412_L2________________ KC_LSFT, RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, WM
+#define _______________RAISE_412_L3________________ _______, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, QW
+
+#define _______________RAISE_412_R1________________ _______, _______, KC_F7, KC_F8, KC_F9, KC_F10
+#define _______________RAISE_412_R2________________ _______, _______, KC_F4, KC_F5, KC_F6, KC_F11
+#define _______________RAISE_412_R3________________ _______, TD_UMIN, KC_F1, KC_F2, KC_F3, KC_F12
+
+
+
+#define ______________EXTRAS_310_L1________________ KC_EXLM, _______, _______, _______, _______
+#define ______________EXTRAS_310_L2________________ KC_LSFT, _______, _______, _______, _______
+#define ______________EXTRAS_310_L3________________ _______, _______, _______, _______, _______
+
+#define ______________EXTRAS_310_R1________________ _______, TD_SL, PRN, BRACES, KC_SCLN
+#define ______________EXTRAS_310_R2________________ QK_LEAD, TD_ATH, TD_PRAM, _______, KC_QUOT
+#define ______________EXTRAS_310_R3________________ _______, _______, KC_COMM, KC_DOT, KC_QUES
+
+#define ______________EXTRAS_412_L1________________ _______, KC_EXLM, _______, _______, _______, _______
+#define ______________EXTRAS_412_L2________________ KC_LSFT, _______, _______, _______, _______, _______
+#define ______________EXTRAS_412_L3________________ _______, _______, _______, _______, _______, _______
+#define ______________EXTRAS_412_L4________________ _______, _______, _______, _______, _______, TD_SE
+
+#define ______________EXTRAS_412_R1________________ _______, TD_SL, PRN, BRACES, KC_SCLN, _______
+#define ______________EXTRAS_412_R2________________ QK_LEAD, TD_ATH, TD_PRAM, _______, KC_QUOT, _______
+#define ______________EXTRAS_412_R3________________ _______, _______, KC_COMM, KC_DOT, KC_QUES, _______
+#define ______________EXTRAS_412_R4________________ TD_SE, _______, _______, _______, _______, _______
+
+
+
+#define _____________FUNCTION_310_L1_______________ CCCV, CLIP, SS, _______, _______
+#define _____________FUNCTION_310_L2_______________ TBSHFT, M05, M06, M07, M08
+#define _____________FUNCTION_310_L3_______________ _______, M01, M02, M03, M04
+
+#define _____________FUNCTION_310_R1_______________ _______, TD_SL, KC_UP, _______, KC_DEL
+#define _____________FUNCTION_310_R2_______________ _______, KC_LEFT, KC_DOWN, KC_RGHT, TD_UR
+#define _____________FUNCTION_310_R3_______________ _______, _______, KC_COMM, KC_DOT, TD_DL
+
+#define _____________FUNCTION_412_L1_______________ CCCV, CLIP, SS, _______, _______, _______
+#define _____________FUNCTION_412_L2_______________ TBSHFT, M05, M06, M07, M08, _______
+#define _____________FUNCTION_412_L3_______________ _______, M01, M02, M03, M04, _______
+#define _____________FUNCTION_412_L4_______________ _______, RGB1, RGB2, RGB3, RGB4, _______
+
+#define _____________FUNCTION_412_R1_______________ _______, T_SL, KC_UP, _______, _______, KC_DEL
+#define _____________FUNCTION_412_R2_______________ _______, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______
+#define _____________FUNCTION_412_R3_______________ _______, _______, KC_COMM, KC_DOT, KC_QUES, T_UR
+#define _____________FUNCTION_412_R4_______________ _______, _______, _______, _______, _______, T_DL
+
+#define ____________FUNCTION_ID75_TOP_R____________ M06, M07, M08, M09, M10, KC_DEL
+
+
+
+#define _____________SYMBOLS_310_L1________________ KC_DLR, KC_CIRC, KC_LABK, KC_RABK, ____
+#define _____________SYMBOLS_310_L2________________ KC_PERC, KC_COLN, KC_SCLN, KC_PLUS, KC_EQL
+#define _____________SYMBOLS_310_L3________________ KC_AMPR, KC_QUOT, KC_DQUO, KC_ASTR, KC_HASH
+
+#define _____________SYMBOLS_310_R1________________ ____, KC_PIPE, KC_LBRC, KC_RBRC, KC_MINS
+#define _____________SYMBOLS_310_R2________________ XXXX, XXXX, KC_LPRN, KC_RPRN, KC_UNDS
+#define _____________SYMBOLS_310_R3________________ KC_EXLM, KC_QUES, KC_SLSH, KC_BSLS, KC_AT
+
+
+
+#define _________________ADJUST_L1_________________ RGB_MOD, RGB_HUI, RGB_SAI, RGB_VAI, RGB_TOG
+#define _________________ADJUST_L2_________________ MU_TOGG, CK_TOGG, AU_ON, AU_OFF, AG_NORM
+#define _________________ADJUST_L3_________________ RGB_RMOD,RGB_HUD,RGB_SAD, RGB_VAD, KC_RGB_T
+
+#define _________________ADJUST_R1_________________ KC_SEC1, KC_SEC2, KC_SEC3, KC_SEC4, KC_SEC5
+#define _________________ADJUST_R2_________________ AG_SWAP, QWERTY, COLEMAK, DVORAK, WORKMAN
+#define _________________ADJUST_R3_________________ MG_NKRO, KC_MUTE, KC_VOLD, KC_VOLU, KC_MNXT
+
+
+#define _________FOUR_001__________ KC_BSPC, M08, M08, KC_MUTE
+#define _________FOUR_002__________ KC_ENT, M08, PRN, TD_UR
+#define _________FOUR_003__________ KC_BSLS, TD_ATH, BRACES, TD_DL
+
+#define _________3KEY_LEFT___________ OSSFT, KC_SPC, LOWER
+#define _________3KEY_RIGHT__________ RAISE, KC_ENT, CCCV
+
+#define ________3KEY_ID75_01_________ OSSFT, QK_LEAD, LOWER
+#define ________3KEY_ID75_02_________ KC_7, KC_8, KC_9
+#define ________3KEY_ID75_03_________ KC_4, KC_5, KC_6
+#define ________3KEY_ID75_04_________ KC_1, TD_20, KC_3
+#define ________3KEY_ID75_05_________ KC_SPC, TD_DENT, KC_ENT
+
+
+#define _____________WORKMAN_310_001_L_____________ TD_QESC, KC_D, KC_R, KC_W, BSYM
+#define _____________WORKMAN_310_001_R_____________ JSYM, KC_F, KC_U, KC_P, KC_BSPC
+#define _____________WORKMAN_310_002_L_____________ ASFT, KC_S, KC_H, TEX, KC_G
+#define _____________WORKMAN_310_002_R_____________ KC_Y, KC_N, KC_E, KC_O, KC_I
+#define _____________WORKMAN_310_003_L_____________ FNZ, CTRLX, MGUI, CALT, VLOWER
+#define _____________WORKMAN_310_003_R_____________ KRAISE, KC_L, TD_CSPC, TD_DSPC, SFT_ENT
+#define _____________WORKMAN_310_004_L_____________ FN, KC_LCTL, KC_LGUI, KC_LALT, LOWER
+#define _____________WORKMAN_310_004_R_____________ RAISE, SS, CLIP, CCCV, FN
+
+#define _____________WORKMAN_410_003_L_____________ FNZ, KC_X, KC_M, KC_C, KC_V
+#define _____________WORKMAN_410_003_R_____________ KC_K, KC_L, TD_CSPC, TD_DSPC, SFT_ENT
+
+#define _____________WORKMAN_311_001_L_____________ TD_QESC, KC_D, KC_R, KC_W, BSYM
+#define _____________WORKMAN_311_001_R_____________ JSYM, KC_F, KC_U, KC_P, KC_BSPC
+#define _____________WORKMAN_311_002_L_____________ ASFT, KC_S, KC_H, TEX, KC_G
+#define _____________WORKMAN_311_002_R_____________ KC_Y, KC_N, KC_E, KC_O, KC_I
+#define _____________WORKMAN_311_003_L_____________ FNZ, CTRLX, MGUI, CALT, VLOWER, KC_ENT
+#define _____________WORKMAN_311_003_R_____________ KRAISE, KC_L, TD_CSPC, TD_DSPC, SFT_ENT
+
+#define _____________WORKMAN_412_001_L_____________ TD_TE, TD_QESC, KC_D, KC_R, KC_W, BSYM
+#define _____________WORKMAN_412_001_R_____________ JSYM, KC_F, KC_U, KC_P, KC_BSPC, KC_BSPC
+#define _____________WORKMAN_412_002_L_____________ TBSHFT, KC_A, KC_S, KC_H, TEX, KC_G
+#define _____________WORKMAN_412_002_R_____________ KC_Y, KC_N, KC_E, KC_O, KC_I, KC_ENT
+#define _____________WORKMAN_412_003_L_____________ KC_LSFT, KC_Z, KC_X, KC_M, KC_C, KC_V
+#define _____________WORKMAN_412_003_R_____________ KC_K, KC_L, TD_CSPC, TD_DSPC, SFT_ENT, TD_UR
+#define _____________WORKMAN_412_004_L_____________ FN, KC_LCTL, KC_LGUI, KC_LALT, LOWER, TD_SE
+#define _____________WORKMAN_412_004_R_____________ TD_SE, RAISE, SS, CLIP, CCCV, TD_DL
+
+#define _____________WORKMAN_ID75_TOP_L____________ KC_ESC, M01, M02, M03, M04, M05
+#define _____________WORKMAN_ID75_TOP_R____________ M06, M07, M08, M09, M10, KC_BSPC
+#define _____________WORKMAN_ID75_BOT_L____________ FN, KC_LCTL, KC_LGUI, KC_LALT, LOWER, KC_SPC
+#define _____________WORKMAN_ID75_BOT_R____________ KC_ENT, RAISE, SS, CLIP, CCCV, TD_DL
+
+// clang-format on \ No newline at end of file