summary refs log tree commit diff
path: root/keyboards/mechwild
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 /keyboards/mechwild
parent06a36824ad7e964c41e10e49780dd220ae573a95 (diff)
Userspace and keymap addition (#20522)
Co-authored-by: Drashna Jaelre <drashna@live.com>
Diffstat (limited to 'keyboards/mechwild')
-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
3 files changed, 244 insertions, 0 deletions
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