~ruther/qmk_firmware

5bc282eefe36dd45393bcba3f861fa168013f7ce — miketronic 1 year, 10 months ago 06a3682
Userspace and keymap addition (#20522)

Co-authored-by: Drashna Jaelre <drashna@live.com>
A keyboards/1upkeyboards/pi40/mit_v1_0/keymaps/miketronic/config.h => keyboards/1upkeyboards/pi40/mit_v1_0/keymaps/miketronic/config.h +13 -0
@@ 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




A keyboards/1upkeyboards/pi40/mit_v1_0/keymaps/miketronic/keymap.c => keyboards/1upkeyboards/pi40/mit_v1_0/keymaps/miketronic/keymap.c +290 -0
@@ 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

A keyboards/1upkeyboards/pi40/mit_v1_0/keymaps/miketronic/rules.mk => keyboards/1upkeyboards/pi40/mit_v1_0/keymaps/miketronic/rules.mk +25 -0
@@ 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

A keyboards/hazel/bad_wings/keymaps/miketronic/config.h => keyboards/hazel/bad_wings/keymaps/miketronic/config.h +16 -0
@@ 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 

A keyboards/hazel/bad_wings/keymaps/miketronic/keymap.c => keyboards/hazel/bad_wings/keymaps/miketronic/keymap.c +258 -0
@@ 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
}


A keyboards/hazel/bad_wings/keymaps/miketronic/rules.mk => keyboards/hazel/bad_wings/keymaps/miketronic/rules.mk +31 -0
@@ 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

A keyboards/mechwild/bde/rev2/keymaps/miketronic/config.h => keyboards/mechwild/bde/rev2/keymaps/miketronic/config.h +10 -0
@@ 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

A keyboards/mechwild/bde/rev2/keymaps/miketronic/keymap.c => keyboards/mechwild/bde/rev2/keymaps/miketronic/keymap.c +221 -0
@@ 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

A keyboards/mechwild/bde/rev2/keymaps/miketronic/rules.mk => keyboards/mechwild/bde/rev2/keymaps/miketronic/rules.mk +13 -0
@@ 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

A users/miketronic/config.h => users/miketronic/config.h +12 -0
@@ 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

A users/miketronic/miketronic.c => users/miketronic/miketronic.c +17 -0
@@ 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

A users/miketronic/miketronic.h => users/miketronic/miketronic.h +63 -0
@@ 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

A users/miketronic/process_records.c => users/miketronic/process_records.c +151 -0
@@ 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);
}

A users/miketronic/process_records.h => users/miketronic/process_records.h +38 -0
@@ 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
};

A users/miketronic/readme.md => users/miketronic/readme.md +25 -0
@@ 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

A users/miketronic/rules.mk => users/miketronic/rules.mk +4 -0
@@ 0,0 1,4 @@
SRC += miketronic.c process_records.c
ifeq ($(strip $(TAP_DANCE_ENABLE)), yes)
    SRC += $(USER_PATH)/tapdances.c
endif

A users/miketronic/tapdances.c => users/miketronic/tapdances.c +33 -0
@@ 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)                  // "%", "&"
};


A users/miketronic/tapdances.h => users/miketronic/tapdances.h +57 -0
@@ 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

A users/miketronic/wrappers.h => users/miketronic/wrappers.h +226 -0
@@ 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

Do not follow this link