Userspace and keymap addition (#20522)

Co-authored-by: Drashna Jaelre <drashna@live.com>
This commit is contained in:
miketronic 2023-07-09 07:10:24 -04:00 committed by GitHub
parent 06a36824ad
commit 5bc282eefe
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
19 changed files with 1503 additions and 0 deletions

View file

@ -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

View file

@ -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 ENTERENTER
*
* SHIFT| Z X M C V K L SPC SPC / UP |
* , . RIGHT|
*
* FN CTRL OS ALT LOWER RAISE SS CLIP COPY DN
* PASTELEFT
*
*/
[_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
}

View file

@ -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

View file

@ -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

View file

@ -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 SPACELOWER RAISEENTERCOPY
* 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 SPACELOWER RAISEENTERCOPY
* 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
*
* BOOTDEBUG 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 SPACELOWER RAISEENTERCOPY
* 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 SPACELOWER RAISEENTERCOPY
* 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 DOWNRIGHT UP
* RIGHT
*
* M01 M02 M03 M04 , . DOWN
* FN LEFT
*
* OSM SPACELOWER RAISEENTERCOPY
* 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 SPACELOWER RAISEENTERCOPY
* 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
}

View file

@ -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

View file

@ -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

View file

@ -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 BSPCBSPC
* 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 ENTERDOWN
* FN CTRL OS ALT LOWER 0 RAISERAISE 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
*
* BOOTDEBUG 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 DOWNRIGHT 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
}

View file

@ -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

12
users/miketronic/config.h Normal file
View file

@ -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

View file

@ -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();
}

View file

@ -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

View file

@ -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);
}

View file

@ -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
};

View file

@ -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

View file

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

View file

@ -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) // "%", "&"
};

View file

@ -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
};

226
users/miketronic/wrappers.h Normal file
View file

@ -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