summaryrefslogtreecommitdiff
path: root/users
diff options
context:
space:
mode:
authormiketronic <mikebarnoski@gmail.com>2023-07-09 07:10:24 -0400
committerGitHub <noreply@github.com>2023-07-09 21:10:24 +1000
commit5bc282eefe36dd45393bcba3f861fa168013f7ce (patch)
treeaeb269b5edf59a2650a63708be8683faf984ba1c /users
parent06a36824ad7e964c41e10e49780dd220ae573a95 (diff)
Userspace and keymap addition (#20522)
Co-authored-by: Drashna Jaelre <drashna@live.com>
Diffstat (limited to 'users')
-rw-r--r--users/miketronic/config.h12
-rw-r--r--users/miketronic/miketronic.c17
-rw-r--r--users/miketronic/miketronic.h63
-rw-r--r--users/miketronic/process_records.c151
-rw-r--r--users/miketronic/process_records.h38
-rw-r--r--users/miketronic/readme.md25
-rw-r--r--users/miketronic/rules.mk4
-rw-r--r--users/miketronic/tapdances.c33
-rw-r--r--users/miketronic/tapdances.h57
-rw-r--r--users/miketronic/wrappers.h226
10 files changed, 626 insertions, 0 deletions
diff --git a/users/miketronic/config.h b/users/miketronic/config.h
new file mode 100644
index 0000000000..4123caa5bc
--- /dev/null
+++ b/users/miketronic/config.h
@@ -0,0 +1,12 @@
+// Copyright 2023 @miketronic -- Mike B <mxb540@gmail.com>
+// SPDX-License-Identifier: GPL-2.0+
+
+#pragma once
+
+#define DEBOUNCE 10
+#if defined(TAP_DANCE_ENABLE)
+# define TAP_CODE_DELAY 5
+# define TAP_HOLD_CAPS_DELAY 25
+#endif
+#define MACRO_TIMER 5
+#define ENABLE_COMPILE_KEYCODE \ No newline at end of file
diff --git a/users/miketronic/miketronic.c b/users/miketronic/miketronic.c
new file mode 100644
index 0000000000..3c47a72462
--- /dev/null
+++ b/users/miketronic/miketronic.c
@@ -0,0 +1,17 @@
+// Copyright 2023 @miketronic -- Mike B <mxb540@gmail.com>
+// SPDX-License-Identifier: GPL-2.0+
+
+#include "miketronic.h"
+
+
+__attribute__ ((weak)) void keyboard_post_init_keymap(void) { }
+
+// Init effect for RGB boards only
+void keyboard_post_init_user(void) {
+#ifdef RGB_MATRIX_ENABLE
+ rgblight_enable_noeeprom(); // enables Rgb, without saving settings
+ rgblight_sethsv_noeeprom(HSV_ORANGE); // sets the color without saving
+ rgb_matrix_mode_noeeprom(RGB_MATRIX_SOLID_COLOR);
+#endif
+ keyboard_post_init_keymap();
+} \ No newline at end of file
diff --git a/users/miketronic/miketronic.h b/users/miketronic/miketronic.h
new file mode 100644
index 0000000000..4032215a1d
--- /dev/null
+++ b/users/miketronic/miketronic.h
@@ -0,0 +1,63 @@
+// Copyright 2023 @miketronic -- Mike B <mxb540@gmail.com>
+// SPDX-License-Identifier: GPL-2.0+
+
+#pragma once
+#include QMK_KEYBOARD_H
+
+#include "quantum.h"
+#include "wrappers.h"
+#include "action.h"
+#include "version.h"
+#include "process_records.h"
+#ifdef TAP_DANCE_ENABLE
+# include "tapdances.h"
+#endif
+
+enum layer_names {
+ _WM,
+ _QW,
+ _LOWER,
+ _RAISE,
+ _EX,
+ _FN,
+ _SYMB
+};
+
+
+// Layer macros
+#define LOWER MO(_LOWER)
+#define RAISE MO(_RAISE)
+#define FN MO(_FN)
+#define EX MO(_EX)
+#define TEX LT(_EX, KC_T) // Tap for "T", hold for Extras layer
+#define BSYM LT(_SYMB, KC_B) // Tap for "B", hold for Symbols layer
+#define JSYM LT(_SYMB, KC_J) // Tap for "J", hold for Symbols layer
+#define FNZ LT(_FN, KC_Z) // Tap for "Z", hold for FN layer
+#define VLOWER LT(_LOWER, KC_V) // Tap for "V", hold for Lower layer
+#define KRAISE LT(_RAISE, KC_K) // Tap for "K", hold for Raise layer
+
+// Mod Tap
+//#define ASFT MT(MOD_LSFT, KC_A) // Tap for "A", hold for Shift
+#define ASFT SFT_T(KC_A) // Tap for "A", hold for Shift
+#define GGUI MT(MOD_LGUI, KC_G) // Tap for "G", hold for OS Key
+#define MGUI MT(MOD_LGUI, KC_M) // Tap for "M", hold for OS Key
+#define CTRLX MT(MOD_LCTL, KC_X) // Tap for "X", hold for Ctrl
+#define CALT MT(MOD_LALT, KC_C) // Tap for "C", hold for Alt
+#define L_ALT MT(MOD_RALT, KC_L) // Tap for "L", hold for Alt
+#define TBSHFT MT(MOD_LSFT, KC_TAB) // Tap for Tab, hold for Shift
+#define SLSHFT MT(MOD_RSFT, KC_SLSH) // Tap for Slash, hold for Shift
+#define SFT_ENT RSFT_T(KC_ENT) // Tap for Enter, hold for Shift
+#define OSSFT OSM(MOD_LSFT) // One shot left Shift
+
+// MISC
+#define CALTDEL LCTL(LALT(KC_DEL)) // Ctrl Alt Del
+#define TSKMGR LCTL(LSFT(KC_ESC)) // Task Manager
+#define CLIP LCTL(LALT(KC_Q)) // Clipboard (Ditto)
+#define SS LCTL(LALT(KC_G)) // Greenshot region
+#define NUM LSFT(KC_3)
+#define AT LSFT(KC_2)
+#define COPY LCTL(KC_C)
+#define PASTE LCTL(KC_V)
+#define ____ KC_TRNS
+#define XXXX KC_NO
+#define XXXXXXX KC_NO
diff --git a/users/miketronic/process_records.c b/users/miketronic/process_records.c
new file mode 100644
index 0000000000..5c60ddf100
--- /dev/null
+++ b/users/miketronic/process_records.c
@@ -0,0 +1,151 @@
+// Copyright 2023 @miketronic -- Mike B <mxb540@gmail.com>
+// SPDX-License-Identifier: GPL-2.0+
+
+#include "miketronic.h"
+#include "process_records.h"
+
+__attribute__((weak)) bool process_record_keymap(uint16_t keycode, keyrecord_t *record) {
+ return true;
+}
+
+__attribute__((weak)) bool process_record_secrets(uint16_t keycode, keyrecord_t *record) {
+ return true;
+}
+
+
+bool process_record_user(uint16_t keycode, keyrecord_t *record) {
+
+ switch (keycode) {
+ case VERSION:
+ if (!record->event.pressed) {
+ send_string_with_delay_P(PSTR(QMK_KEYBOARD ":" QMK_KEYMAP "\nVersion:" QMK_VERSION ", built: " QMK_BUILDDATE "\n"), MACRO_TIMER);
+ }
+ break;
+
+ case M01:
+ if (record->event.pressed) {
+ SEND_STRING("//a11");
+ }
+ break;
+
+ case M02:
+ if (record->event.pressed) {
+ SEND_STRING("//a12");
+ }
+ break;
+
+ case M03:
+ if (record->event.pressed) {
+ SEND_STRING("//a08");
+ }
+ break;
+
+ case M04:
+ if (record->event.pressed) {
+ SEND_STRING("//a09");
+ }
+ break;
+
+ case M05:
+ if (record->event.pressed) {
+ SEND_STRING("//th");
+ }
+ break;
+
+ case M06:
+ if (record->event.pressed) {
+ SEND_STRING("//re");
+ }
+ break;
+
+ case M07:
+ if (record->event.pressed) {
+ SEND_STRING("//yw");
+ }
+ break;
+
+ case M08:
+ if (record->event.pressed) {
+ tap_random_base64();
+ }
+ break;
+
+ case CCCV: // One key copy/paste
+ if (record->event.pressed) {
+ copy_paste_timer = timer_read();
+ } else {
+ if (timer_elapsed(copy_paste_timer) > TAPPING_TERM) { // Hold, copy
+ tap_code16(LCTL(KC_C));
+ } else { // Tap, paste
+ tap_code16(LCTL(KC_V));
+ }
+ }
+ break;
+
+ case IENTER: // Tap for letter "i", slight hold for "enter"
+ if (record->event.pressed) {
+ copy_paste_timer = timer_read();
+ } else {
+ if (timer_elapsed(copy_paste_timer) > TAPPING_TERM) { // Hold, enter
+ tap_code16(KC_ENT);
+ } else { // Tap, "i"
+ tap_code16(KC_I);
+ }
+ }
+ break;
+
+ case PRN:
+ if (record->event.pressed) {
+ SEND_STRING("()");
+ tap_code(KC_LEFT);
+ }
+ break;
+
+ case BRACES:
+ if (record->event.pressed) {
+ uint8_t shifted = get_mods() & (MOD_MASK_SHIFT);
+ if (shifted) {
+ unregister_code(KC_LSFT);
+ unregister_code(KC_RSFT);
+ SEND_STRING("<>"SS_TAP(X_LEFT));
+ }
+ else {
+ SEND_STRING("[]"SS_TAP(X_LEFT));
+ }
+ }
+ break;
+
+#if defined(RGBLIGHT_ENABLE)
+ case RGB1:
+ if (record->event.pressed) {
+ rgblight_sethsv_noeeprom(HSV_BLUE);
+ }
+ break;
+
+ case RGB2:
+ if (record->event.pressed) {
+ rgblight_sethsv_noeeprom(HSV_RED);
+ }
+ break;
+
+ case RGB3:
+ if (record->event.pressed) {
+ rgblight_sethsv_noeeprom(HSV_ORANGE);
+ }
+ break;
+
+ case RGB4:
+ if (record->event.pressed) {
+ rgblight_sethsv_noeeprom(HSV_WHITE);
+ }
+ break;
+
+ case RGB5:
+ if (record->event.pressed) {
+ rgblight_sethsv_noeeprom(HSV_GREEN);
+ }
+ break;
+#endif
+ }
+ return process_record_keymap(keycode, record) && process_record_secrets(keycode, record);
+}
diff --git a/users/miketronic/process_records.h b/users/miketronic/process_records.h
new file mode 100644
index 0000000000..17737490a1
--- /dev/null
+++ b/users/miketronic/process_records.h
@@ -0,0 +1,38 @@
+// Copyright 2023 @miketronic -- Mike B <mxb540@gmail.com>
+// SPDX-License-Identifier: GPL-2.0+
+
+#pragma once
+#include "miketronic.h"
+
+
+bool process_record_secrets(uint16_t keycode, keyrecord_t *record);
+bool process_record_keymap(uint16_t keycode, keyrecord_t *record);
+uint16_t copy_paste_timer;
+
+enum custom_keycodes {
+ WM = QK_USER,
+ QW,
+ MAKE,
+ VERSION,
+ M01,
+ M02,
+ M03,
+ M04,
+ M05,
+ M06,
+ M07,
+ M08,
+ M09,
+ M10,
+ M11,
+ M12,
+ RGB1,
+ RGB2,
+ RGB3,
+ RGB4,
+ RGB5,
+ IENTER,
+ PRN,
+ BRACES,
+ CCCV
+};
diff --git a/users/miketronic/readme.md b/users/miketronic/readme.md
new file mode 100644
index 0000000000..619a84ec2e
--- /dev/null
+++ b/users/miketronic/readme.md
@@ -0,0 +1,25 @@
+Copyright 2023 @miketronic -- Mike B <mxb540@gmail.com>
+SPDX-License-Identifier: GPL-2.0+
+
+# Layout for ortho 4x12 and 3x10 boards
+# My current daily drivers: Planck, Pi40 and Satpad
+
+**Objective:** I tried to make layouts with core functions that are able to be present on the 3x10 boards and adapt those to the "middle 3x10" of the 4x12 boards to make going back and forth between the two board sizes easier.
+
+
+##### My Main Layer - Workman
+
+| | | | | | | | | | | | |
+| ---- |:----:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| ----:|
+| Tab/Esc | Q/Esc | D | R | W | B/SYM | J/SYM | F | U | P | BSPC | BSPC |
+| Tab/Shift | A | S | H | T/EX | G | Y | N | E | O | I/Enter | Enter|
+| Shft | Z | X | M | C | V | K | L | Spc/, | Spc/. | / | Up/Right |
+| FN | Ctrl | OS | Alt |Lower | Spc/Enter |Spc/Enter |Raise | SS| Clip | CopyPaste | Dn/Left |
+
+SYM - Symbols layer on hold
+FN - Function layer on hold
+EX - Extras layer on hold
+Clip - Macro to my clipboard app (Ditto)
+SS - Greenshot screenshot region
+
+##### Will add the other layers as I find time \ No newline at end of file
diff --git a/users/miketronic/rules.mk b/users/miketronic/rules.mk
new file mode 100644
index 0000000000..bbd3e4131e
--- /dev/null
+++ b/users/miketronic/rules.mk
@@ -0,0 +1,4 @@
+SRC += miketronic.c process_records.c
+ifeq ($(strip $(TAP_DANCE_ENABLE)), yes)
+ SRC += $(USER_PATH)/tapdances.c
+endif
diff --git a/users/miketronic/tapdances.c b/users/miketronic/tapdances.c
new file mode 100644
index 0000000000..5fcf66062b
--- /dev/null
+++ b/users/miketronic/tapdances.c
@@ -0,0 +1,33 @@
+// Copyright 2023 @miketronic -- Mike B <mxb540@gmail.com>
+// SPDX-License-Identifier: GPL-2.0+
+
+#include "miketronic.h"
+#include "tapdances.h"
+
+
+tap_dance_action_t tap_dance_actions[] = {
+
+ [T_BRC] = ACTION_TAP_DANCE_DOUBLE(KC_LBRC, KC_RBRC), // Tap once for Left Brace, twice for Right Brace
+ [T_MIN] = ACTION_TAP_DANCE_DOUBLE(KC_MINUS, KC_EQUAL), // Minus, Equals
+ [T_UMIN] = ACTION_TAP_DANCE_DOUBLE(KC_UNDS, KC_MINS), // Underscore, Minus
+ [T_GESC] = ACTION_TAP_DANCE_DOUBLE(KC_GRAVE, KC_ESCAPE), // Grave, Escape
+ [T_SE] = ACTION_TAP_DANCE_DOUBLE(KC_SPC, KC_ENT), // Space, Enter
+ [T_MULTDIV] = ACTION_TAP_DANCE_DOUBLE(KC_PAST, KC_PSLS), // Multiply, Divide
+ [T_UR] = ACTION_TAP_DANCE_DOUBLE(KC_UP, KC_RGHT), // Up, Right
+ [T_DL] = ACTION_TAP_DANCE_DOUBLE(KC_DOWN, KC_LEFT), // Down, Left
+ [T_CP] = ACTION_TAP_DANCE_DOUBLE(LCTL(KC_C), LCTL(KC_V)), // Copy, Paste
+ [T_DENT] = ACTION_TAP_DANCE_DOUBLE(KC_DOT, KC_ENT), // Dot, Enter
+ [T_IENT] = ACTION_TAP_DANCE_DOUBLE(KC_I, KC_ENT), // "I", Enter
+ [T_CSPC] = ACTION_TAP_DANCE_DOUBLE(KC_SPC, KC_COMM), // Space, Comma
+ [T_DSPC] = ACTION_TAP_DANCE_DOUBLE(KC_SPC, KC_DOT), // Space, Dot
+ [T_QEXC] = ACTION_TAP_DANCE_DOUBLE(KC_QUES, KC_EXLM), // "?", "!"
+ [T_QESC] = ACTION_TAP_DANCE_DOUBLE(KC_Q, KC_ESC), // "q", Escape
+ [T_TE] = ACTION_TAP_DANCE_DOUBLE(KC_TAB, KC_ESC), // Tab, Escape
+ [T_20] = ACTION_TAP_DANCE_DOUBLE(KC_2, KC_0), // "2", "0"
+ [T_SL] = ACTION_TAP_DANCE_DOUBLE(KC_SLSH, KC_BSLS), // Slash, Backslash
+ [T_XX] = ACTION_TAP_DANCE_DOUBLE(KC_LPRN, KC_RPRN), // Left Paren, Right Paren
+ [T_YY] = ACTION_TAP_DANCE_DOUBLE(KC_LBRC, KC_RBRC), // Left Bracket, Right Bracket
+ [T_ATH] = ACTION_TAP_DANCE_DOUBLE(KC_AT, KC_HASH), // "@", "#"
+ [T_PRAM] = ACTION_TAP_DANCE_DOUBLE(KC_PERC, KC_AMPR) // "%", "&"
+};
+
diff --git a/users/miketronic/tapdances.h b/users/miketronic/tapdances.h
new file mode 100644
index 0000000000..8135bac269
--- /dev/null
+++ b/users/miketronic/tapdances.h
@@ -0,0 +1,57 @@
+// Copyright 2023 @miketronic -- Mike B <mxb540@gmail.com>
+// SPDX-License-Identifier: GPL-2.0+
+
+#pragma once
+#include "quantum.h"
+
+
+#define TD_BRC TD(T_BRC)
+#define TD_ATH TD(T_ATH)
+#define TD_CSPC TD(T_CSPC)
+#define TD_DSPC TD(T_DSPC)
+#define TD_CP TD(T_CP)
+#define TD_DENT TD(T_DENT)
+#define TD_IENT TD(T_IENT)
+#define TD_MIN TD(T_MIN)
+#define TD_UMIN TD(T_UMIN)
+#define TD_GESC TD(T_GESC)
+#define TD_QESC TD(T_QESC)
+#define TD_QEXC TD(T_QEXC)
+#define TD_PRAM TD(T_PRAM)
+#define TD_SE TD(T_SE)
+#define TD_MD TD(T_MULTDIV)
+#define TD_UR TD(T_UR)
+#define TD_DL TD(T_DL)
+#define TD_TE TD(T_TE)
+#define TD_20 TD(T_20)
+#define TD_SL TD(T_SL)
+#define TD_XX TD(T_XX)
+#define TD_YY TD(T_YY)
+
+
+
+// Tap Dance
+enum tapdance_id{
+ T_BRC = 0,
+ T_ATH,
+ T_CSPC,
+ T_DSPC,
+ T_CP,
+ T_DENT,
+ T_IENT,
+ T_MIN,
+ T_UMIN,
+ T_GESC,
+ T_QESC,
+ T_QEXC,
+ T_SE,
+ T_MULTDIV,
+ T_UR,
+ T_DL,
+ T_TE,
+ T_20,
+ T_SL,
+ T_XX,
+ T_YY,
+ T_PRAM
+}; \ No newline at end of file
diff --git a/users/miketronic/wrappers.h b/users/miketronic/wrappers.h
new file mode 100644
index 0000000000..7d955f4172
--- /dev/null
+++ b/users/miketronic/wrappers.h
@@ -0,0 +1,226 @@
+// Copyright 2023 @miketronic -- Mike B <mxb540@gmail.com>
+// SPDX-License-Identifier: GPL-2.0+
+
+#pragma once
+#include "miketronic.h"
+
+/* Pattern adapted from users/drashna/wrapper.h
+ Define per-layout keymap sections. Also requires a wrapper.
+ Example:
+ #define LAYOUT_:name_wrapper(...) LAYOUT_:name(__VA_ARGS__)
+ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+ [_MODS] = LAYOUT_:name _wrapper(
+ _______, ___________________BLANK___________________, ...
+ ...
+ ),
+ }
+*/
+
+
+// clang-format off
+# define LAYOUT_ortho_4x12_wrapper(...) LAYOUT_ortho_4x12(__VA_ARGS__)
+# define LAYOUT_planck_grid_wrapper(...) LAYOUT_planck_grid(__VA_ARGS__)
+#if (defined(KEYBOARD_hazel_satpad))
+# define LAYOUT_3x11_wrapper(...) LAYOUT(__VA_ARGS__)
+#endif
+#if (defined(KEYBOARD_mechwild_bde_rev2))
+# define LAYOUT_3x14_wrapper(...) LAYOUT(__VA_ARGS__)
+#endif
+#if (defined(KEYBOARD_hazel_bad_wings))
+# define LAYOUT_split_3x5_3_wrapper(...) LAYOUT_split_3x5_3(__VA_ARGS__)
+#endif
+#if (defined(KEYBOARD_idobao_id75_v1))
+# define LAYOUT_ortho_5x15_wrapper(...) LAYOUT_ortho_5x15(__VA_ARGS__)
+#endif
+
+
+#define _________NUMBER_01__________ KC_7, KC_8, KC_9
+#define _________NUMBER_02__________ KC_4, KC_5, KC_6
+#define _________NUMBER_03__________ KC_1, TD_20, KC_3
+
+
+
+#define _________________QWERTY_L1_________________ KC_Q, KC_W, KC_E, KC_R, KC_T
+#define _________________QWERTY_L2_________________ KC_A, KC_S, KC_D, KC_F, KC_G
+#define _________________QWERTY_L3_________________ FNZ, KC_X, KC_C, VLOWER, KC_B
+
+#define _________________QWERTY_R1_________________ KC_Y, KC_U, KC_I, KC_O, KC_P
+#define _________________QWERTY_R2_________________ KC_H, KC_J, KRAISE, KC_L, KC_SCLN
+#define _________________QWERTY_R3_________________ KC_N, KC_M, KC_COMM, KC_DOT, KC_SLASH
+
+
+
+#define ________________NUMBER_LEFT________________ KC_1, KC_2, KC_3, KC_4, KC_5
+#define ________________NUMBER_RIGHT_______________ KC_6, KC_7, KC_8, KC_9, KC_0
+#define _________________FUNC_LEFT_________________ KC_F1, KC_F2, KC_F3, KC_F4, KC_F5
+#define _________________FUNC_RIGHT________________ KC_F6, KC_F7, KC_F8, KC_F9, KC_F10
+
+#define ______________LONG_FUNC_LEFT_______________ KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6
+#define ______________LONG_FUNC_RIGHT______________ KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12
+
+#define _________________BLANK_5___________________ _______, _______, _______, _______, _______
+#define _________________BLANK_6___________________ _______, _______, _______, _______, _______, _______
+
+#define _________________LOWER_L1__________________ KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC
+#define _________________LOWER_L2__________________ _________________FUNC_LEFT_________________
+#define _________________LOWER_L3__________________ _________________FUNC_RIGHT________________
+
+#define _________________LOWER_R1__________________ KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN
+#define _________________LOWER_R2__________________ _______, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR
+#define _________________LOWER_R3__________________ _______, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT
+
+#define _______________LOWER_310_L1________________ PRN, BRACES, TD_SL, _______, _______
+#define _______________LOWER_310_L2________________ TD_ATH, TD_PRAM, _______, _______, _______
+#define _______________LOWER_310_L3________________ _______, _______, _______, _______, _______
+
+#define _______________LOWER_310_R1________________ _______, KC_7, KC_8, KC_9, _______
+#define _______________LOWER_310_R2________________ TD_DENT, KC_4, KC_5, KC_6, TD_UR
+#define _______________LOWER_310_R3________________ KC_0, KC_1, TD_20, KC_3, TD_DL
+
+#define _______________LOWER_412_L1________________ _______, PRN, BRACES, TD_SL, _______, _______
+#define _______________LOWER_412_L2________________ _______, TD_ATH, TD_PRAM, _______, _______, _______
+#define _______________LOWER_412_L3________________ _______, _______, _______, _______, _______, _______
+#define _______________LOWER_412_L4________________ _______, _______, _______, _______, _______, _______
+
+#define _______________LOWER_412_R1________________ _______, KC_7, KC_8, KC_9, _______, _______
+#define _______________LOWER_412_R2________________ TD_DENT, KC_4, KC_5, KC_6, _______, _______
+#define _______________LOWER_412_R3________________ KC_0, KC_1, TD_20, KC_3, _______, TD_UR
+#define _______________LOWER_412_R4________________ _______, _______, KC_BSPC, KC_SPC, TD_DENT, TD_DL
+
+
+
+#define _________________RAISE_L1__________________ ________________NUMBER_LEFT________________
+#define _________________RAISE_L2__________________ ___________________BLANK___________________
+#define _________________RAISE_L3__________________ ___________________BLANK___________________
+
+#define _________________RAISE_R1__________________ ________________NUMBER_RIGHT_______________
+#define _________________RAISE_R2__________________ _______, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC
+#define _________________RAISE_R3__________________ _______, KC_HOME, KC_PGDN, KC_PGUP, KC_END
+
+#define _______________RAISE_310_L1________________ QK_BOOT, DB_TOGG, _______, _______, QK_MAKE
+#define _______________RAISE_310_L2________________ KC_LSFT, RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD
+#define _______________RAISE_310_L3________________ _______, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD
+
+#define _______________RAISE_310_R1________________ _______, KC_F7, KC_F8, KC_F9, KC_F10
+#define _______________RAISE_310_R2________________ TD_UMIN, KC_F4, KC_F5, KC_F6, KC_F11
+#define _______________RAISE_310_R3________________ _______, KC_F1, KC_F2, KC_F3, KC_F12
+
+#define _______________RAISE_412_L1________________ QK_BOOT, DB_TOGG, _______, _______, _______, QK_MAKE
+#define _______________RAISE_412_L2________________ KC_LSFT, RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, WM
+#define _______________RAISE_412_L3________________ _______, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, QW
+
+#define _______________RAISE_412_R1________________ _______, _______, KC_F7, KC_F8, KC_F9, KC_F10
+#define _______________RAISE_412_R2________________ _______, _______, KC_F4, KC_F5, KC_F6, KC_F11
+#define _______________RAISE_412_R3________________ _______, TD_UMIN, KC_F1, KC_F2, KC_F3, KC_F12
+
+
+
+#define ______________EXTRAS_310_L1________________ KC_EXLM, _______, _______, _______, _______
+#define ______________EXTRAS_310_L2________________ KC_LSFT, _______, _______, _______, _______
+#define ______________EXTRAS_310_L3________________ _______, _______, _______, _______, _______
+
+#define ______________EXTRAS_310_R1________________ _______, TD_SL, PRN, BRACES, KC_SCLN
+#define ______________EXTRAS_310_R2________________ QK_LEAD, TD_ATH, TD_PRAM, _______, KC_QUOT
+#define ______________EXTRAS_310_R3________________ _______, _______, KC_COMM, KC_DOT, KC_QUES
+
+#define ______________EXTRAS_412_L1________________ _______, KC_EXLM, _______, _______, _______, _______
+#define ______________EXTRAS_412_L2________________ KC_LSFT, _______, _______, _______, _______, _______
+#define ______________EXTRAS_412_L3________________ _______, _______, _______, _______, _______, _______
+#define ______________EXTRAS_412_L4________________ _______, _______, _______, _______, _______, TD_SE
+
+#define ______________EXTRAS_412_R1________________ _______, TD_SL, PRN, BRACES, KC_SCLN, _______
+#define ______________EXTRAS_412_R2________________ QK_LEAD, TD_ATH, TD_PRAM, _______, KC_QUOT, _______
+#define ______________EXTRAS_412_R3________________ _______, _______, KC_COMM, KC_DOT, KC_QUES, _______
+#define ______________EXTRAS_412_R4________________ TD_SE, _______, _______, _______, _______, _______
+
+
+
+#define _____________FUNCTION_310_L1_______________ CCCV, CLIP, SS, _______, _______
+#define _____________FUNCTION_310_L2_______________ TBSHFT, M05, M06, M07, M08
+#define _____________FUNCTION_310_L3_______________ _______, M01, M02, M03, M04
+
+#define _____________FUNCTION_310_R1_______________ _______, TD_SL, KC_UP, _______, KC_DEL
+#define _____________FUNCTION_310_R2_______________ _______, KC_LEFT, KC_DOWN, KC_RGHT, TD_UR
+#define _____________FUNCTION_310_R3_______________ _______, _______, KC_COMM, KC_DOT, TD_DL
+
+#define _____________FUNCTION_412_L1_______________ CCCV, CLIP, SS, _______, _______, _______
+#define _____________FUNCTION_412_L2_______________ TBSHFT, M05, M06, M07, M08, _______
+#define _____________FUNCTION_412_L3_______________ _______, M01, M02, M03, M04, _______
+#define _____________FUNCTION_412_L4_______________ _______, RGB1, RGB2, RGB3, RGB4, _______
+
+#define _____________FUNCTION_412_R1_______________ _______, T_SL, KC_UP, _______, _______, KC_DEL
+#define _____________FUNCTION_412_R2_______________ _______, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______
+#define _____________FUNCTION_412_R3_______________ _______, _______, KC_COMM, KC_DOT, KC_QUES, T_UR
+#define _____________FUNCTION_412_R4_______________ _______, _______, _______, _______, _______, T_DL
+
+#define ____________FUNCTION_ID75_TOP_R____________ M06, M07, M08, M09, M10, KC_DEL
+
+
+
+#define _____________SYMBOLS_310_L1________________ KC_DLR, KC_CIRC, KC_LABK, KC_RABK, ____
+#define _____________SYMBOLS_310_L2________________ KC_PERC, KC_COLN, KC_SCLN, KC_PLUS, KC_EQL
+#define _____________SYMBOLS_310_L3________________ KC_AMPR, KC_QUOT, KC_DQUO, KC_ASTR, KC_HASH
+
+#define _____________SYMBOLS_310_R1________________ ____, KC_PIPE, KC_LBRC, KC_RBRC, KC_MINS
+#define _____________SYMBOLS_310_R2________________ XXXX, XXXX, KC_LPRN, KC_RPRN, KC_UNDS
+#define _____________SYMBOLS_310_R3________________ KC_EXLM, KC_QUES, KC_SLSH, KC_BSLS, KC_AT
+
+
+
+#define _________________ADJUST_L1_________________ RGB_MOD, RGB_HUI, RGB_SAI, RGB_VAI, RGB_TOG
+#define _________________ADJUST_L2_________________ MU_TOGG, CK_TOGG, AU_ON, AU_OFF, AG_NORM
+#define _________________ADJUST_L3_________________ RGB_RMOD,RGB_HUD,RGB_SAD, RGB_VAD, KC_RGB_T
+
+#define _________________ADJUST_R1_________________ KC_SEC1, KC_SEC2, KC_SEC3, KC_SEC4, KC_SEC5
+#define _________________ADJUST_R2_________________ AG_SWAP, QWERTY, COLEMAK, DVORAK, WORKMAN
+#define _________________ADJUST_R3_________________ MG_NKRO, KC_MUTE, KC_VOLD, KC_VOLU, KC_MNXT
+
+
+#define _________FOUR_001__________ KC_BSPC, M08, M08, KC_MUTE
+#define _________FOUR_002__________ KC_ENT, M08, PRN, TD_UR
+#define _________FOUR_003__________ KC_BSLS, TD_ATH, BRACES, TD_DL
+
+#define _________3KEY_LEFT___________ OSSFT, KC_SPC, LOWER
+#define _________3KEY_RIGHT__________ RAISE, KC_ENT, CCCV
+
+#define ________3KEY_ID75_01_________ OSSFT, QK_LEAD, LOWER
+#define ________3KEY_ID75_02_________ KC_7, KC_8, KC_9
+#define ________3KEY_ID75_03_________ KC_4, KC_5, KC_6
+#define ________3KEY_ID75_04_________ KC_1, TD_20, KC_3
+#define ________3KEY_ID75_05_________ KC_SPC, TD_DENT, KC_ENT
+
+
+#define _____________WORKMAN_310_001_L_____________ TD_QESC, KC_D, KC_R, KC_W, BSYM
+#define _____________WORKMAN_310_001_R_____________ JSYM, KC_F, KC_U, KC_P, KC_BSPC
+#define _____________WORKMAN_310_002_L_____________ ASFT, KC_S, KC_H, TEX, KC_G
+#define _____________WORKMAN_310_002_R_____________ KC_Y, KC_N, KC_E, KC_O, KC_I
+#define _____________WORKMAN_310_003_L_____________ FNZ, CTRLX, MGUI, CALT, VLOWER
+#define _____________WORKMAN_310_003_R_____________ KRAISE, KC_L, TD_CSPC, TD_DSPC, SFT_ENT
+#define _____________WORKMAN_310_004_L_____________ FN, KC_LCTL, KC_LGUI, KC_LALT, LOWER
+#define _____________WORKMAN_310_004_R_____________ RAISE, SS, CLIP, CCCV, FN
+
+#define _____________WORKMAN_410_003_L_____________ FNZ, KC_X, KC_M, KC_C, KC_V
+#define _____________WORKMAN_410_003_R_____________ KC_K, KC_L, TD_CSPC, TD_DSPC, SFT_ENT
+
+#define _____________WORKMAN_311_001_L_____________ TD_QESC, KC_D, KC_R, KC_W, BSYM
+#define _____________WORKMAN_311_001_R_____________ JSYM, KC_F, KC_U, KC_P, KC_BSPC
+#define _____________WORKMAN_311_002_L_____________ ASFT, KC_S, KC_H, TEX, KC_G
+#define _____________WORKMAN_311_002_R_____________ KC_Y, KC_N, KC_E, KC_O, KC_I
+#define _____________WORKMAN_311_003_L_____________ FNZ, CTRLX, MGUI, CALT, VLOWER, KC_ENT
+#define _____________WORKMAN_311_003_R_____________ KRAISE, KC_L, TD_CSPC, TD_DSPC, SFT_ENT
+
+#define _____________WORKMAN_412_001_L_____________ TD_TE, TD_QESC, KC_D, KC_R, KC_W, BSYM
+#define _____________WORKMAN_412_001_R_____________ JSYM, KC_F, KC_U, KC_P, KC_BSPC, KC_BSPC
+#define _____________WORKMAN_412_002_L_____________ TBSHFT, KC_A, KC_S, KC_H, TEX, KC_G
+#define _____________WORKMAN_412_002_R_____________ KC_Y, KC_N, KC_E, KC_O, KC_I, KC_ENT
+#define _____________WORKMAN_412_003_L_____________ KC_LSFT, KC_Z, KC_X, KC_M, KC_C, KC_V
+#define _____________WORKMAN_412_003_R_____________ KC_K, KC_L, TD_CSPC, TD_DSPC, SFT_ENT, TD_UR
+#define _____________WORKMAN_412_004_L_____________ FN, KC_LCTL, KC_LGUI, KC_LALT, LOWER, TD_SE
+#define _____________WORKMAN_412_004_R_____________ TD_SE, RAISE, SS, CLIP, CCCV, TD_DL
+
+#define _____________WORKMAN_ID75_TOP_L____________ KC_ESC, M01, M02, M03, M04, M05
+#define _____________WORKMAN_ID75_TOP_R____________ M06, M07, M08, M09, M10, KC_BSPC
+#define _____________WORKMAN_ID75_BOT_L____________ FN, KC_LCTL, KC_LGUI, KC_LALT, LOWER, KC_SPC
+#define _____________WORKMAN_ID75_BOT_R____________ KC_ENT, RAISE, SS, CLIP, CCCV, TD_DL
+
+// clang-format on \ No newline at end of file