summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authormiketronic <mikebarnoski@gmail.com>2023-07-09 07:10:24 -0400
committerGitHub <noreply@github.com>2023-07-09 21:10:24 +1000
commit5bc282eefe36dd45393bcba3f861fa168013f7ce (patch)
treeaeb269b5edf59a2650a63708be8683faf984ba1c
parent06a36824ad7e964c41e10e49780dd220ae573a95 (diff)
Userspace and keymap addition (#20522)
Co-authored-by: Drashna Jaelre <drashna@live.com>
-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 @@
1// Copyright 2023 @miketronic -- Mike B <mxb540@gmail.com>
2// SPDX-License-Identifier: GPL-2.0+
3
4#pragma once
5
6# define TAPPING_TERM 160
7# define TAPPING_TERM_PER_KEY
8# define HOLD_ON_OTHER_KEY_PRESS
9# define QUICK_TAP_TERM TAPPING_TERM / 2
10# define QUICK_TAP_TERM_PER_KEY
11
12
13
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 @@
1// Copyright 2023 @miketronic -- Mike B <mxb540@gmail.com>
2// SPDX-License-Identifier: GPL-2.0+
3
4#include "miketronic.h"
5
6
7
8
9
10const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
11
12 /* Workman
13 * ┌─────┬─────┬─────┬─────┬─────┬─────┐ ┌─────┬─────┬─────┬─────┬─────┬─────┐
14 * │ TAB │ Q │ D │ R │ W │ B │ │ J │ F │ U │ P │ BSPC│ BSPC│
15 * │ ESC │ ESC │ │ │ │ SYM │ │ SYM │ │ │ │ │ │
16 * ├─────┼─────┼─────┼─────╆━━━━━╅─────┤ ├─────╆━━━━━╅─────┼─────┼─────┼─────┤
17 * │ TAB │ A │ S │ H ┃ T ┃ G │ │ Y ┃ N ┃ E │ O │ I │ │
18 * │SHIFT│ │ │ ┃ EX ┃ │ │ ┃ ┃ │ │ENTER│ENTER│
19 * ├─────┼─────┼─────┼─────╄━━━━━╃─────┤ ├─────╄━━━━━╃─────┼─────┼─────┼─────┤
20 * │SHIFT| Z │ X │ M │ C │ V │ │ K │ L │ SPC │ SPC │ / │ UP |
21 * │ │ │ │ │ │ │ │ │ │ , │ . │ │RIGHT|
22 * ├─────┼─────┼─────┼─────┼─────┼─────┤ ├─────┼─────┼─────┼─────┼─────┼─────┤
23 * │ FN │CTRL │ OS │ ALT │LOWER│ │ │ │RAISE│ SS │CLIP │COPY │ DN │
24 * │ │ │ │ │ │ │ │ │ │ │ │PASTE│LEFT │
25 * └─────┴─────┴─────┴─────┴─────┴─────┘ └─────┴─────┴─────┴─────┴─────┴─────┘
26 */
27
28 [_WM] = LAYOUT_ortho_4x12_wrapper (
29 RGB_TOG,
30 _____________WORKMAN_412_001_L_____________, _____________WORKMAN_412_001_R_____________,
31 _____________WORKMAN_412_002_L_____________, _____________WORKMAN_412_002_R_____________,
32 _____________WORKMAN_412_003_L_____________, _____________WORKMAN_412_003_R_____________,
33 _____________WORKMAN_412_004_L_____________, _____________WORKMAN_412_004_R_____________
34 ),
35
36 [_QW] = LAYOUT_ortho_4x12_wrapper (
37 RGB_TOG,
38 KC_TAB, _________________QWERTY_L1_________________, _________________QWERTY_R1_________________, KC_BSPC,
39 KC_ESC, _________________QWERTY_L2_________________, _________________QWERTY_R2_________________, KC_QUOT,
40 KC_LSFT, _________________QWERTY_L3_________________, _________________QWERTY_R3_________________, KC_ENT,
41 _____________WORKMAN_412_004_L_____________, _____________WORKMAN_412_004_R_____________
42 ),
43
44
45
46
47 /* Lower
48 * ┌─────┬─────┬─────┬─────┬─────┬─────┐ ┌─────┬─────┬─────┬─────┬─────┬─────┐
49 * │ │ () │ [] │ /\ │ │ │ │ │ 7 │ 8 │ 9 │ │ │
50 * │ │ │ │ │ │ │ │ │ │ │ │ │ │
51 * ├─────┼─────┼─────┼─────╆━━━━━╅─────┤ ├─────╆━━━━━╅─────┼─────┼─────┼─────┤
52 * │ │ @ # │ & % │ ┃ ┃ │ │ ┃ 4 ┃ 5 │ 6 │ │ │
53 * │ │ │ │ ┃ ┃ │ │ ┃ ┃ │ │ │ │
54 * ├─────┼─────┼─────┼─────╄━━━━━╃─────┤ ├─────╄━━━━━╃─────┼─────┼─────┼─────┤
55 * │ │ │ │ │ │ │ │ 0 │ 1 │ 2 │ 3 │ │ UP │
56 * │ │ │ │ │ │ │ │ │ │ 0 │ │ │RIGHT│
57 * ├─────┼─────┼─────┼─────┼─────┼─────┤ ├─────┼─────┼─────┼─────┼─────┼─────┤
58 * │ │ │ │ │LOWER│ │ │ │BPSC │ SPC │ . │ │ DN │
59 * │ │ │ │ │ │ │ │ │ │ │ ENT │ │LEFT │
60 * └─────┴─────┴─────┴─────┴─────┴─────┘ └─────┴─────┴─────┴─────┴─────┴─────┘
61 */
62 [_LOWER] = LAYOUT_ortho_4x12_wrapper (
63 KC_MUTE,
64 _______________LOWER_412_L1________________, _______________LOWER_412_R1________________,
65 _______________LOWER_412_L2________________, _______________LOWER_412_R2________________,
66 _______________LOWER_412_L3________________, _______________LOWER_412_R3________________,
67 _______________LOWER_412_L4________________, _______________LOWER_412_R4________________
68 ),
69
70
71 /* RAISE
72 * ┌─────┬─────┬─────┬─────┬─────┬─────┐ ┌─────┬─────┬─────┬─────┬─────┬─────┐
73 * │BOOT │DEBUG│ │ │ │MAKE │ │ │ │ F7 │ F8 │ F9 │ F10 │
74 * │ │ │ │ │ │ │ │ │ │ │ │ │ │
75 * ├─────┼─────┼─────┼─────╆━━━━━╅─────┤ ├─────╆━━━━━╅─────┼─────┼─────┼─────┤
76 * │ │ RGB | RGB | RGB ┃ RGB ┃ WM │ │ ┃ / \ ┃ F4 │ F5 │ F6 │ F11 │
77 * │ │ TOG │ MOD │ HUI ┃ HUD ┃ │ │ ┃ ┃ │ │ │ │
78 * ├─────┼─────┼─────┼─────╄━━━━━╃─────┤ ├─────╄━━━━━╃─────┼─────┼─────┼─────┤
79 * │ │ RGB │ RGB │ RGB │ RGB │ QW │ │ │ _ │ F1 | F2 | F3 │ F12 │
80 * │ │ SAI │ SAD │ VAI │ VAD │ │ │ │ - │ │ │ │ │
81 * ├─────┼─────┼─────┼─────┼─────┼─────┤ ├─────┼─────┼─────┼─────┼─────┼─────┤
82 * │ │ │ │ │ │ │ │ │RAISE│ │ │ │ │
83 * │ │ │ │ │ │ │ │ │ │ │ │ │ │
84 * └─────┴─────┴─────┴─────┴─────┴─────┘ └─────┴─────┴─────┴─────┴─────┴─────┘
85 */
86 [_RAISE] = LAYOUT_ortho_4x12_wrapper (
87 KC_MUTE,
88 _______________RAISE_412_L1________________, _______________RAISE_412_R1________________,
89 _______________RAISE_412_L2________________, _______________RAISE_412_R2________________,
90 _______________RAISE_412_L3________________, _______________RAISE_412_R3________________,
91 _________________BLANK_6___________________, _________________BLANK_6___________________
92 ),
93
94
95 /* EXTRAS
96 * ┌─────┬─────┬─────┬─────┬─────┬─────┐ ┌─────┬─────┬─────┬─────┬─────┬─────┐
97 * │ │ ! │ │ │ │ │ │ │ /\ | [ | ] | ; │ │
98 * │ │ │ │ │ │ │ │ │ │ │ │ │ │
99 * ├─────┼─────┼─────┼─────╆━━━━━╅─────┤ ├─────╆━━━━━╅─────┼─────┼─────┼─────┤
100 * │SHIFT│ | |EXTRA┃ ┃ │ │ ┃ @ # ┃ & % | | ' | │
101 * │ │ │ │ ┃ ┃ │ │ ┃ ┃ │ │ │ │
102 * ├─────┼─────┼─────┼─────╄━━━━━╃─────┤ ├─────╄━━━━━╃─────┼─────┼─────┼─────┤
103 * │ │ │ │ │ │ │ │ │ │ , | . | ? │ │
104 * │ │ │ │ │ │ │ │ │ │ │ │ │ │
105 * ├─────┼─────┼─────┼─────┼─────┼─────┤ ├─────┼─────┼─────┼─────┼─────┼─────┤
106 * │ │ │ │ │ │ │ │ │ │ │ │ │ │
107 * │ │ │ │ │ │ │ │ │ │ │ │ │ │
108 * └─────┴─────┴─────┴─────┴─────┴─────┘ └─────┴─────┴─────┴─────┴─────┴─────┘
109 */
110 [_EX] = LAYOUT_ortho_4x12_wrapper (
111 KC_MUTE,
112 ______________EXTRAS_412_L1________________, ______________EXTRAS_412_R1________________,
113 ______________EXTRAS_412_L2________________, ______________EXTRAS_412_R2________________,
114 ______________EXTRAS_412_L3________________, ______________EXTRAS_412_R3________________,
115 ______________EXTRAS_412_L4________________, ______________EXTRAS_412_R4________________
116 ),
117
118
119
120 /* FUNCTION
121 * ┌─────┬─────┬─────┬─────┬─────┬─────┐ ┌─────┬─────┬─────┬─────┬─────┬─────┐
122 * │COPY │CLIP │ SS │ │ │ │ │ │ /\ │ UP │ │ │ DEL │
123 * │PASTE│ │ │ │ │ │ │ │ │ │ │ │ │
124 * ├─────┼─────┼─────┼─────╆━━━━━╅─────┤ ├─────╆━━━━━╅─────┼─────┼─────┼─────┤
125 * │TAB │ M05 | M06 | M07 ┃ M08 ┃ │ │ ┃LEFT ┃DOWN │RIGHT│ │UP │
126 * │SHIFT│ │ │ ┃ ┃ │ │ ┃ ┃ │ │ │RIGHT│
127 * ├─────┼─────┼─────┼─────╄━━━━━╃─────┤ ├─────╄━━━━━╃─────┼─────┼─────┼─────┤
128 * │ │ M01 │ M02 │ M03 │ M04 │ │ │ │ │ , | . | ? │DOWN │
129 * │ │ │ │ │ │ │ │ │ │ │ │ │LEFT │
130 * ├─────┼─────┼─────┼─────┼─────┼─────┤ ├─────┼─────┼─────┼─────┼─────┼─────┤
131 * │ │RGB1 │RGB2 │RGB3 │RGB4 │ │ │ │ │ │ │ │ │
132 * │ │ │ │ │ │ │ │ │ │ │ │ │ │
133 * └─────┴─────┴─────┴─────┴─────┴─────┘ └─────┴─────┴─────┴─────┴─────┴─────┘
134 */
135 [_FN] = LAYOUT_ortho_4x12_wrapper (
136 KC_MUTE,
137 _____________FUNCTION_412_L1_______________, _____________FUNCTION_412_R1_______________,
138 _____________FUNCTION_412_L2_______________, _____________FUNCTION_412_R2_______________,
139 _____________FUNCTION_412_L3_______________, _____________FUNCTION_412_R3_______________,
140 _____________FUNCTION_412_L4_______________, _____________FUNCTION_412_R4_______________
141 ),
142
143
144 /* SYMBOLS
145 * ┌─────┬─────┬─────┬─────┬─────┬─────┐ ┌─────┬─────┬─────┬─────┬─────┬─────┐
146 * │ | $ | ^ | < | > │ SYMB│ │ SYMB│ | | [ | ] | - | |
147 * │ │ │ │ │ │ │ │ │ │ │ │ │ │
148 * ├─────┼─────┼─────┼─────╆━━━━━╅─────┤ ├─────╆━━━━━╅─────┼─────┼─────┼─────┤
149 * │ | % | : | ; ┃ + ┃ = │ │ ┃ ┃ ( | ) | _ | |
150 * │ │ │ │ ┃ ┃ │ │ ┃ ┃ │ │ │ │
151 * ├─────┼─────┼─────┼─────╄━━━━━╃─────┤ ├─────╄━━━━━╃─────┼─────┼─────┼─────┤
152 * | | & | ' | " | * | # │ │ ! | ? | / | \ | @ | |
153 * │ │ │ │ │ │ │ │ │ │ │ │ │ │
154 * ├─────┼─────┼─────┼─────┼─────┼─────┤ ├─────┼─────┼─────┼─────┼─────┼─────┤
155 * │ │ │ │ │ │ │ │ │ │ │ │ │ │
156 * │ │ │ │ │ │ │ │ │ │ │ │ │ │
157 * └─────┴─────┴─────┴─────┴─────┴─────┘ └─────┴─────┴─────┴─────┴─────┴─────┘
158 */
159
160 [_SYMB] = LAYOUT_ortho_4x12_wrapper (
161 KC_MUTE,
162 _______, _____________SYMBOLS_310_L1________________, _____________SYMBOLS_310_R1________________, _______,
163 _______, _____________SYMBOLS_310_L2________________, _____________SYMBOLS_310_R2________________, _______,
164 _______, _____________SYMBOLS_310_L3________________, _____________SYMBOLS_310_R3________________, _______,
165 _________________BLANK_6___________________, _________________BLANK_6___________________
166 )
167
168};
169
170#ifndef NUM_DIRECTIONS
171# define NUM_DIRECTIONS 2
172#endif
173
174#if defined(ENCODER_MAP_ENABLE) && defined(KEYBOARD_1upkeyboards_pi40_mit_v1_0)
175const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = {
176 [_WM] = { ENCODER_CCW_CW(LCTL(KC_V), LCTL(KC_C)) },
177 [_QW] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU) },
178 [_LOWER] = { ENCODER_CCW_CW(____, ____) },
179 [_RAISE] = { ENCODER_CCW_CW(____, ____) },
180 [_EX] = { ENCODER_CCW_CW(____, ____) },
181 [_FN] = { ENCODER_CCW_CW(RGB_MOD, RGB_RMOD) },
182 [_SYMB] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU) }
183};
184#endif
185
186
187#ifdef OLED_ENABLE
188bool oled_task_user(void) {
189 // Host Keyboard Layer Status
190 oled_write_P(PSTR("Layer: "), false);
191
192 switch (get_highest_layer(layer_state)) {
193 case _LOWER:
194 oled_write_P(PSTR("LOWER"), false);
195 break;
196 case _RAISE:
197 oled_write_P(PSTR("RAISE"), false);
198 break;
199 case _EX:
200 oled_write_P(PSTR("EXTRA"), false);
201 break;
202 case _FN:
203 oled_write_P(PSTR("FUNCTION"), false);
204 break;
205 case _WM:
206 oled_write_P(PSTR("WORKMAN"), false);
207 break;
208 case _SYMB:
209 oled_write_P(PSTR("SYMBOLS"), false);
210 break;
211 default:
212 // Or use the write_ln shortcut over adding '\n' to the end of your string
213 oled_write_ln_P(PSTR("HOME"), false);
214 }
215
216// Host Keyboard LED Status
217 // led_t led_state = host_keyboard_led_state();
218 // oled_write_P(led_state.num_lock ? PSTR("NUM ") : PSTR(" "), false);
219 // oled_write_P(led_state.caps_lock ? PSTR("CAP ") : PSTR(" "), false);
220 // oled_write_P(led_state.scroll_lock ? PSTR("SCR ") : PSTR(" "), false);
221
222 return false;
223}
224#endif
225
226
227bool get_hold_on_other_key_press(uint16_t keycode, keyrecord_t *record) {
228 switch (keycode) {
229 case SFT_T(KC_A):
230 // Do not force the mod-tap key press to be handled as a modifier
231 // if any other key was pressed while the mod-tap key is held down.
232 return false;
233 case TEX:
234 return false;
235 case CTRLX:
236 return false;
237 case FNZ:
238 return false;
239 case MGUI:
240 return false;
241 case VLOWER:
242 return false;
243 case KRAISE:
244 return false;
245 default:
246 // Force the dual-role key press to be handled as a modifier if any
247 // other key was pressed while the mod-tap key is held down.
248 return true;
249 }
250}
251
252#ifdef AUDIO_ENABLE
253float leader_start_song[][2] = SONG(ONE_UP_SOUND);
254float leader_succeed_song[][2] = SONG(ALL_STAR);
255float leader_fail_song[][2] = SONG(RICK_ROLL);
256#endif
257
258void matrix_scan_user(void);
259
260void leader_start_user(void) {
261#ifdef AUDIO_ENABLE
262 PLAY_SONG(leader_start_song);
263#endif
264}
265
266bool did_leader_succeed;
267
268void leader_end_user(void) {
269 did_leader_succeed = false;
270
271 if (leader_sequence_one_key(KC_E)) {
272 SEND_STRING(SS_LCTL(SS_LSFT("t")));
273 did_leader_succeed = true;
274 } else if (leader_sequence_two_keys(KC_E, KC_D)) {
275 SEND_STRING(SS_LGUI("r") "cmd\n" SS_LCTL("c"));
276 did_leader_succeed = true;
277 } else if (leader_sequence_two_keys(KC_A, KC_T)) {
278 SEND_STRING("@guidehouse.com");
279 did_leader_succeed = true;
280 }
281
282
283#ifdef AUDIO_ENABLE
284 if (did_leader_succeed) {
285 PLAY_SONG(leader_succeed_song);
286 } else {
287 PLAY_SONG(leader_fail_song);
288 }
289#endif
290} \ 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 @@
1# Common feature for all keyboards
2BOOTMAGIC_ENABLE = yes # Enable Bootmagic Lite
3EXTRAKEY_ENABLE = yes # Audio control and System control
4TAP_DANCE_ENABLE = yes # Tap Dance keys
5NKRO_ENABLE = yes # Enable N-Key Rollover
6MACROS_ENABLED = yes
7
8
9# Keyboard specific
10AUTO_SHIFT_ENABLE = no
11CONSOLE_ENABLE = no # Console for debug
12COMMAND_ENABLE = no # Commands for debug and configuration
13BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
14RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow
15AUDIO_ENABLE = no # Audio output
16MOUSEKEY_ENABLE = no # Mouse keys
17
18LEADER_ENABLE = yes
19RGB_MATRIX_ENABLE = yes
20RGB_MATRIX_DRIVER = WS2812
21WS2812_DRIVER = vendor
22ENCODER_ENABLE = yes
23ENCODER_MAP_ENABLE = yes
24OLED_ENABLE = yes
25OLED_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 @@
1// Copyright 2023 @miketronic -- Mike B <mxb540@gmail.com>
2// SPDX-License-Identifier: GPL-2.0+
3
4#pragma once
5
6# define TAPPING_TERM 160
7# define TAPPING_TERM_PER_KEY
8# define HOLD_ON_OTHER_KEY_PRESS
9# define QUICK_TAP_TERM TAPPING_TERM / 2
10# define QUICK_TAP_TERM_PER_KEY
11
12# define CIRQUE_PINNACLE_TAP_ENABLE
13# define CIRQUE_PINNACLE_SECONDARY_TAP_ENABLE
14# define CIRQUE_PINNACLE_ATTENUATION_4X
15# define CIRQUE_PINNACLE_POSITION_MODE CIRQUE_PINNACLE_RELATIVE_MODE
16//# 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 @@
1// Copyright 2023 @miketronic -- Mike B <mxb540@gmail.com>
2// SPDX-License-Identifier: GPL-2.0+
3
4#include "miketronic.h"
5
6
7/*
8layer_state_t layer_state_set_user(layer_state_t state) {
9 return update_tri_layer_state(state, 1, 2, 3);
10}
11
12
13 [0] = LAYOUT_split_3x5_3(
14 KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, \
15 KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_QUOT, \
16 KC_Z, LGUI_T(KC_X), LALT_T(KC_C), KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, \
17 KC_LCTL, OSL(1), OSM(MOD_LSFT), KC_SPC, LT(2, KC_BSPC), KC_ENT
18 ),
19 [1] = LAYOUT_split_3x5_3(
20 KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_RBRC, KC_RCBR, KC_RPRN, KC_RABK, KC_NO, \
21 KC_GRV, KC_TILD, KC_UNDS, KC_EQL, KC_NO, KC_LBRC, KC_LCBR, KC_LPRN, KC_LABK, KC_BACKSLASH, \
22 KC_NO, KC_NO, KC_PLUS, KC_MINS, KC_NO, KC_NO, KC_NO, KC_COLN, KC_DOT, KC_SCLN, \
23 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
24 ),
25 [2] = LAYOUT_split_3x5_3(
26 KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_PIPE, KC_NO, \
27 KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, \
28 KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_DOT, KC_NO, \
29 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
30 ),
31 [3] = LAYOUT_split_3x5_3(
32 KC_ESC, KC_F1, KC_F4, KC_F7, KC_F10, KC_NO, KC_HOME, KC_UP, KC_END, KC_BSPC, \
33 KC_TAB, KC_F2, KC_F5, KC_F8, KC_F11, KC_NO, KC_LEFT, KC_DOWN, KC_RIGHT, KC_ENT, \
34 KC_NO, KC_F3, KC_F6, KC_F9, KC_F12, KC_NO, KC_MPRV, KC_MPLY, KC_MNXT, KC_DEL, \
35 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
36 )
37*/
38
39
40const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
41 /* WORKMAN
42 * ┌─────┬─────┬─────┬─────┬─────┐ ┌─────┬─────┬─────┬─────┬─────┐
43 * │ Q │ D │ R │ W │ B │ │ J │ F │ U │ P │ BSPC│
44 * │ ESC │ │ │ │ SYM │ │ SYM │ │ │ │ │
45 * ├─────┼─────┼─────╆━━━━━╅─────┤ ├─────╆━━━━━╅─────┼─────┼─────┤
46 * │ A │ S │ H ┃ T ┃ G │ │ Y ┃ N ┃ E │ O │ I │
47 * │SHIFT│ │ ┃ EX ┃ │ │ ┃ ┃ │ │ │
48 * ├─────┼─────┼─────╄━━━━━╃─────┤ ├─────╄━━━━━╃─────┼─────┼─────┤
49 * │ Z │ X │ M │ C │ V │ │ K │ L │ SPC │ SPC │ENTER│
50 * │ FN │ CTRL│ OS │ ALT │LOWER│ │RAISE│ │ , │ . │ │
51 * └─────┴─────┼─────┼─────┼─────┤ ├─────┼─────┼─────┼─────┴─────┘
52 * │OSM │SPACE│LOWER│ │RAISE│ENTER│COPY │
53 * │SHIFT│ │ │ │ │ │PASTE│
54 * └─────┴─────┴─────┘ └─────┴─────┴─────┘
55*/
56 [_WM] = LAYOUT_split_3x5_3_wrapper (
57 _____________WORKMAN_310_001_L_____________, _____________WORKMAN_310_001_R_____________,
58 _____________WORKMAN_310_002_L_____________, _____________WORKMAN_310_002_R_____________,
59 _____________WORKMAN_310_003_L_____________, _____________WORKMAN_310_003_R_____________,
60 _________3KEY_LEFT___________, _________3KEY_RIGHT__________
61 ),
62
63 [_QW] = LAYOUT_split_3x5_3_wrapper (
64 _________________QWERTY_L1_________________, _________________QWERTY_R1_________________,
65 _________________QWERTY_L2_________________, _________________QWERTY_R2_________________,
66 _________________QWERTY_L3_________________, _________________QWERTY_R3_________________,
67 _________3KEY_LEFT___________, _________3KEY_RIGHT__________
68 ),
69
70
71
72 /* LOWER
73 * ┌─────┬─────┬─────┬─────┬─────┐ ┌─────┬─────┬─────┬─────┬─────┐
74 * │ () │ [] │ /\ │ │ │ │ │ 7 │ 8 │ 9 │ │
75 * │ │ <> │ │ │ │ │ │ │ │ │ │
76 * ├─────┼─────┼─────╆━━━━━╅─────┤ ├─────╆━━━━━╅─────┼─────┼─────┤
77 * │ @ # │ & % │ ┃ ┃ │ │ . ┃ 4 ┃ 5 │ 6 │ UP │
78 * │ │ │ ┃ ┃ │ │ENTER┃ ┃ │ │RIGHT│
79 * ├─────┼─────┼─────╄━━━━━╃─────┤ ├─────╄━━━━━╃─────┼─────┼─────┤
80 * │ │ │ │ │ │ │ 0 │ 1 │ 2 │ 3 │ DOWN│
81 * │ │ │ │ │LOWER│ │ │ │ 0 │ │ LEFT│
82 * └─────┴─────┼─────┼─────┼─────┤ ├─────┼─────┼─────┼─────┴─────┘
83 * │OSM │SPACE│LOWER│ │RAISE│ENTER│COPY │
84 * │SHIFT│ │ │ │ │ │PASTE│
85 * └─────┴─────┴─────┘ └─────┴─────┴─────┘
86*/
87 [_LOWER] = LAYOUT_split_3x5_3_wrapper (
88 _______________LOWER_310_L1________________, _______________LOWER_310_R1________________,
89 _______________LOWER_310_L2________________, _______________LOWER_310_R2________________,
90 _______________LOWER_310_L3________________, _______________LOWER_310_R3________________,
91 _________3KEY_LEFT___________, _________3KEY_RIGHT__________
92 ),
93
94
95
96 /* RAISE
97 * ┌─────┬─────┬─────┬─────┬─────┐ ┌─────┬─────┬─────┬─────┬─────┐
98 * │ BOOT│DEBUG│ │ │ MAKE│ │ │ F7 │ F8 │ F9 │ F10 │
99 * │ │ │ │ │ │ │ │ │ │ │ │
100 * ├─────┼─────┼─────╆━━━━━╅─────┤ ├─────╆━━━━━╅─────┼─────┼─────┤
101 * │ │ RGB │ RGB ┃ RGB ┃ RGB │ │ _ ┃ F4 ┃ F5 │ F6 │ F11 │
102 * │ │ TOG │ MOD ┃ HUI ┃ HUD │ │ - ┃ ┃ │ │ │
103 * ├─────┼─────┼─────╄━━━━━╃─────┤ ├─────╄━━━━━╃─────┼─────┼─────┤
104 * │ │ RGB │ RGB │ RGB │ RGB │ │ │ F1 │ F2 │ F3 │ F12 │
105 * │ │ SAI │ SAD │ VAI │ VAD │ │RAISE│ │ │ │ │
106 * └─────┴─────┼─────┼─────┼─────┤ ├─────┼─────┼─────┼─────┴─────┘
107 * │OSM │SPACE│LOWER│ │RAISE│ENTER│COPY │
108 * │SHIFT│ │ │ │ │ │PASTE│
109 * └─────┴─────┴─────┘ └─────┴─────┴─────┘
110*/
111 [_RAISE] = LAYOUT_split_3x5_3_wrapper (
112 _______________RAISE_310_L1________________, _______________RAISE_310_R1________________,
113 _______________RAISE_310_L2________________, _______________RAISE_310_R2________________,
114 _______________RAISE_310_L3________________, _______________RAISE_310_R3________________,
115 _________3KEY_LEFT___________, _________3KEY_RIGHT__________
116 ),
117
118
119
120 /* EXTRAS
121 * ┌─────┬─────┬─────┬─────┬─────┐ ┌─────┬─────┬─────┬─────┬─────┐
122 * │ ! │ │ │ │ │ │ │ /\ | () | [] | ; │
123 * │ │ │ │ │ │ │ │ │ │ │ │
124 * ├─────┼─────┼─────╆━━━━━╅─────┤ ├─────╆━━━━━╅─────┼─────┼─────┤
125 * │ │ │ ┃EXTRA┃ │ │ ┃ @ # ┃ & % | │ ' │
126 * │ │ │ ┃ ┃ │ │ ┃ ┃ │ │ │
127 * ├─────┼─────┼─────╄━━━━━╃─────┤ ├─────╄━━━━━╃─────┼─────┼─────┤
128 * │ │ │ │ │ │ │ │ │ , │ . │ ? │
129 * │ │ │ │ │ │ │ │ │ │ │ │
130 * └─────┴─────┼─────┼─────┼─────┤ ├─────┼─────┼─────┼─────┴─────┘
131 * │OSM │SPACE│LOWER│ │RAISE│ENTER│COPY │
132 * │SHIFT│ │ │ │ │ │PASTE│
133 * └─────┴─────┴─────┘ └─────┴─────┴─────┘
134*/
135 [_EX] = LAYOUT_split_3x5_3_wrapper (
136 ______________EXTRAS_310_L1________________, ______________EXTRAS_310_R1________________,
137 ______________EXTRAS_310_L2________________, ______________EXTRAS_310_R2________________,
138 ______________EXTRAS_310_L3________________, ______________EXTRAS_310_R3________________,
139 _________3KEY_LEFT___________, _________3KEY_RIGHT__________
140 ),
141
142
143
144 /* FUNCTION
145 * ┌─────┬─────┬─────┬─────┬─────┐ ┌─────┬─────┬─────┬─────┬─────┐
146 * │COPY │CLIP │ SS │ │ │ │ │ /\ │ UP │ │ DEL │
147 * │PASTE│ │ │ │ │ │ │ │ │ │ │
148 * ├─────┼─────┼─────╆━━━━━╅─────┤ ├─────╆━━━━━╅─────┼─────┼─────┤
149 * │ TAB │ M05 │ M06 ┃ M07 ┃ M08 │ │ ┃ LEFT┃ DOWN│RIGHT│ UP │
150 * │ │ │ ┃ ┃ │ │ ┃ ┃ │ │RIGHT│
151 * ├─────┼─────┼─────╄━━━━━╃─────┤ ├─────╄━━━━━╃─────┼─────┼─────┤
152 * │ │ M01 │ M02 │ M03 │ M04 │ │ │ │ , │ . │DOWN │
153 * │ FN │ │ │ │ │ │ │ │ │ │LEFT │
154 * └─────┴─────┼─────┼─────┼─────┤ ├─────┼─────┼─────┼─────┴─────┘
155 * │OSM │SPACE│LOWER│ │RAISE│ENTER│COPY │
156 * │SHIFT│ │ │ │ │ │PASTE│
157 * └─────┴─────┴─────┘ └─────┴─────┴─────┘
158*/
159 [_FN] = LAYOUT_split_3x5_3_wrapper (
160 _____________FUNCTION_310_L1_______________, _____________FUNCTION_310_R1_______________,
161 _____________FUNCTION_310_L2_______________, _____________FUNCTION_310_R2_______________,
162 _____________FUNCTION_310_L3_______________, _____________FUNCTION_310_R3_______________,
163 _________3KEY_LEFT___________, _________3KEY_RIGHT__________
164 ),
165
166
167
168 /* SYMBOLS
169 * ┌─────┬─────┬─────┬─────┬─────┐ ┌─────┬─────┬─────┬─────┬─────┐
170 * │ $ │ ^ │ < │ > │ │ │ │ | │ [ │ ] │ - │
171 * │ │ │ │ │ SYMB│ │ SYMB│ │ │ │ │
172 * ├─────┼─────┼─────╆━━━━━╅─────┤ ├─────╆━━━━━╅─────┼─────┼─────┤
173 * │ % │ : │ ; ┃ + ┃ = │ │ ┃ ┃ ( │ ) │ _ │
174 * │ │ │ ┃ ┃ │ │ ┃ ┃ │ │ │
175 * ├─────┼─────┼─────╄━━━━━╃─────┤ ├─────╄━━━━━╃─────┼─────┼─────┤
176 * │ & │ ' │ " │ * │ # │ │ ! │ ? │ / │ \ │ @ │
177 * │ │ │ │ │ │ │ │ │ │ │ │
178 * └─────┴─────┼─────┼─────┼─────┤ ├─────┼─────┼─────┼─────┴─────┘
179 * │OSM │SPACE│LOWER│ │RAISE│ENTER│COPY │
180 * │SHIFT│ │ │ │ │ │PASTE│
181 * └─────┴─────┴─────┘ └─────┴─────┴─────┘
182*/
183 [_SYMB] = LAYOUT_split_3x5_3_wrapper (
184 KC_DLR, KC_CIRC, KC_LABK, KC_RABK, XXXX, XXXX, KC_PIPE, KC_LBRC, KC_RBRC, KC_MINS,
185 KC_PERC, KC_COLN, KC_SCLN, KC_PLUS, KC_EQL, XXXX, XXXX, KC_LPRN, KC_RPRN, KC_UNDS,
186 KC_AMPR, KC_QUOT, KC_DQUO, KC_ASTR, KC_HASH, KC_EXLM, KC_QUES, KC_SLSH, KC_BSLS, KC_AT,
187 _________3KEY_LEFT___________, _________3KEY_RIGHT__________
188 ),
189
190};
191
192
193bool get_hold_on_other_key_press(uint16_t keycode, keyrecord_t *record) {
194 switch (keycode) {
195 case SFT_T(KC_A):
196 // Do not force the mod-tap key press to be handled as a modifier
197 // if any other key was pressed while the mod-tap key is held down.
198 return false;
199 case TEX:
200 return false;
201 case CTRLX:
202 return false;
203 case FNZ:
204 return false;
205 case MGUI:
206 return false;
207 case VLOWER:
208 return false;
209 case KRAISE:
210 return false;
211 default:
212 // Force the dual-role key press to be handled as a modifier if any
213 // other key was pressed while the mod-tap key is held down.
214 return true;
215 }
216}
217
218
219#ifdef AUDIO_ENABLE
220float leader_start_song[][2] = SONG(ONE_UP_SOUND);
221float leader_succeed_song[][2] = SONG(ALL_STAR);
222float leader_fail_song[][2] = SONG(RICK_ROLL);
223#endif
224
225void matrix_scan_user(void);
226
227void leader_start_user(void) {
228#ifdef AUDIO_ENABLE
229 PLAY_SONG(leader_start_song);
230#endif
231}
232
233bool did_leader_succeed;
234
235void leader_end_user(void) {
236 did_leader_succeed = false;
237
238 if (leader_sequence_one_key(KC_E)) {
239 SEND_STRING(SS_LCTL(SS_LSFT("t")));
240 did_leader_succeed = true;
241 } else if (leader_sequence_two_keys(KC_E, KC_D)) {
242 SEND_STRING(SS_LGUI("r") "cmd\n" SS_LCTL("c"));
243 did_leader_succeed = true;
244 } else if (leader_sequence_two_keys(KC_A, KC_T)) {
245 SEND_STRING("@guidehouse.com");
246 did_leader_succeed = true;
247 }
248
249
250#ifdef AUDIO_ENABLE
251 if (did_leader_succeed) {
252 PLAY_SONG(leader_succeed_song);
253 } else {
254 PLAY_SONG(leader_fail_song);
255 }
256#endif
257}
258
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 @@
1# Common feature for all keyboards
2BOOTMAGIC_ENABLE = yes # Enable Bootmagic Lite
3EXTRAKEY_ENABLE = yes # Audio control and System control
4TAP_DANCE_ENABLE = yes # Tap Dance keys
5NKRO_ENABLE = yes # Enable N-Key Rollover
6MACROS_ENABLED = yes
7
8# Keyboard specific
9MOUSEKEY_ENABLE = yes # Mouse keys
10CAPS_WORD_ENABLE = yes
11KEY_OVERRIDE_ENABLE = yes
12LEADER_ENABLE = yes
13
14
15 LTO_ENABLE = no # Enabled this causes longer build time, but smaller file.
16 AUTO_SHIFT_ENABLE = no
17 UNICODE_ENABLE = no # Unicode
18 CONSOLE_ENABLE = no # Console for debug
19 COMMAND_ENABLE = no # Commands for debug and configuration
20 RGBLIGHT_ENABLE = no
21 BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
22 SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend (it uses the same timer as BACKLIGHT_ENABLE)
23 AUDIO_ENABLE = no # Audio output on port C6
24 MIDI_ENABLE = no # MIDI support
25 BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
26 GRAVE_ESC_ENABLE = no
27 SPACE_CADET_ENABLE = no
28 COMBO_ENABLE = no
29 OLED_ENABLE = no
30 ENCODER_ENABLE = no
31 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 @@
1// Copyright 2023 @miketronic -- Mike B <mxb540@gmail.com>
2// SPDX-License-Identifier: GPL-2.0+
3
4#pragma once
5
6# define TAPPING_TERM 160
7# define TAPPING_TERM_PER_KEY
8# define HOLD_ON_OTHER_KEY_PRESS
9# define QUICK_TAP_TERM TAPPING_TERM / 2
10# 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 @@
1// Copyright 2023 @miketronic -- Mike B <mxb540@gmail.com>
2// SPDX-License-Identifier: GPL-2.0+
3
4#include "miketronic.h"
5
6
7const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
8
9 /* WORKMAN
10 * ┌─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┐
11 * │ Q │ D │ R │ W │ B │ 7 │ 8 │ 9 │ J │ F │ U │ P │ BSPC│BSPC │
12 * │ ESC │ │ │ │ SYM │ │ │ │ SYM │ │ │ │ │ │
13 * ├─────┼─────┼─────╆━━━━━╅─────┼─────┼─────┼─────┼─────╆━━━━━╅─────┼─────┼─────┼─────┤
14 * │ A │ S │ H ┃ T ┃ G │ 4 │ 5 │ 6 │ Y ┃ N ┃ E │ O │ I │UP │
15 * │SHIFT│ │ ┃ EX ┃ │ │ │ │ ┃ ┃ │ │ │RIGHT│
16 * ├─────┼─────┼─────╄━━━━━╃─────┼─────┼─────┼─────┼─────╄━━━━━╃─────┼─────┼─────┼─────┤
17 * │ Z │ X │ M │ C │ V │ 1 │ 2 │ 3 │ K │ L │ SPC │ SPC │ENTER│DOWN │
18 * │ FN │ CTRL│ OS │ ALT │LOWER│ │ 0 │ │RAISE│RAISE│ │ │ │LEFT │
19 * └─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┘
20 *
21 */
22
23 [_WM] = LAYOUT_3x14_wrapper (
24 _____________WORKMAN_310_001_L_____________, _________NUMBER_01__________, _____________WORKMAN_310_001_R_____________, KC_BSPC,
25 _____________WORKMAN_310_002_L_____________, _________NUMBER_02__________, _____________WORKMAN_310_002_R_____________, TD_UR,
26 _____________WORKMAN_310_003_L_____________, _________NUMBER_03__________, _____________WORKMAN_310_003_R_____________, TD_DL
27 ),
28
29 [_QW] = LAYOUT_3x14_wrapper (
30 _________________QWERTY_L1_________________, _________NUMBER_01__________, _________________QWERTY_R1_________________, KC_MUTE,
31 _________________QWERTY_L2_________________, _________NUMBER_02__________, _________________QWERTY_R2_________________, TD_UR,
32 _________________QWERTY_L3_________________, _________NUMBER_03__________, _________________QWERTY_R3_________________, TD_DL
33 ),
34
35
36 /* LOWER
37 * ┌─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┐
38 * │ () │ [] │ /\ │ │ │ │ 7 │ 8 │ 9 │ 0 │ │ │ │LEAD │
39 * │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
40 * ├─────┼─────┼─────╆━━━━━╅─────┼─────╆━━━━━╅─────┼─────┼─────┼─────┼─────┼─────┼─────┤
41 * │ @ # │ & % │ ┃ ┃ │ ┃ 4 ┃ 5 │ 6 │ │ │ │ │ │
42 * │ │ │ ┃ ┃ │ ┃ ┃ │ │ │ │ │ │ │
43 * ├─────┼─────┼─────╄━━━━━╃─────┼─────╄━━━━━╃─────┼─────┼─────┼─────┼─────┼─────┼─────┤
44 * │ │ │ │ │ │ 0 │ 1 │ 2 │ 3 │ . │ │ │ │ │
45 * │ │ │ │ │LOWER│ │ │ 0 │ │ ENT │ │ │ │ │
46 * └─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┘
47 *
48 */
49
50 [_LOWER] = LAYOUT_3x14_wrapper (
51 _______________LOWER_310_L1________________, _________NUMBER_01__________, _______________LOWER_310_R1________________, QK_LEAD,
52 _______________LOWER_310_L2________________, _________NUMBER_02__________, _______________LOWER_310_R2________________, TD_UR,
53 _______________LOWER_310_L3________________, _________NUMBER_03__________, _______________LOWER_310_R3________________, TD_DL
54 ),
55
56
57 /* RAISE
58 * ┌─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┐
59 * │ BOOT│DEBUG│ │ │ MAKE│ │ F7 │ F8 │ F9 │ F10 │ │ │ │LEAD │
60 * │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
61 * ├─────┼─────┼─────╆━━━━━╅─────┼─────╆━━━━━╅─────┼─────┼─────┼─────┼─────┼─────┼─────┤
62 * │ │ RGB │ RGB ┃ RGB ┃ RGB │ _ ┃ F4 ┃ F5 │ F6 │ F11 │ │ │ │ │
63 * │ │ TOG │ MOD ┃ HUI ┃ HUD │ - ┃ ┃ _ │ │ │ │ │ │ │
64 * ├─────┼─────┼─────╄━━━━━╃─────┼─────╄━━━━━╃─────┼─────┼─────┼─────┼─────┼─────┼─────┤
65 * │ │ RGB │ RGB │ RGB │ RGB │RAISE│ F1 │ F2 │ F3 │ F12 │ │ │ │ │
66 * │ │ SAI │ SAD │ VAI │ VAD │ │ │ │ │ │ │ │ │ │
67 * └─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┘
68 *
69 */
70
71 [_RAISE] = LAYOUT_3x14_wrapper (
72 _______________RAISE_310_L1________________, _________NUMBER_01__________, _______________RAISE_310_R1________________, QK_LEAD,
73 _______________RAISE_310_L2________________, _________NUMBER_02__________, _______________RAISE_310_R2________________, TD_UR,
74 _______________RAISE_310_L3________________, _________NUMBER_03__________, _______________RAISE_310_R3________________, TD_DL
75 ),
76
77
78 /* EXTRAS
79 * ┌─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┐
80 * │ ! │ │ │ │ │ │ /\ | () | [] | ; │ │ │ │LEAD │
81 * │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
82 * ├─────┼─────┼─────╆━━━━━╅─────┼─────╆━━━━━╅─────┼─────┼─────┼─────┼─────┼─────┼─────┤
83 * │ │ │ ┃EXTRA┃ │ ┃ @ # ┃ & % | | ' | │ │ │ │
84 * │ │ │ ┃ ┃ │ ┃ ┃ _ │ │ │ │ │ │ │
85 * ├─────┼─────┼─────╄━━━━━╃─────┼─────╄━━━━━╃─────┼─────┼─────┼─────┼─────┼─────┼─────┤
86 * │ │ │ │ │ │ │ │ , | . | ? │ │ │ │ │
87 * │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
88 * └─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┘
89 */
90
91 [_EX] = LAYOUT_3x14_wrapper (
92 ______________EXTRAS_310_L1________________, _________NUMBER_01__________, ______________EXTRAS_310_R1________________, QK_LEAD,
93 ______________EXTRAS_310_L2________________, _________NUMBER_02__________, ______________EXTRAS_310_R2________________, TD_UR,
94 ______________EXTRAS_310_L3________________, _________NUMBER_03__________, ______________EXTRAS_310_R3________________, TD_DL
95),
96
97
98 /* FUNCTION
99 * ┌─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┐
100 * │COPY │CLIP │ SS │ │ │ │ │ │ | /\ │ UP │ │ DEL │LEAD │
101 * │PASTE│ │ │ │ │ │ │ │ │ │ │ │ │ │
102 * ├─────┼─────┼─────╆━━━━━╅─────┼─────┼─────┼─────┼─────╆━━━━━╅─────┼─────┼─────┼─────┤
103 * │SHIFT│ M05 │ M06 ┃ M07 ┃ M08 │ │ │ │ ┃ LEFT┃ DOWN│RIGHT│ │ UP │
104 * │ │ │ ┃ ┃ │ │ │ │ ┃ ┃ │ │ │RIGHT│
105 * ├─────┼─────┼─────╄━━━━━╃─────┼─────┼─────┼─────┼─────╄━━━━━╃─────┼─────┼─────┼─────┤
106 * │ │ M01 │ M02 │ M03 │ M04 │ │ │ | | │ , │ . │ │DOWN │
107 * │ FN │ │ │ │ │ │ │ │ │ │ │ │ │LEFT │
108 * └─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┘
109 */
110
111 [_FN] = LAYOUT_3x14_wrapper (
112 _____________FUNCTION_310_L1_______________, _________NUMBER_01__________, _____________FUNCTION_310_R1_______________, QK_LEAD,
113 _____________FUNCTION_310_L2_______________, _________NUMBER_02__________, _____________FUNCTION_310_R2_______________, TD_UR,
114 _____________FUNCTION_310_L3_______________, _________NUMBER_03__________, _____________FUNCTION_310_R3_______________, TD_DL
115 ),
116
117
118
119 /* SYMBOLS
120 * ┌─────┬─────┬─────┬─────┬─────┐ ┌─────┬─────┬─────┬─────┬─────┐
121 * │ $ │ ^ │ < │ > │ │ │ │ | │ [ │ ] │ - │
122 * │ │ │ │ │ SYMB│ │ SYMB│ │ │ │ │
123 * ├─────┼─────┼─────╆━━━━━╅─────┤ ├─────╆━━━━━╅─────┼─────┼─────┤
124 * │ % │ : │ ; ┃ + ┃ = │ │ ┃ ┃ ( │ ) │ _ │
125 * │ │ │ ┃ ┃ │ │ ┃ ┃ │ │ │
126 * ├─────┼─────┼─────╄━━━━━╃─────┤ ├─────╄━━━━━╃─────┼─────┼─────┤
127 * │ & │ ' │ " │ * │ # │ │ ! │ ? │ / │ \ │ @ │
128 * │ │ │ │ │ │ │ │ │ │ │ │
129 * └─────┴─────┴─────┴─────┴─────┘ └─────┴─────┴─────┴─────┴─────┘
130 */
131
132 [_SYMB] = LAYOUT_3x14_wrapper (
133 _____________SYMBOLS_310_L1________________, _________NUMBER_01__________, _____________SYMBOLS_310_R1________________, QK_LEAD,
134 _____________SYMBOLS_310_L2________________, _________NUMBER_02__________, _____________SYMBOLS_310_R2________________, TD_UR,
135 _____________SYMBOLS_310_L3________________, _________NUMBER_03__________, _____________SYMBOLS_310_R3________________, TD_DL
136 ),
137
138
139
140};
141
142
143#ifndef NUM_DIRECTIONS
144# define NUM_DIRECTIONS 2
145#endif
146#ifdef ENCODER_MAP_ENABLE
147const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = {
148 [_WM] = { ENCODER_CCW_CW(LCTL(KC_V), LCTL(KC_C)) },
149 [_QW] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU) },
150 [_LOWER] = { ENCODER_CCW_CW(____, ____) },
151 [_RAISE] = { ENCODER_CCW_CW(____, ____) },
152 [_EX] = { ENCODER_CCW_CW(____, ____) },
153 [_FN] = { ENCODER_CCW_CW(RGB_MOD, RGB_RMOD) },
154 [_SYMB] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU) }
155};
156#endif
157
158bool get_hold_on_other_key_press(uint16_t keycode, keyrecord_t *record) {
159 switch (keycode) {
160 case SFT_T(KC_A):
161 // Do not force the mod-tap key press to be handled as a modifier
162 // if any other key was pressed while the mod-tap key is held down.
163 return false;
164 case TEX:
165 return false;
166 case CTRLX:
167 return false;
168 case FNZ:
169 return false;
170 case MGUI:
171 return false;
172 case VLOWER:
173 return false;
174 case KRAISE:
175 return false;
176 default:
177 // Force the dual-role key press to be handled as a modifier if any
178 // other key was pressed while the mod-tap key is held down.
179 return true;
180 }
181}
182
183#ifdef AUDIO_ENABLE
184float leader_start_song[][2] = SONG(ONE_UP_SOUND);
185float leader_succeed_song[][2] = SONG(ALL_STAR);
186float leader_fail_song[][2] = SONG(RICK_ROLL);
187#endif
188
189void matrix_scan_user(void);
190
191void leader_start_user(void) {
192#ifdef AUDIO_ENABLE
193 PLAY_SONG(leader_start_song);
194#endif
195}
196
197bool did_leader_succeed;
198
199void leader_end_user(void) {
200 did_leader_succeed = false;
201
202 if (leader_sequence_one_key(KC_E)) {
203 SEND_STRING(SS_LCTL(SS_LSFT("t")));
204 did_leader_succeed = true;
205 } else if (leader_sequence_two_keys(KC_E, KC_D)) {
206 SEND_STRING(SS_LGUI("r") "cmd\n" SS_LCTL("c"));
207 did_leader_succeed = true;
208 } else if (leader_sequence_two_keys(KC_A, KC_T)) {
209 SEND_STRING("@guidehouse.com");
210 did_leader_succeed = true;
211 }
212
213
214#ifdef AUDIO_ENABLE
215 if (did_leader_succeed) {
216 PLAY_SONG(leader_succeed_song);
217 } else {
218 PLAY_SONG(leader_fail_song);
219 }
220#endif
221} \ 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 @@
1BOOTMAGIC_ENABLE = yes # Enable Bootmagic Lite
2EXTRAKEY_ENABLE = yes # Audio control and System control
3TAP_DANCE_ENABLE = yes # Tap Dance keys
4NKRO_ENABLE = yes # Enable N-Key Rollover
5MACROS_ENABLED = yes
6LEADER_ENABLE = yes
7
8ENCODER_ENABLE = yes
9ENCODER_MAP_ENABLE = yes
10OLED_ENABLE = yes # Enable OLED Screen
11OLED_DRIVER = SSD1306 # Set OLED Driver
12
13RGBLIGHT_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 @@
1// Copyright 2023 @miketronic -- Mike B <mxb540@gmail.com>
2// SPDX-License-Identifier: GPL-2.0+
3
4#pragma once
5
6#define DEBOUNCE 10
7#if defined(TAP_DANCE_ENABLE)
8# define TAP_CODE_DELAY 5
9# define TAP_HOLD_CAPS_DELAY 25
10#endif
11#define MACRO_TIMER 5
12#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 @@
1// Copyright 2023 @miketronic -- Mike B <mxb540@gmail.com>
2// SPDX-License-Identifier: GPL-2.0+
3
4#include "miketronic.h"
5
6
7__attribute__ ((weak)) void keyboard_post_init_keymap(void) { }
8
9// Init effect for RGB boards only
10void keyboard_post_init_user(void) {
11#ifdef RGB_MATRIX_ENABLE
12 rgblight_enable_noeeprom(); // enables Rgb, without saving settings
13 rgblight_sethsv_noeeprom(HSV_ORANGE); // sets the color without saving
14 rgb_matrix_mode_noeeprom(RGB_MATRIX_SOLID_COLOR);
15#endif
16 keyboard_post_init_keymap();
17} \ 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 @@
1// Copyright 2023 @miketronic -- Mike B <mxb540@gmail.com>
2// SPDX-License-Identifier: GPL-2.0+
3
4#pragma once
5#include QMK_KEYBOARD_H
6
7#include "quantum.h"
8#include "wrappers.h"
9#include "action.h"
10#include "version.h"
11#include "process_records.h"
12#ifdef TAP_DANCE_ENABLE
13# include "tapdances.h"
14#endif
15
16enum layer_names {
17 _WM,
18 _QW,
19 _LOWER,
20 _RAISE,
21 _EX,
22 _FN,
23 _SYMB
24};
25
26
27// Layer macros
28#define LOWER MO(_LOWER)
29#define RAISE MO(_RAISE)
30#define FN MO(_FN)
31#define EX MO(_EX)
32#define TEX LT(_EX, KC_T) // Tap for "T", hold for Extras layer
33#define BSYM LT(_SYMB, KC_B) // Tap for "B", hold for Symbols layer
34#define JSYM LT(_SYMB, KC_J) // Tap for "J", hold for Symbols layer
35#define FNZ LT(_FN, KC_Z) // Tap for "Z", hold for FN layer
36#define VLOWER LT(_LOWER, KC_V) // Tap for "V", hold for Lower layer
37#define KRAISE LT(_RAISE, KC_K) // Tap for "K", hold for Raise layer
38
39// Mod Tap
40//#define ASFT MT(MOD_LSFT, KC_A) // Tap for "A", hold for Shift
41#define ASFT SFT_T(KC_A) // Tap for "A", hold for Shift
42#define GGUI MT(MOD_LGUI, KC_G) // Tap for "G", hold for OS Key
43#define MGUI MT(MOD_LGUI, KC_M) // Tap for "M", hold for OS Key
44#define CTRLX MT(MOD_LCTL, KC_X) // Tap for "X", hold for Ctrl
45#define CALT MT(MOD_LALT, KC_C) // Tap for "C", hold for Alt
46#define L_ALT MT(MOD_RALT, KC_L) // Tap for "L", hold for Alt
47#define TBSHFT MT(MOD_LSFT, KC_TAB) // Tap for Tab, hold for Shift
48#define SLSHFT MT(MOD_RSFT, KC_SLSH) // Tap for Slash, hold for Shift
49#define SFT_ENT RSFT_T(KC_ENT) // Tap for Enter, hold for Shift
50#define OSSFT OSM(MOD_LSFT) // One shot left Shift
51
52// MISC
53#define CALTDEL LCTL(LALT(KC_DEL)) // Ctrl Alt Del
54#define TSKMGR LCTL(LSFT(KC_ESC)) // Task Manager
55#define CLIP LCTL(LALT(KC_Q)) // Clipboard (Ditto)
56#define SS LCTL(LALT(KC_G)) // Greenshot region
57#define NUM LSFT(KC_3)
58#define AT LSFT(KC_2)
59#define COPY LCTL(KC_C)
60#define PASTE LCTL(KC_V)
61#define ____ KC_TRNS
62#define XXXX KC_NO
63#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 @@
1// Copyright 2023 @miketronic -- Mike B <mxb540@gmail.com>
2// SPDX-License-Identifier: GPL-2.0+
3
4#include "miketronic.h"
5#include "process_records.h"
6
7__attribute__((weak)) bool process_record_keymap(uint16_t keycode, keyrecord_t *record) {
8 return true;
9}
10
11__attribute__((weak)) bool process_record_secrets(uint16_t keycode, keyrecord_t *record) {
12 return true;
13}
14
15
16bool process_record_user(uint16_t keycode, keyrecord_t *record) {
17
18 switch (keycode) {
19 case VERSION:
20 if (!record->event.pressed) {
21 send_string_with_delay_P(PSTR(QMK_KEYBOARD ":" QMK_KEYMAP "\nVersion:" QMK_VERSION ", built: " QMK_BUILDDATE "\n"), MACRO_TIMER);
22 }
23 break;
24
25 case M01:
26 if (record->event.pressed) {
27 SEND_STRING("//a11");
28 }
29 break;
30
31 case M02:
32 if (record->event.pressed) {
33 SEND_STRING("//a12");
34 }
35 break;
36
37 case M03:
38 if (record->event.pressed) {
39 SEND_STRING("//a08");
40 }
41 break;
42
43 case M04:
44 if (record->event.pressed) {
45 SEND_STRING("//a09");
46 }
47 break;
48
49 case M05:
50 if (record->event.pressed) {
51 SEND_STRING("//th");
52 }
53 break;
54
55 case M06:
56 if (record->event.pressed) {
57 SEND_STRING("//re");
58 }
59 break;
60
61 case M07:
62 if (record->event.pressed) {
63 SEND_STRING("//yw");
64 }
65 break;
66
67 case M08:
68 if (record->event.pressed) {
69 tap_random_base64();
70 }
71 break;
72
73 case CCCV: // One key copy/paste
74 if (record->event.pressed) {
75 copy_paste_timer = timer_read();
76 } else {
77 if (timer_elapsed(copy_paste_timer) > TAPPING_TERM) { // Hold, copy
78 tap_code16(LCTL(KC_C));
79 } else { // Tap, paste
80 tap_code16(LCTL(KC_V));
81 }
82 }
83 break;
84
85 case IENTER: // Tap for letter "i", slight hold for "enter"
86 if (record->event.pressed) {
87 copy_paste_timer = timer_read();
88 } else {
89 if (timer_elapsed(copy_paste_timer) > TAPPING_TERM) { // Hold, enter
90 tap_code16(KC_ENT);
91 } else { // Tap, "i"
92 tap_code16(KC_I);
93 }
94 }
95 break;
96
97 case PRN:
98 if (record->event.pressed) {
99 SEND_STRING("()");
100 tap_code(KC_LEFT);
101 }
102 break;
103
104 case BRACES:
105 if (record->event.pressed) {
106 uint8_t shifted = get_mods() & (MOD_MASK_SHIFT);
107 if (shifted) {
108 unregister_code(KC_LSFT);
109 unregister_code(KC_RSFT);
110 SEND_STRING("<>"SS_TAP(X_LEFT));
111 }
112 else {
113 SEND_STRING("[]"SS_TAP(X_LEFT));
114 }
115 }
116 break;
117
118#if defined(RGBLIGHT_ENABLE)
119 case RGB1:
120 if (record->event.pressed) {
121 rgblight_sethsv_noeeprom(HSV_BLUE);
122 }
123 break;
124
125 case RGB2:
126 if (record->event.pressed) {
127 rgblight_sethsv_noeeprom(HSV_RED);
128 }
129 break;
130
131 case RGB3:
132 if (record->event.pressed) {
133 rgblight_sethsv_noeeprom(HSV_ORANGE);
134 }
135 break;
136
137 case RGB4:
138 if (record->event.pressed) {
139 rgblight_sethsv_noeeprom(HSV_WHITE);
140 }
141 break;
142
143 case RGB5:
144 if (record->event.pressed) {
145 rgblight_sethsv_noeeprom(HSV_GREEN);
146 }
147 break;
148#endif
149 }
150 return process_record_keymap(keycode, record) && process_record_secrets(keycode, record);
151}
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 @@
1// Copyright 2023 @miketronic -- Mike B <mxb540@gmail.com>
2// SPDX-License-Identifier: GPL-2.0+
3
4#pragma once
5#include "miketronic.h"
6
7
8bool process_record_secrets(uint16_t keycode, keyrecord_t *record);
9bool process_record_keymap(uint16_t keycode, keyrecord_t *record);
10uint16_t copy_paste_timer;
11
12enum custom_keycodes {
13 WM = QK_USER,
14 QW,
15 MAKE,
16 VERSION,
17 M01,
18 M02,
19 M03,
20 M04,
21 M05,
22 M06,
23 M07,
24 M08,
25 M09,
26 M10,
27 M11,
28 M12,
29 RGB1,
30 RGB2,
31 RGB3,
32 RGB4,
33 RGB5,
34 IENTER,
35 PRN,
36 BRACES,
37 CCCV
38};
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 @@
1Copyright 2023 @miketronic -- Mike B <mxb540@gmail.com>
2SPDX-License-Identifier: GPL-2.0+
3
4# Layout for ortho 4x12 and 3x10 boards
5# My current daily drivers: Planck, Pi40 and Satpad
6
7**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.
8
9
10##### My Main Layer - Workman
11
12| | | | | | | | | | | | |
13| ---- |:----:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| ----:|
14| Tab/Esc | Q/Esc | D | R | W | B/SYM | J/SYM | F | U | P | BSPC | BSPC |
15| Tab/Shift | A | S | H | T/EX | G | Y | N | E | O | I/Enter | Enter|
16| Shft | Z | X | M | C | V | K | L | Spc/, | Spc/. | / | Up/Right |
17| FN | Ctrl | OS | Alt |Lower | Spc/Enter |Spc/Enter |Raise | SS| Clip | CopyPaste | Dn/Left |
18
19SYM - Symbols layer on hold
20FN - Function layer on hold
21EX - Extras layer on hold
22Clip - Macro to my clipboard app (Ditto)
23SS - Greenshot screenshot region
24
25##### 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 @@
1SRC += miketronic.c process_records.c
2ifeq ($(strip $(TAP_DANCE_ENABLE)), yes)
3 SRC += $(USER_PATH)/tapdances.c
4endif
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 @@
1// Copyright 2023 @miketronic -- Mike B <mxb540@gmail.com>
2// SPDX-License-Identifier: GPL-2.0+
3
4#include "miketronic.h"
5#include "tapdances.h"
6
7
8tap_dance_action_t tap_dance_actions[] = {
9
10 [T_BRC] = ACTION_TAP_DANCE_DOUBLE(KC_LBRC, KC_RBRC), // Tap once for Left Brace, twice for Right Brace
11 [T_MIN] = ACTION_TAP_DANCE_DOUBLE(KC_MINUS, KC_EQUAL), // Minus, Equals
12 [T_UMIN] = ACTION_TAP_DANCE_DOUBLE(KC_UNDS, KC_MINS), // Underscore, Minus
13 [T_GESC] = ACTION_TAP_DANCE_DOUBLE(KC_GRAVE, KC_ESCAPE), // Grave, Escape
14 [T_SE] = ACTION_TAP_DANCE_DOUBLE(KC_SPC, KC_ENT), // Space, Enter
15 [T_MULTDIV] = ACTION_TAP_DANCE_DOUBLE(KC_PAST, KC_PSLS), // Multiply, Divide
16 [T_UR] = ACTION_TAP_DANCE_DOUBLE(KC_UP, KC_RGHT), // Up, Right
17 [T_DL] = ACTION_TAP_DANCE_DOUBLE(KC_DOWN, KC_LEFT), // Down, Left
18 [T_CP] = ACTION_TAP_DANCE_DOUBLE(LCTL(KC_C), LCTL(KC_V)), // Copy, Paste
19 [T_DENT] = ACTION_TAP_DANCE_DOUBLE(KC_DOT, KC_ENT), // Dot, Enter
20 [T_IENT] = ACTION_TAP_DANCE_DOUBLE(KC_I, KC_ENT), // "I", Enter
21 [T_CSPC] = ACTION_TAP_DANCE_DOUBLE(KC_SPC, KC_COMM), // Space, Comma
22 [T_DSPC] = ACTION_TAP_DANCE_DOUBLE(KC_SPC, KC_DOT), // Space, Dot
23 [T_QEXC] = ACTION_TAP_DANCE_DOUBLE(KC_QUES, KC_EXLM), // "?", "!"
24 [T_QESC] = ACTION_TAP_DANCE_DOUBLE(KC_Q, KC_ESC), // "q", Escape
25 [T_TE] = ACTION_TAP_DANCE_DOUBLE(KC_TAB, KC_ESC), // Tab, Escape
26 [T_20] = ACTION_TAP_DANCE_DOUBLE(KC_2, KC_0), // "2", "0"
27 [T_SL] = ACTION_TAP_DANCE_DOUBLE(KC_SLSH, KC_BSLS), // Slash, Backslash
28 [T_XX] = ACTION_TAP_DANCE_DOUBLE(KC_LPRN, KC_RPRN), // Left Paren, Right Paren
29 [T_YY] = ACTION_TAP_DANCE_DOUBLE(KC_LBRC, KC_RBRC), // Left Bracket, Right Bracket
30 [T_ATH] = ACTION_TAP_DANCE_DOUBLE(KC_AT, KC_HASH), // "@", "#"
31 [T_PRAM] = ACTION_TAP_DANCE_DOUBLE(KC_PERC, KC_AMPR) // "%", "&"
32};
33
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 @@
1// Copyright 2023 @miketronic -- Mike B <mxb540@gmail.com>
2// SPDX-License-Identifier: GPL-2.0+
3
4#pragma once
5#include "quantum.h"
6
7
8#define TD_BRC TD(T_BRC)
9#define TD_ATH TD(T_ATH)
10#define TD_CSPC TD(T_CSPC)
11#define TD_DSPC TD(T_DSPC)
12#define TD_CP TD(T_CP)
13#define TD_DENT TD(T_DENT)
14#define TD_IENT TD(T_IENT)
15#define TD_MIN TD(T_MIN)
16#define TD_UMIN TD(T_UMIN)
17#define TD_GESC TD(T_GESC)
18#define TD_QESC TD(T_QESC)
19#define TD_QEXC TD(T_QEXC)
20#define TD_PRAM TD(T_PRAM)
21#define TD_SE TD(T_SE)
22#define TD_MD TD(T_MULTDIV)
23#define TD_UR TD(T_UR)
24#define TD_DL TD(T_DL)
25#define TD_TE TD(T_TE)
26#define TD_20 TD(T_20)
27#define TD_SL TD(T_SL)
28#define TD_XX TD(T_XX)
29#define TD_YY TD(T_YY)
30
31
32
33// Tap Dance
34enum tapdance_id{
35 T_BRC = 0,
36 T_ATH,
37 T_CSPC,
38 T_DSPC,
39 T_CP,
40 T_DENT,
41 T_IENT,
42 T_MIN,
43 T_UMIN,
44 T_GESC,
45 T_QESC,
46 T_QEXC,
47 T_SE,
48 T_MULTDIV,
49 T_UR,
50 T_DL,
51 T_TE,
52 T_20,
53 T_SL,
54 T_XX,
55 T_YY,
56 T_PRAM
57}; \ 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 @@
1// Copyright 2023 @miketronic -- Mike B <mxb540@gmail.com>
2// SPDX-License-Identifier: GPL-2.0+
3
4#pragma once
5#include "miketronic.h"
6
7/* Pattern adapted from users/drashna/wrapper.h
8 Define per-layout keymap sections. Also requires a wrapper.
9 Example:
10 #define LAYOUT_:name_wrapper(...) LAYOUT_:name(__VA_ARGS__)
11 const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
12 [_MODS] = LAYOUT_:name _wrapper(
13 _______, ___________________BLANK___________________, ...
14 ...
15 ),
16 }
17*/
18
19
20// clang-format off
21# define LAYOUT_ortho_4x12_wrapper(...) LAYOUT_ortho_4x12(__VA_ARGS__)
22# define LAYOUT_planck_grid_wrapper(...) LAYOUT_planck_grid(__VA_ARGS__)
23#if (defined(KEYBOARD_hazel_satpad))
24# define LAYOUT_3x11_wrapper(...) LAYOUT(__VA_ARGS__)
25#endif
26#if (defined(KEYBOARD_mechwild_bde_rev2))
27# define LAYOUT_3x14_wrapper(...) LAYOUT(__VA_ARGS__)
28#endif
29#if (defined(KEYBOARD_hazel_bad_wings))
30# define LAYOUT_split_3x5_3_wrapper(...) LAYOUT_split_3x5_3(__VA_ARGS__)
31#endif
32#if (defined(KEYBOARD_idobao_id75_v1))
33# define LAYOUT_ortho_5x15_wrapper(...) LAYOUT_ortho_5x15(__VA_ARGS__)
34#endif
35
36
37#define _________NUMBER_01__________ KC_7, KC_8, KC_9
38#define _________NUMBER_02__________ KC_4, KC_5, KC_6
39#define _________NUMBER_03__________ KC_1, TD_20, KC_3
40
41
42
43#define _________________QWERTY_L1_________________ KC_Q, KC_W, KC_E, KC_R, KC_T
44#define _________________QWERTY_L2_________________ KC_A, KC_S, KC_D, KC_F, KC_G
45#define _________________QWERTY_L3_________________ FNZ, KC_X, KC_C, VLOWER, KC_B
46
47#define _________________QWERTY_R1_________________ KC_Y, KC_U, KC_I, KC_O, KC_P
48#define _________________QWERTY_R2_________________ KC_H, KC_J, KRAISE, KC_L, KC_SCLN
49#define _________________QWERTY_R3_________________ KC_N, KC_M, KC_COMM, KC_DOT, KC_SLASH
50
51
52
53#define ________________NUMBER_LEFT________________ KC_1, KC_2, KC_3, KC_4, KC_5
54#define ________________NUMBER_RIGHT_______________ KC_6, KC_7, KC_8, KC_9, KC_0
55#define _________________FUNC_LEFT_________________ KC_F1, KC_F2, KC_F3, KC_F4, KC_F5
56#define _________________FUNC_RIGHT________________ KC_F6, KC_F7, KC_F8, KC_F9, KC_F10
57
58#define ______________LONG_FUNC_LEFT_______________ KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6
59#define ______________LONG_FUNC_RIGHT______________ KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12
60
61#define _________________BLANK_5___________________ _______, _______, _______, _______, _______
62#define _________________BLANK_6___________________ _______, _______, _______, _______, _______, _______
63
64#define _________________LOWER_L1__________________ KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC
65#define _________________LOWER_L2__________________ _________________FUNC_LEFT_________________
66#define _________________LOWER_L3__________________ _________________FUNC_RIGHT________________
67
68#define _________________LOWER_R1__________________ KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN
69#define _________________LOWER_R2__________________ _______, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR
70#define _________________LOWER_R3__________________ _______, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT
71
72#define _______________LOWER_310_L1________________ PRN, BRACES, TD_SL, _______, _______
73#define _______________LOWER_310_L2________________ TD_ATH, TD_PRAM, _______, _______, _______
74#define _______________LOWER_310_L3________________ _______, _______, _______, _______, _______
75
76#define _______________LOWER_310_R1________________ _______, KC_7, KC_8, KC_9, _______
77#define _______________LOWER_310_R2________________ TD_DENT, KC_4, KC_5, KC_6, TD_UR
78#define _______________LOWER_310_R3________________ KC_0, KC_1, TD_20, KC_3, TD_DL
79
80#define _______________LOWER_412_L1________________ _______, PRN, BRACES, TD_SL, _______, _______
81#define _______________LOWER_412_L2________________ _______, TD_ATH, TD_PRAM, _______, _______, _______
82#define _______________LOWER_412_L3________________ _______, _______, _______, _______, _______, _______
83#define _______________LOWER_412_L4________________ _______, _______, _______, _______, _______, _______
84
85#define _______________LOWER_412_R1________________ _______, KC_7, KC_8, KC_9, _______, _______
86#define _______________LOWER_412_R2________________ TD_DENT, KC_4, KC_5, KC_6, _______, _______
87#define _______________LOWER_412_R3________________ KC_0, KC_1, TD_20, KC_3, _______, TD_UR
88#define _______________LOWER_412_R4________________ _______, _______, KC_BSPC, KC_SPC, TD_DENT, TD_DL
89
90
91
92#define _________________RAISE_L1__________________ ________________NUMBER_LEFT________________
93#define _________________RAISE_L2__________________ ___________________BLANK___________________
94#define _________________RAISE_L3__________________ ___________________BLANK___________________
95
96#define _________________RAISE_R1__________________ ________________NUMBER_RIGHT_______________
97#define _________________RAISE_R2__________________ _______, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC
98#define _________________RAISE_R3__________________ _______, KC_HOME, KC_PGDN, KC_PGUP, KC_END
99
100#define _______________RAISE_310_L1________________ QK_BOOT, DB_TOGG, _______, _______, QK_MAKE
101#define _______________RAISE_310_L2________________ KC_LSFT, RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD
102#define _______________RAISE_310_L3________________ _______, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD
103
104#define _______________RAISE_310_R1________________ _______, KC_F7, KC_F8, KC_F9, KC_F10
105#define _______________RAISE_310_R2________________ TD_UMIN, KC_F4, KC_F5, KC_F6, KC_F11
106#define _______________RAISE_310_R3________________ _______, KC_F1, KC_F2, KC_F3, KC_F12
107
108#define _______________RAISE_412_L1________________ QK_BOOT, DB_TOGG, _______, _______, _______, QK_MAKE
109#define _______________RAISE_412_L2________________ KC_LSFT, RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, WM
110#define _______________RAISE_412_L3________________ _______, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, QW
111
112#define _______________RAISE_412_R1________________ _______, _______, KC_F7, KC_F8, KC_F9, KC_F10
113#define _______________RAISE_412_R2________________ _______, _______, KC_F4, KC_F5, KC_F6, KC_F11
114#define _______________RAISE_412_R3________________ _______, TD_UMIN, KC_F1, KC_F2, KC_F3, KC_F12
115
116
117
118#define ______________EXTRAS_310_L1________________ KC_EXLM, _______, _______, _______, _______
119#define ______________EXTRAS_310_L2________________ KC_LSFT, _______, _______, _______, _______
120#define ______________EXTRAS_310_L3________________ _______, _______, _______, _______, _______
121
122#define ______________EXTRAS_310_R1________________ _______, TD_SL, PRN, BRACES, KC_SCLN
123#define ______________EXTRAS_310_R2________________ QK_LEAD, TD_ATH, TD_PRAM, _______, KC_QUOT
124#define ______________EXTRAS_310_R3________________ _______, _______, KC_COMM, KC_DOT, KC_QUES
125
126#define ______________EXTRAS_412_L1________________ _______, KC_EXLM, _______, _______, _______, _______
127#define ______________EXTRAS_412_L2________________ KC_LSFT, _______, _______, _______, _______, _______
128#define ______________EXTRAS_412_L3________________ _______, _______, _______, _______, _______, _______
129#define ______________EXTRAS_412_L4________________ _______, _______, _______, _______, _______, TD_SE
130
131#define ______________EXTRAS_412_R1________________ _______, TD_SL, PRN, BRACES, KC_SCLN, _______
132#define ______________EXTRAS_412_R2________________ QK_LEAD, TD_ATH, TD_PRAM, _______, KC_QUOT, _______
133#define ______________EXTRAS_412_R3________________ _______, _______, KC_COMM, KC_DOT, KC_QUES, _______
134#define ______________EXTRAS_412_R4________________ TD_SE, _______, _______, _______, _______, _______
135
136
137
138#define _____________FUNCTION_310_L1_______________ CCCV, CLIP, SS, _______, _______
139#define _____________FUNCTION_310_L2_______________ TBSHFT, M05, M06, M07, M08
140#define _____________FUNCTION_310_L3_______________ _______, M01, M02, M03, M04
141
142#define _____________FUNCTION_310_R1_______________ _______, TD_SL, KC_UP, _______, KC_DEL
143#define _____________FUNCTION_310_R2_______________ _______, KC_LEFT, KC_DOWN, KC_RGHT, TD_UR
144#define _____________FUNCTION_310_R3_______________ _______, _______, KC_COMM, KC_DOT, TD_DL
145
146#define _____________FUNCTION_412_L1_______________ CCCV, CLIP, SS, _______, _______, _______
147#define _____________FUNCTION_412_L2_______________ TBSHFT, M05, M06, M07, M08, _______
148#define _____________FUNCTION_412_L3_______________ _______, M01, M02, M03, M04, _______
149#define _____________FUNCTION_412_L4_______________ _______, RGB1, RGB2, RGB3, RGB4, _______
150
151#define _____________FUNCTION_412_R1_______________ _______, T_SL, KC_UP, _______, _______, KC_DEL
152#define _____________FUNCTION_412_R2_______________ _______, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______
153#define _____________FUNCTION_412_R3_______________ _______, _______, KC_COMM, KC_DOT, KC_QUES, T_UR
154#define _____________FUNCTION_412_R4_______________ _______, _______, _______, _______, _______, T_DL
155
156#define ____________FUNCTION_ID75_TOP_R____________ M06, M07, M08, M09, M10, KC_DEL
157
158
159
160#define _____________SYMBOLS_310_L1________________ KC_DLR, KC_CIRC, KC_LABK, KC_RABK, ____
161#define _____________SYMBOLS_310_L2________________ KC_PERC, KC_COLN, KC_SCLN, KC_PLUS, KC_EQL
162#define _____________SYMBOLS_310_L3________________ KC_AMPR, KC_QUOT, KC_DQUO, KC_ASTR, KC_HASH
163
164#define _____________SYMBOLS_310_R1________________ ____, KC_PIPE, KC_LBRC, KC_RBRC, KC_MINS
165#define _____________SYMBOLS_310_R2________________ XXXX, XXXX, KC_LPRN, KC_RPRN, KC_UNDS
166#define _____________SYMBOLS_310_R3________________ KC_EXLM, KC_QUES, KC_SLSH, KC_BSLS, KC_AT
167
168
169
170#define _________________ADJUST_L1_________________ RGB_MOD, RGB_HUI, RGB_SAI, RGB_VAI, RGB_TOG
171#define _________________ADJUST_L2_________________ MU_TOGG, CK_TOGG, AU_ON, AU_OFF, AG_NORM
172#define _________________ADJUST_L3_________________ RGB_RMOD,RGB_HUD,RGB_SAD, RGB_VAD, KC_RGB_T
173
174#define _________________ADJUST_R1_________________ KC_SEC1, KC_SEC2, KC_SEC3, KC_SEC4, KC_SEC5
175#define _________________ADJUST_R2_________________ AG_SWAP, QWERTY, COLEMAK, DVORAK, WORKMAN
176#define _________________ADJUST_R3_________________ MG_NKRO, KC_MUTE, KC_VOLD, KC_VOLU, KC_MNXT
177
178
179#define _________FOUR_001__________ KC_BSPC, M08, M08, KC_MUTE
180#define _________FOUR_002__________ KC_ENT, M08, PRN, TD_UR
181#define _________FOUR_003__________ KC_BSLS, TD_ATH, BRACES, TD_DL
182
183#define _________3KEY_LEFT___________ OSSFT, KC_SPC, LOWER
184#define _________3KEY_RIGHT__________ RAISE, KC_ENT, CCCV
185
186#define ________3KEY_ID75_01_________ OSSFT, QK_LEAD, LOWER
187#define ________3KEY_ID75_02_________ KC_7, KC_8, KC_9
188#define ________3KEY_ID75_03_________ KC_4, KC_5, KC_6
189#define ________3KEY_ID75_04_________ KC_1, TD_20, KC_3
190#define ________3KEY_ID75_05_________ KC_SPC, TD_DENT, KC_ENT
191
192
193#define _____________WORKMAN_310_001_L_____________ TD_QESC, KC_D, KC_R, KC_W, BSYM
194#define _____________WORKMAN_310_001_R_____________ JSYM, KC_F, KC_U, KC_P, KC_BSPC
195#define _____________WORKMAN_310_002_L_____________ ASFT, KC_S, KC_H, TEX, KC_G
196#define _____________WORKMAN_310_002_R_____________ KC_Y, KC_N, KC_E, KC_O, KC_I
197#define _____________WORKMAN_310_003_L_____________ FNZ, CTRLX, MGUI, CALT, VLOWER
198#define _____________WORKMAN_310_003_R_____________ KRAISE, KC_L, TD_CSPC, TD_DSPC, SFT_ENT
199#define _____________WORKMAN_310_004_L_____________ FN, KC_LCTL, KC_LGUI, KC_LALT, LOWER
200#define _____________WORKMAN_310_004_R_____________ RAISE, SS, CLIP, CCCV, FN
201
202#define _____________WORKMAN_410_003_L_____________ FNZ, KC_X, KC_M, KC_C, KC_V
203#define _____________WORKMAN_410_003_R_____________ KC_K, KC_L, TD_CSPC, TD_DSPC, SFT_ENT
204
205#define _____________WORKMAN_311_001_L_____________ TD_QESC, KC_D, KC_R, KC_W, BSYM
206#define _____________WORKMAN_311_001_R_____________ JSYM, KC_F, KC_U, KC_P, KC_BSPC
207#define _____________WORKMAN_311_002_L_____________ ASFT, KC_S, KC_H, TEX, KC_G
208#define _____________WORKMAN_311_002_R_____________ KC_Y, KC_N, KC_E, KC_O, KC_I
209#define _____________WORKMAN_311_003_L_____________ FNZ, CTRLX, MGUI, CALT, VLOWER, KC_ENT
210#define _____________WORKMAN_311_003_R_____________ KRAISE, KC_L, TD_CSPC, TD_DSPC, SFT_ENT
211
212#define _____________WORKMAN_412_001_L_____________ TD_TE, TD_QESC, KC_D, KC_R, KC_W, BSYM
213#define _____________WORKMAN_412_001_R_____________ JSYM, KC_F, KC_U, KC_P, KC_BSPC, KC_BSPC
214#define _____________WORKMAN_412_002_L_____________ TBSHFT, KC_A, KC_S, KC_H, TEX, KC_G
215#define _____________WORKMAN_412_002_R_____________ KC_Y, KC_N, KC_E, KC_O, KC_I, KC_ENT
216#define _____________WORKMAN_412_003_L_____________ KC_LSFT, KC_Z, KC_X, KC_M, KC_C, KC_V
217#define _____________WORKMAN_412_003_R_____________ KC_K, KC_L, TD_CSPC, TD_DSPC, SFT_ENT, TD_UR
218#define _____________WORKMAN_412_004_L_____________ FN, KC_LCTL, KC_LGUI, KC_LALT, LOWER, TD_SE
219#define _____________WORKMAN_412_004_R_____________ TD_SE, RAISE, SS, CLIP, CCCV, TD_DL
220
221#define _____________WORKMAN_ID75_TOP_L____________ KC_ESC, M01, M02, M03, M04, M05
222#define _____________WORKMAN_ID75_TOP_R____________ M06, M07, M08, M09, M10, KC_BSPC
223#define _____________WORKMAN_ID75_BOT_L____________ FN, KC_LCTL, KC_LGUI, KC_LALT, LOWER, KC_SPC
224#define _____________WORKMAN_ID75_BOT_R____________ KC_ENT, RAISE, SS, CLIP, CCCV, TD_DL
225
226// clang-format on \ No newline at end of file