summary refs log tree commit diff
path: root/keyboards
diff options
context:
space:
mode:
authorDrashna Jael're <drashna@live.com>2022-11-12 17:10:04 -0800
committerDrashna Jael're <drashna@live.com>2022-11-12 17:10:04 -0800
commit731633e133de428408cd313fbd65fb0a36145672 (patch)
treeb788a9fe150a353ce20d338848d3dab2bbc42879 /keyboards
parent6cc9513ab0cd5e21354c51ab83a89af9f2eb517e (diff)
parent2e39647618295e4a2ba685cfb8e3ab36622e92ee (diff)
Merge remote-tracking branch 'origin/master' into develop
Diffstat (limited to 'keyboards')
-rw-r--r--keyboards/boardsource/lulu/keymaps/rmeli/config.h45
-rw-r--r--keyboards/boardsource/lulu/keymaps/rmeli/keymap.c108
-rw-r--r--keyboards/boardsource/lulu/keymaps/rmeli/rules.mk9
-rw-r--r--keyboards/cannonkeys/serenity/config.h27
-rw-r--r--keyboards/cannonkeys/serenity/halconf.h29
-rw-r--r--keyboards/cannonkeys/serenity/info.json156
-rw-r--r--keyboards/cannonkeys/serenity/keymaps/default/keymap.c41
-rw-r--r--keyboards/cannonkeys/serenity/keymaps/via/keymap.c59
-rw-r--r--keyboards/cannonkeys/serenity/keymaps/via/rules.mk1
-rw-r--r--keyboards/cannonkeys/serenity/mcuconf.h31
-rw-r--r--keyboards/cannonkeys/serenity/readme.md25
-rw-r--r--keyboards/cannonkeys/serenity/rules.mk2
-rw-r--r--[-rwxr-xr-x]keyboards/crkbd/keymaps/ericgebhart/keymap.c46
-rw-r--r--keyboards/crkbd/keymaps/rmeli/config.h25
-rw-r--r--keyboards/crkbd/keymaps/rmeli/keymap.c99
-rw-r--r--keyboards/crkbd/keymaps/rmeli/rules.mk6
-rw-r--r--keyboards/dztech/dz60rgb_ansi/v1/rules.mk2
-rw-r--r--keyboards/dztech/dz60rgb_ansi/v2/rules.mk2
-rw-r--r--keyboards/dztech/dz60rgb_ansi/v2_1/rules.mk2
-rw-r--r--keyboards/ergodox_ez/keymaps/ericgebhart/keymap.c34
-rw-r--r--keyboards/ergodox_ez/keymaps/ericgebhart/layouts.h139
-rw-r--r--keyboards/handwired/alcor_dactyl/config.h33
-rw-r--r--keyboards/handwired/alcor_dactyl/info.json130
-rw-r--r--keyboards/handwired/alcor_dactyl/keymaps/colemak_dh/keymap.c100
-rw-r--r--keyboards/handwired/alcor_dactyl/keymaps/default/keymap.c43
-rw-r--r--keyboards/handwired/alcor_dactyl/readme.md28
-rw-r--r--keyboards/handwired/alcor_dactyl/rules.mk2
-rw-r--r--keyboards/handwired/dactyl_manuform/5x6_6/5x6_6.c18
-rw-r--r--keyboards/handwired/dactyl_manuform/5x6_6/5x6_6.h47
-rw-r--r--keyboards/handwired/dactyl_manuform/5x6_6/config.h34
-rw-r--r--keyboards/handwired/dactyl_manuform/5x6_6/info.json93
-rw-r--r--keyboards/handwired/dactyl_manuform/5x6_6/keymaps/default/keymap.c39
-rw-r--r--keyboards/handwired/dactyl_manuform/5x6_6/readme.md22
-rw-r--r--keyboards/handwired/dactyl_manuform/5x6_6/rules.mk19
-rw-r--r--keyboards/keebio/viterbi/keymaps/ericgebhart/keymap.c34
-rw-r--r--keyboards/kinesis/keymaps/ericgebhart/keymap.c39
-rw-r--r--keyboards/kinesis/keymaps/ericgebhart/rules.mk3
-rw-r--r--keyboards/laser_ninja/pumpkin_pad/config.h60
-rw-r--r--keyboards/laser_ninja/pumpkin_pad/info.json78
-rw-r--r--keyboards/laser_ninja/pumpkin_pad/keymaps/default/keymap.c31
-rw-r--r--keyboards/laser_ninja/pumpkin_pad/keymaps/via/keymap.c41
-rw-r--r--keyboards/laser_ninja/pumpkin_pad/keymaps/via/rules.mk1
-rw-r--r--keyboards/laser_ninja/pumpkin_pad/readme.md23
-rw-r--r--keyboards/laser_ninja/pumpkin_pad/rules.mk1
-rw-r--r--keyboards/montsinger/rebound/rev4/keymaps/ericgebhart/keymap.c87
-rw-r--r--keyboards/montsinger/rebound/rev4/keymaps/ericgebhart/layouts.h113
-rw-r--r--keyboards/montsinger/rebound/rev4/keymaps/ericgebhart/rules.mk2
-rw-r--r--keyboards/nixkeyboards/day_off/config.h43
-rwxr-xr-xkeyboards/nixkeyboards/day_off/day_off.c16
-rwxr-xr-xkeyboards/nixkeyboards/day_off/day_off.h32
-rwxr-xr-xkeyboards/nixkeyboards/day_off/info.json87
-rw-r--r--keyboards/nixkeyboards/day_off/keymaps/default/keymap.c60
-rw-r--r--keyboards/nixkeyboards/day_off/readme.md23
-rwxr-xr-xkeyboards/nixkeyboards/day_off/rules.mk19
-rw-r--r--keyboards/preonic/keymaps/rmeli/config.h45
-rw-r--r--keyboards/preonic/keymaps/rmeli/keymap.c231
-rw-r--r--keyboards/preonic/keymaps/rmeli/readme.md1
-rw-r--r--keyboards/preonic/keymaps/rmeli/rules.mk12
-rwxr-xr-xkeyboards/splitkb/kyria/keymaps/ericgebhart/config.h25
-rw-r--r--keyboards/splitkb/kyria/keymaps/ericgebhart/keymap.c18
-rw-r--r--keyboards/splitkb/kyria/keymaps/ericgebhart/rules.mk3
-rw-r--r--keyboards/xiudi/xd75/keymaps/ericgebhart/keymap.c125
-rw-r--r--keyboards/xiudi/xd75/keymaps/ericgebhart/readme.md1
-rw-r--r--keyboards/xiudi/xd75/keymaps/ericgebhart/rules.mk2
64 files changed, 2070 insertions, 682 deletions
diff --git a/keyboards/boardsource/lulu/keymaps/rmeli/config.h b/keyboards/boardsource/lulu/keymaps/rmeli/config.h
new file mode 100644
index 0000000000..4d8823d785
--- /dev/null
+++ b/keyboards/boardsource/lulu/keymaps/rmeli/config.h
@@ -0,0 +1,45 @@
+/*
+Copyright 2022 Rocco Meli <@RMeli>
+
+This program is free software: you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation, either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program.  If not, see <http://www.gnu.org/licenses/>.
+*/
+
+#pragma once
+
+#define MASTER_LEFT // Left side is the master
+#define SPLIT_LED_STATE_ENABLE
+
+#ifdef RGB_MATRIX_ENABLE
+// Configure RGB Matrix
+#    define RGB_MATRIX_KEYPRESSES // enable keypress effects
+#    define RGB_MATRIX_LED_FLUSH_LIMIT 16
+#    define RGB_DISABLE_WHEN_USB_SUSPENDED
+#    define RGB_MATRIX_STARTUP_MODE RGB_MATRIX_SOLID_COLOR
+#    define RGB_MATRIX_STARTUP_HUE 10
+#    define RGB_MATRIX_STARTUP_SAT 255
+#    define RGB_MATRIX_STARTUP_VAL RGB_MATRIX_MAXIMUM_BRIGHTNESS
+// Disable RGB Matrix effects (from lulu/config.h)
+#    undef ENABLE_RGB_MATRIX_ALPHAS_MODS
+#    undef ENABLE_RGB_MATRIX_GRADIENT_UP_DOWN
+#    undef ENABLE_RGB_MATRIX_GRADIENT_LEFT_RIGHT
+#    undef ENABLE_RGB_MATRIX_BREATHING
+#    undef ENABLE_RGB_MATRIX_BAND_SAT
+#    undef ENABLE_RGB_MATRIX_BAND_VAL
+// Enable RGB Matrix effects
+#    define ENABLE_RGB_MATRIX_BREATHING
+#    define ENABLE_RGB_MATRIX_TYPING_HEATMAP
+#    define ENABLE_RGB_MATRIX_SOLID_REACTIVE_SIMPLE
+#    define ENABLE_RGB_MATRIX_SOLID_COLOR
+#    define ENABLE_RGB_MATRIX_SOLID_REACTIVE_WIDE
+#endif
diff --git a/keyboards/boardsource/lulu/keymaps/rmeli/keymap.c b/keyboards/boardsource/lulu/keymaps/rmeli/keymap.c
new file mode 100644
index 0000000000..f9be18ee2d
--- /dev/null
+++ b/keyboards/boardsource/lulu/keymaps/rmeli/keymap.c
@@ -0,0 +1,108 @@
+/*
+Copyright 2022 Cole Smith <cole@boadsource.xyz>
+Copyright 2022 Rocco Meli <@RMeli>
+
+This program is free software: you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation, either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program.  If not, see <http://www.gnu.org/licenses/>.
+*/
+
+#include QMK_KEYBOARD_H
+
+#include "rmeli.h"
+
+enum layers {
+    _QWERTY,
+    _COLEMAK_DH,
+    _RAISE,
+    _LOWER,
+    _ADJUST,
+};
+
+#define RAISE MO(_RAISE)
+#define LOWER MO(_LOWER)
+
+#define QWY_DF DF(_QWERTY)
+#define CMK_DF DF(_COLEMAK_DH)
+
+// clang-format off
+#define __________THUMB_LEFT_x4___________ KC_LALT, KC_LGUI,   LOWER,  KC_SPC
+#define __________THUMB_RIGHT_x4__________  KC_ENT,   RAISE, KC_LCTL, KC_RGUI
+// clang-format on
+
+/* LAYOUT
+ *
+ * ,-----------------------------.                ,-----------------------------.
+ * |    |    |    |    |    |    |                |    |    |    |    |    |    |
+ * |----+----+----+----+----+----|                |----+----+----+----+----+----|
+ * |    |    |    |    |    |    |                |    |    |    |    |    |    |
+ * |----+----+----+----+----+----|                |----+----+----+----+----+----|
+ * |    |    |    |    |    |    |-----.    ,-----|    |    |    |    |    |    |
+ * |----+----+----+----+----+----|     |    |     |----+----+----+----+----+----|
+ * |    |    |    |    |    |    |-----|    |-----|    |    |    |    |    |    |
+ * `----------------------------/     /      \     \----------------------------'
+ *            |    |    |    | /     /        \     \  |    |    |    |
+ *            |    |    |    |/     /          \     \ |    |    |    |
+ *            `--------------''-----'          '------''--------------'
+ */
+
+// Define wrapper for standard LULU layout
+#define LAYOUT_wrapper(...) LAYOUT(__VA_ARGS__)
+
+// clang-format off
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+
+  [_QWERTY] = LAYOUT_wrapper(
+  ___________________NUMBER_LEFT_x6___________________,                   ___________________NUMBER_RIGHT_x6__________________,
+  ___________________QWERTY_L1_x6_____________________,                   ___________________QWERTY_R1_x6_____________________,
+  ___________________QWERTY_L2_x6_____________________,                   ___________________QWERTY_R2_x6_____________________,
+  ___________________QWERTY_L3_x6_____________________, KC_LBRC, KC_RBRC, ___________________QWERTY_R3_x6_____________________,
+                             __________THUMB_LEFT_x4___________,  __________THUMB_RIGHT_x4__________
+  ),
+
+  [_COLEMAK_DH] = LAYOUT_wrapper(
+  ___________________NUMBER_LEFT_x6___________________,                   ___________________NUMBER_RIGHT_x6__________________,
+  ________________COLEMAK_MOD_DH_L1_x6________________,                   ________________COLEMAK_MOD_DH_R1_x6________________,
+  ________________COLEMAK_MOD_DH_L2_x6________________,                   ________________COLEMAK_MOD_DH_R2_x6________________,
+  ________________COLEMAK_MOD_DH_L3_x6________________, KC_LBRC, KC_RBRC, ________________COLEMAK_MOD_DH_R3_x6________________,
+                             __________THUMB_LEFT_x4___________,  __________THUMB_RIGHT_x4__________
+  ),
+
+  [_LOWER] = LAYOUT_wrapper(
+  ____________________FUNC_LEFT_x6____________________,                   ____________________FUNC_RIGHT_x6___________________,
+  _______, ______________NUMBER_LEFT_x5_______________,                   ______________NUMBER_RIGHT_x5______________, _______,
+  _______, ______________UNICODE_L2_x5________________,                   ________________NAV_R2_x5__________________, XXXXXXX,
+  _______, ______________UNICODE_L3_x5________________, _______, _______, ________________NAV_R3_x5__________________, _______,
+                             _______, _______, _______, _______, _______, _______, _______, _______
+  ),
+
+  [_RAISE] = LAYOUT_wrapper(
+  ___________________NUMBER_LEFT_x6___________________,                   ___________________NUMBER_RIGHT_x6__________________,
+  ___________________SYMBOL_LEFT_x6___________________,                   ___________________SYMBOL_RIGHT_x6__________________,
+  _______, ____________NAV_VIM_x4____________, XXXXXXX,                   ____________________SYMBOL_R2_x6____________________,
+  _______, _________________NONE_5x___________________, _______, _______, ____________________SYMBOL_R3_x6____________________,
+                             _______, _______, _______, _______, _______, _______, _______, _______
+  ),
+
+  [_ADJUST] = LAYOUT_wrapper(
+  QK_BOOT, _________________NONE_5x___________________,                   ______________________NONE_6x_______________________,
+  XXXXXXX, _________________NONE_5x___________________,                   _______________CONFIG_R1_x5________________,  QWY_DF,
+  RGB_TOG, ________________RGB_L2_x5__________________,                   _______________CONFIG_R2_x5________________, XXXXXXX,
+  XXXXXXX, ________________RGB_L3_x5__________________, _______, _______, _______________CONFIG_R3_x5________________,  CMK_DF,
+                             _______, _______, _______, _______, _______, _______, _______, _______
+ )
+};
+// clang-format on
+
+layer_state_t layer_state_set_user(layer_state_t state) {
+    return update_tri_layer_state(state, _LOWER, _RAISE, _ADJUST);
+}
diff --git a/keyboards/boardsource/lulu/keymaps/rmeli/rules.mk b/keyboards/boardsource/lulu/keymaps/rmeli/rules.mk
new file mode 100644
index 0000000000..035e9814e2
--- /dev/null
+++ b/keyboards/boardsource/lulu/keymaps/rmeli/rules.mk
@@ -0,0 +1,9 @@
+TAP_DANCE_ENABLE = yes
+AUTO_SHIFT_ENABLE = no // disable auto-shift with home row mods
+
+UNICODEMAP_ENABLE = yes
+NKRO_ENABLE = yes
+MAGIC_ENABLE = yes
+
+RGBLIGHT_ENABLE = no
+RGB_MATRIX_ENABLE = yes
\ No newline at end of file
diff --git a/keyboards/cannonkeys/serenity/config.h b/keyboards/cannonkeys/serenity/config.h
new file mode 100644
index 0000000000..4b06e24a1c
--- /dev/null
+++ b/keyboards/cannonkeys/serenity/config.h
@@ -0,0 +1,27 @@
+/*
+Copyright 2015 Jun Wako <wakojun@gmail.com>
+
+This program is free software: you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation, either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program.  If not, see <http://www.gnu.org/licenses/>.
+*/
+
+#pragma once
+
+#define BACKLIGHT_PWM_DRIVER    PWMD3
+#define BACKLIGHT_PWM_CHANNEL   1
+#define BACKLIGHT_PAL_MODE      1
+
+#define WS2812_SPI SPID2
+#define WS2812_SPI_MOSI_PAL_MODE 0
+#define WS2812_SPI_SCK_PAL_MODE 0
+#define WS2812_SPI_SCK_PIN B13
diff --git a/keyboards/cannonkeys/serenity/halconf.h b/keyboards/cannonkeys/serenity/halconf.h
new file mode 100644
index 0000000000..7a5b2d4de4
--- /dev/null
+++ b/keyboards/cannonkeys/serenity/halconf.h
@@ -0,0 +1,29 @@
+/* Copyright 2020 QMK
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program.  If not, see <http://www.gnu.org/licenses/>.
+ */
+
+/*
+ * This file was auto-generated by:
+ *    `qmk chibios-confmigrate -i keyboards/cannonkeys/devastatingtkl/halconf.h -r platforms/chibios/common/configs/halconf.h`
+ */
+
+#pragma once
+
+#define HAL_USE_PWM TRUE
+
+#define HAL_USE_SPI TRUE
+
+#include_next <halconf.h>
+
diff --git a/keyboards/cannonkeys/serenity/info.json b/keyboards/cannonkeys/serenity/info.json
new file mode 100644
index 0000000000..cd154a3003
--- /dev/null
+++ b/keyboards/cannonkeys/serenity/info.json
@@ -0,0 +1,156 @@
+{
+    "keyboard_name": "Serenity",
+    "usb": {
+        "vid": "0xCA04",
+        "pid": "0x0017",
+        "device_version": "0.0.1"
+    },
+    "url": "https://cannonkeys.com",
+    "maintainer": "awkannan",
+    "bootloader": "stm32-dfu",
+    "processor": "STM32F072",
+    "diode_direction": "COL2ROW",
+    "features": {
+        "bootmagic": true,
+        "command": false,
+        "console": false,
+        "extrakey": true,
+        "mousekey": true,
+        "nkro": true,
+        "backlight": true,
+        "rgblight": true
+    },
+    "debounce": 5,
+    "matrix_pins": {
+        "cols": ["B1", "B2", "B10", "B11", "B12", "B14", "A8", "A9", "A10", "A3", "B0", "A2", "A1", "A7", "A0", "B4", "B6", "B7"],
+        "rows": ["A15", "B3", "B5", "A4", "A5", "F1"]
+    },
+    "backlight": {
+        "breathing": true,
+        "breathing_period": 5,
+        "levels": 15,
+        "pin": "A6"
+    },
+    "rgblight": {
+        "led_count": 12,
+        "pin": "B15",
+        "hue_steps": 24,
+        "saturation_steps": 16,
+        "brightness_steps": 16,
+        "animations": {
+            "alternating": true,
+            "breathing": true,
+            "christmas": true,
+            "knight": true,
+            "rainbow_mood": true,
+            "rainbow_swirl": true,
+            "rgb_test": true,
+            "snake": true,
+            "static_gradient": true,
+            "twinkle": true
+        }
+    },
+    "indicators": {
+        "caps_lock": "B9",
+        "scroll_lock": "F0",
+        "on_state": 0
+    },
+    "layouts": {
+        "LAYOUT_all": {
+            "layout": [
+                { "label": "Esc", "matrix": [0, 0], "x": 0.0, "y": 0.0 },
+                { "label": "F1", "matrix": [0, 1], "x": 1.25, "y": 0.0 },
+                { "label": "F2", "matrix": [0, 2], "x": 2.25, "y": 0.0 },
+                { "label": "F3", "matrix": [0, 3], "x": 3.25, "y": 0.0 },
+                { "label": "F4", "matrix": [0, 4], "x": 4.25, "y": 0.0 },
+                { "label": "F5", "matrix": [0, 5], "x": 5.5, "y": 0.0 },
+                { "label": "F6", "matrix": [0, 6], "x": 6.5, "y": 0.0 },
+                { "label": "F7", "matrix": [0, 7], "x": 7.5, "y": 0.0 },
+                { "label": "F8", "matrix": [0, 8], "x": 8.5, "y": 0.0 },
+                { "label": "F9", "matrix": [0, 9], "x": 9.75, "y": 0.0 },
+                { "label": "F10", "matrix": [0, 10], "x": 10.75, "y": 0.0 },
+                { "label": "F11", "matrix": [0, 11], "x": 11.75, "y": 0.0 },
+                { "label": "F12", "matrix": [0, 12], "x": 12.75, "y": 0.0 },
+                { "label": "F13", "matrix": [0, 14], "x": 14.0, "y": 0.0 },
+                { "label": "PrtSc", "matrix": [0, 15], "x": 15.25, "y": 0.0 },
+                { "label": "Scroll Lock", "matrix": [0, 16], "x": 16.25, "y": 0.0 },
+                { "label": "Pause", "matrix": [0, 17], "x": 17.25, "y": 0.0 },
+                { "label": "~", "matrix": [1, 0], "x": 0.0, "y": 1.25 },
+                { "label": "!", "matrix": [1, 1], "x": 1.0, "y": 1.25 },
+                { "label": "@", "matrix": [1, 2], "x": 2.0, "y": 1.25 },
+                { "label": "#", "matrix": [1, 3], "x": 3.0, "y": 1.25 },
+                { "label": "$", "matrix": [1, 4], "x": 4.0, "y": 1.25 },
+                { "label": "%", "matrix": [1, 5], "x": 5.0, "y": 1.25 },
+                { "label": "^", "matrix": [1, 6], "x": 6.0, "y": 1.25 },
+                { "label": "&", "matrix": [1, 7], "x": 7.0, "y": 1.25 },
+                { "label": "*", "matrix": [1, 8], "x": 8.0, "y": 1.25 },
+                { "label": "(", "matrix": [1, 9], "x": 9.0, "y": 1.25 },
+                { "label": ")", "matrix": [1, 10], "x": 10.0, "y": 1.25 },
+                { "label": "_", "matrix": [1, 11], "x": 11.0, "y": 1.25 },
+                { "label": "+", "matrix": [1, 12], "x": 12.0, "y": 1.25 },
+                { "label": "Bksp", "matrix": [1, 13], "x": 13.0, "y": 1.25 },
+                { "label": "Del", "matrix": [1, 14], "x": 14.0, "y": 1.25 },
+                { "label": "Insert", "matrix": [1, 15], "x": 15.25, "y": 1.25 },
+                { "label": "Home", "matrix": [1, 16], "x": 16.25, "y": 1.25 },
+                { "label": "PgUp", "matrix": [1, 17], "x": 17.25, "y": 1.25 },
+                { "label": "Tab", "matrix": [2, 0], "w": 1.5, "x": 0.0, "y": 2.25 },
+                { "label": "Q", "matrix": [2, 1], "x": 1.5, "y": 2.25 },
+                { "label": "W", "matrix": [2, 2], "x": 2.5, "y": 2.25 },
+                { "label": "E", "matrix": [2, 3], "x": 3.5, "y": 2.25 },
+                { "label": "R", "matrix": [2, 4], "x": 4.5, "y": 2.25 },
+                { "label": "T", "matrix": [2, 5], "x": 5.5, "y": 2.25 },
+                { "label": "Y", "matrix": [2, 6], "x": 6.5, "y": 2.25 },
+                { "label": "U", "matrix": [2, 7], "x": 7.5, "y": 2.25 },
+                { "label": "I", "matrix": [2, 8], "x": 8.5, "y": 2.25 },
+                { "label": "O", "matrix": [2, 9], "x": 9.5, "y": 2.25 },
+                { "label": "P", "matrix": [2, 10], "x": 10.5, "y": 2.25 },
+                { "label": "{", "matrix": [2, 11], "x": 11.5, "y": 2.25 },
+                { "label": "}", "matrix": [2, 12], "x": 12.5, "y": 2.25 },
+                { "label": "|", "matrix": [2, 14], "w": 1.5, "x": 13.5, "y": 2.25 },
+                { "label": "Delete", "matrix": [2, 15], "x": 15.25, "y": 2.25 },
+                { "label": "End", "matrix": [2, 16], "x": 16.25, "y": 2.25 },
+                { "label": "PgDn", "matrix": [2, 17], "x": 17.25, "y": 2.25 },
+                { "label": "Caps Lock", "matrix": [3, 0], "w": 1.75, "x": 0.0, "y": 3.25 },
+                { "label": "A", "matrix": [3, 1], "x": 1.75, "y": 3.25 },
+                { "label": "S", "matrix": [3, 2], "x": 2.75, "y": 3.25 },
+                { "label": "D", "matrix": [3, 3], "x": 3.75, "y": 3.25 },
+                { "label": "F", "matrix": [3, 4], "x": 4.75, "y": 3.25 },
+                { "label": "G", "matrix": [3, 5], "x": 5.75, "y": 3.25 },
+                { "label": "H", "matrix": [3, 6], "x": 6.75, "y": 3.25 },
+                { "label": "J", "matrix": [3, 7], "x": 7.75, "y": 3.25 },
+                { "label": "K", "matrix": [3, 8], "x": 8.75, "y": 3.25 },
+                { "label": "L", "matrix": [3, 9], "x": 9.75, "y": 3.25 },
+                { "label": ":", "matrix": [3, 10], "x": 10.75, "y": 3.25 },
+                { "label": "\"", "matrix": [3, 11], "x": 11.75, "y": 3.25 },
+                { "label": "|", "matrix": [3, 12], "x": 12.75, "y": 3.25 },
+                { "label": "Enter", "matrix": [3, 14], "w": 1.25, "x": 13.75, "y": 3.25 },
+                { "label": "Shift", "matrix": [4, 0], "w": 1.25, "x": 0.0, "y": 4.25 },
+                { "label": "|", "matrix": [4, 1], "x": 1.25, "y": 4.25 },
+                { "label": "Z", "matrix": [4, 2], "x": 2.25, "y": 4.25 },
+                { "label": "X", "matrix": [4, 3], "x": 3.25, "y": 4.25 },
+                { "label": "C", "matrix": [4, 4], "x": 4.25, "y": 4.25 },
+                { "label": "V", "matrix": [4, 5], "x": 5.25, "y": 4.25 },
+                { "label": "B", "matrix": [4, 6], "x": 6.25, "y": 4.25 },
+                { "label": "N", "matrix": [4, 7], "x": 7.25, "y": 4.25 },
+                { "label": "M", "matrix": [4, 8], "x": 8.25, "y": 4.25 },
+                { "label": "<", "matrix": [4, 9], "x": 9.25, "y": 4.25 },
+                { "label": ">", "matrix": [4, 10], "x": 10.25, "y": 4.25 },
+                { "label": "?", "matrix": [4, 11], "x": 11.25, "y": 4.25 },
+                { "label": "Shift", "matrix": [4, 12], "w": 1.75, "x": 14.75, "y": 4.25 },
+                { "label": "Fn", "matrix": [4, 14], "x": 16.5, "y": 4.25 },
+                { "label": "\u2191", "matrix": [4, 16], "x": 18.75, "y": 4.25 },
+                { "label": "Ctrl", "matrix": [5, 0], "w": 1.25, "x": 0.0, "y": 5.25 },
+                { "label": "Win", "matrix": [5, 1], "w": 1.25, "x": 1.25, "y": 5.25 },
+                { "label": "Alt", "matrix": [5, 2], "w": 1.25, "x": 2.5, "y": 5.25 },
+                { "matrix": [5, 6], "w": 6.25, "x": 3.75, "y": 5.25 },
+                { "label": "Alt", "matrix": [5, 10], "w": 1.25, "x": 10.0, "y": 5.25 },
+                { "label": "Fn", "matrix": [5, 11], "w": 1.25, "x": 11.25, "y": 5.25 },
+                { "label": "Win", "matrix": [5, 12], "w": 1.25, "x": 12.5, "y": 5.25 },
+                { "label": "Ctrl", "matrix": [5, 14], "w": 1.25, "x": 13.75, "y": 5.25 },
+                { "label": "\u2190", "matrix": [5, 15], "x": 15.25, "y": 5.25 },
+                { "label": "\u2193", "matrix": [5, 16], "x": 16.25, "y": 5.25 },
+                { "label": "\u2192", "matrix": [5, 17], "x": 17.25, "y": 5.25 }
+            ]
+        }
+    }
+}
diff --git a/keyboards/cannonkeys/serenity/keymaps/default/keymap.c b/keyboards/cannonkeys/serenity/keymaps/default/keymap.c
new file mode 100644
index 0000000000..f142a629dc
--- /dev/null
+++ b/keyboards/cannonkeys/serenity/keymaps/default/keymap.c
@@ -0,0 +1,41 @@
+/*
+Copyright 2012,2013 Jun Wako <wakojun@gmail.com>
+
+This program is free software: you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation, either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program.  If not, see <http://www.gnu.org/licenses/>.
+*/
+#include QMK_KEYBOARD_H
+enum layer_names {
+    _BASE,
+    _FN1
+};
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+
+  [_BASE] = LAYOUT_all(
+    KC_ESC,  KC_F1,   KC_F2,   KC_F3,   KC_F4,   KC_F5,   KC_F6,   KC_F7,   KC_F8,   KC_F9,    KC_F10,     KC_F11,     KC_F12,  KC_MPLY,                    KC_PSCR, KC_SCRL, KC_PAUS,
+    KC_GRV,  KC_1,    KC_2,    KC_3,    KC_4,    KC_5,    KC_6,    KC_7,    KC_8,    KC_9,    KC_0,     KC_MINS,    KC_EQL,     KC_BSPC,   KC_BSPC,      KC_INS,  KC_HOME, KC_PGUP,
+    KC_TAB,  KC_Q,    KC_W,    KC_E,    KC_R,    KC_T,    KC_Y,    KC_U,    KC_I,    KC_O,    KC_P,     KC_LBRC,    KC_RBRC,    KC_BSLS,                 KC_DEL,  KC_END,  KC_PGDN,
+    KC_CAPS, KC_A,    KC_S,    KC_D,    KC_F,    KC_G,    KC_H,    KC_J,    KC_K,    KC_L,    KC_SCLN,  KC_QUOT,    KC_NUHS,    KC_ENT,
+    KC_LSFT, KC_NUBS, KC_Z,    KC_X,    KC_C,    KC_V,    KC_B,    KC_N,    KC_M,    KC_COMM, KC_DOT,   KC_SLSH,    KC_RSFT,    KC_TRNS,                          KC_UP,
+    KC_LCTL, KC_LGUI, KC_LALT,                   KC_SPC,                                      KC_RALT,  MO(1),      KC_RGUI,    KC_RCTL,                 KC_LEFT, KC_DOWN, KC_RGHT),
+
+  [_FN1] = LAYOUT_all(
+    KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,      RGB_TOG, RGB_MOD, RGB_HUD, RGB_HUI,     RGB_SAD, RGB_SAI, RGB_VAD, RGB_VAI, KC_TRNS,               BL_TOGG, BL_DEC,  BL_INC,
+    KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,               KC_TRNS, KC_TRNS, KC_VOLU,
+    KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, QK_BOOT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,                        KC_MPLY, KC_MNXT, KC_VOLD,
+    KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+    KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+    KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS),
+
+};
diff --git a/keyboards/cannonkeys/serenity/keymaps/via/keymap.c b/keyboards/cannonkeys/serenity/keymaps/via/keymap.c
new file mode 100644
index 0000000000..bd79ecc05f
--- /dev/null
+++ b/keyboards/cannonkeys/serenity/keymaps/via/keymap.c
@@ -0,0 +1,59 @@
+/*
+Copyright 2012,2013 Jun Wako <wakojun@gmail.com>
+
+This program is free software: you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation, either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program.  If not, see <http://www.gnu.org/licenses/>.
+*/
+#include QMK_KEYBOARD_H
+enum layer_names {
+    _BASE,
+    _FN1,
+    _FN2,
+    _FN3
+};
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+
+  [_BASE] = LAYOUT_all(
+    KC_ESC,  KC_F1,   KC_F2,   KC_F3,   KC_F4,   KC_F5,   KC_F6,   KC_F7,   KC_F8,   KC_F9,   KC_F10,  KC_F11,  KC_F12,  KC_MPLY,               KC_PSCR, KC_SCRL, KC_PAUS,
+    KC_GRV,  KC_1,    KC_2,    KC_3,    KC_4,    KC_5,    KC_6,    KC_7,    KC_8,    KC_9,    KC_0,    KC_MINS, KC_EQL,  KC_BSPC, KC_BSPC,      KC_INS,  KC_HOME, KC_PGUP,
+    KC_TAB,  KC_Q,    KC_W,    KC_E,    KC_R,    KC_T,    KC_Y,    KC_U,    KC_I,    KC_O,    KC_P,    KC_LBRC, KC_RBRC, KC_BSLS,               KC_DEL,  KC_END,  KC_PGDN,
+    KC_CAPS, KC_A,    KC_S,    KC_D,    KC_F,    KC_G,    KC_H,    KC_J,    KC_K,    KC_L,    KC_SCLN, KC_QUOT, KC_NUHS, KC_ENT,
+    KC_LSFT, KC_NUBS, KC_Z,    KC_X,    KC_C,    KC_V,    KC_B,    KC_N,    KC_M,    KC_COMM, KC_DOT,  KC_SLSH, KC_RSFT, KC_TRNS,                        KC_UP,
+    KC_LCTL, KC_LGUI, KC_LALT,                            KC_SPC,                             KC_RALT, MO(1),   KC_RGUI, KC_RCTL,               KC_LEFT, KC_DOWN, KC_RGHT),
+
+  [_FN1] = LAYOUT_all(
+    KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RGB_TOG, RGB_MOD, RGB_HUD, RGB_HUI, RGB_SAD, RGB_SAI, RGB_VAD, RGB_VAI, KC_TRNS,               BL_TOGG, BL_DEC,  BL_INC,
+    KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,      KC_TRNS, KC_TRNS, KC_VOLU,
+    KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, QK_BOOT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,               KC_MPLY, KC_MNXT, KC_VOLD,
+    KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+    KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,                        KC_TRNS,
+    KC_TRNS, KC_TRNS, KC_TRNS,                            KC_TRNS,                            KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,               KC_TRNS, KC_TRNS, KC_TRNS),
+
+  [_FN2] = LAYOUT_all(
+    KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,               KC_TRNS, KC_TRNS, KC_TRNS,
+    KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,      KC_TRNS, KC_TRNS, KC_TRNS,
+    KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,               KC_TRNS, KC_TRNS, KC_TRNS,
+    KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+    KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,                        KC_TRNS,
+    KC_TRNS, KC_TRNS, KC_TRNS,                            KC_TRNS,                            KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,               KC_TRNS, KC_TRNS, KC_TRNS),
+
+  [_FN3] = LAYOUT_all(
+    KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,               KC_TRNS, KC_TRNS, KC_TRNS,
+    KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,      KC_TRNS, KC_TRNS, KC_TRNS,
+    KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,               KC_TRNS, KC_TRNS, KC_TRNS,
+    KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+    KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,                        KC_TRNS,
+    KC_TRNS, KC_TRNS, KC_TRNS,                            KC_TRNS,                            KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,               KC_TRNS, KC_TRNS, KC_TRNS)
+
+};
diff --git a/keyboards/cannonkeys/serenity/keymaps/via/rules.mk b/keyboards/cannonkeys/serenity/keymaps/via/rules.mk
new file mode 100644
index 0000000000..1e5b99807c
--- /dev/null
+++ b/keyboards/cannonkeys/serenity/keymaps/via/rules.mk
@@ -0,0 +1 @@
+VIA_ENABLE = yes
diff --git a/keyboards/cannonkeys/serenity/mcuconf.h b/keyboards/cannonkeys/serenity/mcuconf.h
new file mode 100644
index 0000000000..d0920a6660
--- /dev/null
+++ b/keyboards/cannonkeys/serenity/mcuconf.h
@@ -0,0 +1,31 @@
+/* Copyright 2020 QMK
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program.  If not, see <http://www.gnu.org/licenses/>.
+ */
+
+/*
+ * This file was auto-generated by:
+ *    `qmk chibios-confmigrate -i keyboards/cannonkeys/devastatingtkl/mcuconf.h -r platforms/chibios/GENERIC_STM32_F072XB/configs/mcuconf.h`
+ */
+
+#pragma once
+
+#include_next <mcuconf.h>
+
+#undef STM32_PWM_USE_TIM3
+#define STM32_PWM_USE_TIM3 TRUE
+
+#undef STM32_SPI_USE_SPI2
+#define STM32_SPI_USE_SPI2 TRUE
+
diff --git a/keyboards/cannonkeys/serenity/readme.md b/keyboards/cannonkeys/serenity/readme.md
new file mode 100644
index 0000000000..730fa084c9
--- /dev/null
+++ b/keyboards/cannonkeys/serenity/readme.md
@@ -0,0 +1,25 @@
+# Serenity
+
+A calming F13 TKL from HoodrowThrillson
+
+* Keyboard Maintainer: [Andrew Kannan](https://github.com/awkannan)
+* Hardware Supported: STM32F072CBT6
+* Hardware Availability: [CannonKeys](https://cannonkeys.com)
+
+Make example for this keyboard (after setting up your build environment):
+
+    make cannonkeys/serenity:default
+
+Flashing example for this keyboard:
+
+    make cannonkeys/serenity:default:flash
+
+See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs).
+
+## Bootloader
+
+Enter the bootloader in 3 ways:
+
+* **Bootmagic reset**: Hold down the key at (0,0) in the matrix (usually the top left key or Escape) and plug in the keyboard
+* **Physical reset button**: Swap the boot switch on the back of the PCB to "1" and hit the reset button
+* **Keycode in layout**: Press the key mapped to `RESET` if it is available
diff --git a/keyboards/cannonkeys/serenity/rules.mk b/keyboards/cannonkeys/serenity/rules.mk
new file mode 100644
index 0000000000..0ab54aaaf7
--- /dev/null
+++ b/keyboards/cannonkeys/serenity/rules.mk
@@ -0,0 +1,2 @@
+# Wildcard to allow APM32 MCU
+DFU_SUFFIX_ARGS = -v FFFF -p FFFF
diff --git a/keyboards/crkbd/keymaps/ericgebhart/keymap.c b/keyboards/crkbd/keymaps/ericgebhart/keymap.c
index e893ec596b..c534fe3c6d 100755..100644
--- a/keyboards/crkbd/keymaps/ericgebhart/keymap.c
+++ b/keyboards/crkbd/keymaps/ericgebhart/keymap.c
@@ -1,5 +1,5 @@
 /*
-  Copyright 2018 Eric Gebhart <e.a.gebhart@gmail.com>
+  Copyright 2018-2022 Eric Gebhart <e.a.gebhart@gmail.com>
 
   This program is free software: you can redistribute it and/or modify
   it under the terms of the GNU General Public License as published by
@@ -14,47 +14,5 @@
   You should have received a copy of the GNU General Public License
   along with this program.  If not, see <http://www.gnu.org/licenses/>.
 */
-#include "ericgebhart.h"
 
-#define Crkbd_base(...)        Base_3x6_3(__VA_ARGS__)
-#define Crkbd_bepo(...)        Base_bepo_3x6_3(__VA_ARGS__)
-#define Crkbd_bepo6(...)       Base_bepo6_3x6_3(__VA_ARGS__)
-#define Crkbd_transient(...)   Transient6_3x6_3(__VA_ARGS__)
-
-/*
- * The `Crkbd_base` macro is a template to allow the use of identical
- * modifiers for the default layouts (eg QWERTY, Colemak, Dvorak, etc), so
- * that there is no need to set them up for each layout, and modify all of
- * them if I want to change them.  This helps to keep consistency and ease
- * of use. K## is a placeholder to pass through the individual keycodes
- */
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
-    // Qwerty based Base layers
-    [_DVORAK]  = Crkbd_base(___DVORAK___),
-    [_BEAKL]   = Crkbd_base(___BEAKL15___),
-    [_COLEMAK] = Crkbd_base(___COLEMAK_DH___),
-    [_QWERTY]  = Crkbd_base(___QWERTY___),
-
-    // Bepo base layers
-    [_BEAKL_BP]  = Crkbd_bepo(___BEAKL15_FR___),
-    [_DVORAK_BP] = Crkbd_bepo(___DVORAK_FR___),
-    [_BEPO]      = Crkbd_bepo6(___BEPO6___),
-
-    // Transient layers.
-    [_SYMB]    = Crkbd_transient(___SYMB_BEAKLB_3x12___),
-    [_SYMB_BP] = Crkbd_transient(___SYMB_BEAKLB_BP_3x12___),
-
-    [_KEYPAD]    = Crkbd_transient(___KP_C_3x12___),
-    [_KEYPAD_BP] = Crkbd_transient(___KP_C_BP_3x12___),
-
-    [_TOPROWS]    = Crkbd_transient(___TOPROWS_3x12___),
-    [_TOPROWS_BP] = Crkbd_transient(___TOPROWS_BP_3x12___),
-
-    [_NAV] = Crkbd_transient(___NAV_3x12___),
-
-    [_LAYERS] = Crkbd_transient(___LAYERS_3x12___),
-    //[_RGB] = Crkbd_transient(___RGB_3x12___),
-    [_ADJUST] = Crkbd_transient(___ADJUST_3x12___),
-    ///HPT_TOG, KC_NUKE, ___,        ___, TG_MODS, HPT_FBK
-};
+// See: users/ericgebhart.
diff --git a/keyboards/crkbd/keymaps/rmeli/config.h b/keyboards/crkbd/keymaps/rmeli/config.h
index 007e4bc45b..2f06b82cc1 100644
--- a/keyboards/crkbd/keymaps/rmeli/config.h
+++ b/keyboards/crkbd/keymaps/rmeli/config.h
@@ -21,32 +21,19 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.
 
 #pragma once
 
-#define MASTER_LEFT  // Left side is the master
+#define MASTER_LEFT // Left side is the master
 #define SPLIT_LED_STATE_ENABLE
 
-#define TAPPING_TERM 200
-
-#define UNICODE_SELECTED_MODES UNICODE_MODE_MACOS, UNICODE_MODE_LINUX
-
-#define AUTO_SHIFT_REPEAT
-
-#ifdef RGBLIGHT_ENABLE
-#    define RGBLIGHT_LIMIT_VAL 120
-#    define RGBLIGHT_HUE_STEP 10
-#    define RGBLIGHT_SAT_STEP 17
-#    define RGBLIGHT_VAL_STEP 17
-#endif
-
 #ifdef RGB_MATRIX_ENABLE
 // RGB matrix options
-#    define RGB_MATRIX_KEYPRESSES  // enable keypress effects
+#    define RGB_MATRIX_KEYPRESSES // enable keypress effects
 #    define RGB_MATRIX_LED_FLUSH_LIMIT 16
 #    define RGB_DISABLE_WHEN_USB_SUSPENDED
 // Disable unwanted R2G effects (from r2g/config.h)
 #    undef ENABLE_RGB_MATRIX_ALPHAS_MODS
 #    undef ENABLE_RGB_MATRIX_GRADIENT_UP_DOWN
 #    undef ENABLE_RGB_MATRIX_GRADIENT_LEFT_RIGHT
-#    undef ENABLE_RGB_MATRIX_BREATHING
+#    define ENABLE_RGB_MATRIX_BREATHING
 #    undef ENABLE_RGB_MATRIX_BAND_SAT
 #    undef ENABLE_RGB_MATRIX_BAND_VAL
 #    undef ENABLE_RGB_MATRIX_BAND_SPIRAL_SAT
@@ -57,8 +44,8 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.
 #    undef ENABLE_RGB_MATRIX_RAINDROPS
 #    undef ENABLE_RGB_MATRIX_HUE_BREATHING
 #    undef ENABLE_RGB_MATRIX_PIXEL_FRACTAL
-//#   undef ENABLE_RGB_MATRIX_TYPING_HEATMAP
-#    undef ENABLE_RGB_MATRIX_SOLID_REACTIVE_SIMPLE
+#    define ENABLE_RGB_MATRIX_TYPING_HEATMAP
+#    define ENABLE_RGB_MATRIX_SOLID_REACTIVE_SIMPLE
 #    undef ENABLE_RGB_MATRIX_SOLID_REACTIVE
 #    undef ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTINEXUS
 #    undef ENABLE_RGB_MATRIX_SPLASH
@@ -77,4 +64,4 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.
 #undef LOCKING_SUPPORT_ENABLE
 #undef LOCKING_RESYNC_ENABLE
 #define NO_MUSIC_MODE
-#define LAYER_STATE_8BIT  // Limit to 8 layers
+#define LAYER_STATE_8BIT // Limit to 8 layers
diff --git a/keyboards/crkbd/keymaps/rmeli/keymap.c b/keyboards/crkbd/keymaps/rmeli/keymap.c
index 04528fda8c..5a04e8150f 100644
--- a/keyboards/crkbd/keymaps/rmeli/keymap.c
+++ b/keyboards/crkbd/keymaps/rmeli/keymap.c
@@ -1,6 +1,6 @@
 /*
 Copyright 2019 @foostan
-Copyright 2020 Drashna Jaelre <@drashna>
+Copyright 2020 Christopher Courtney, aka Drashna Jael're  (@drashna) <drashna@live.com>
 Copyright 2021 Rocco Meli <@RMeli>
 
 This program is free software: you can redistribute it and/or modify
@@ -69,64 +69,61 @@ enum layer_names {
 #define _CMK 1
 #define _CFG 4
 
+#define ______THUMB_LEFT_x3______ KC_LGUI, MO(_DWN), KC_SPC
+#define ______THUMB_RIGHT_x3_____ KC_ENT, MO(_UP), KC_RCTL
+
+// LAYOUT
+//
+// |-----------------------------|            |-----------------------------|
+// |    |    |    |    |    |    |            |    |    |    |    |    |    |
+// |----+----+----+----+----+----|            |----+----+----+----+----+----|
+// |    |    |    |    |    |    |            |    |    |    |    |    |    |
+// |----+----+----+----+----+----|            |----+----+----+----+----+----|
+// |    |    |    |    |    |    |            |    |    |    |    |    |    |
+// |----+----+----+----+----+----+----|  |----+----+----+----+----+----+----|
+//                     |    |    |    |  |    |    |    |
+//                     |--------------|  |--------------|
+
+// Define wrapper for standard CRKB layout
+#define LAYOUT_wrapper(...) LAYOUT_split_3x6_3(__VA_ARGS__)
+
+// clang-format off
 const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
-  [_QWERTY] = LAYOUT_split_3x6_3(
-  //|-----------------------------------------------------|                    |-----------------------------------------------------|
-       KC_TAB,    KC_Q,    KC_W,    KC_E,    KC_R,    KC_T,                         KC_Y,    KC_U,    KC_I,    KC_O,   KC_P,  KC_BSPC,
-  //|--------+--------+--------+--------+--------+--------|                    |--------+--------+--------+--------+--------+--------|
-        TD_ED,    KC_A,    KC_S,    KC_D,    KC_F,    KC_G,                         KC_H,    KC_J,    KC_K,    KC_L, KC_SCLN, KC_QUOT,
-  //|--------+--------+--------+--------+--------+--------|                    |--------+--------+--------+--------+--------+--------|
-      TD_LSPC,    KC_Z,    KC_X,    KC_C,    KC_V,    KC_B,                         KC_N,    KC_M, KC_COMM,  KC_DOT, KC_SLSH, TD_RSPC,
-  //|--------+--------+--------+--------+--------+--------+--------|  |--------+--------+--------+--------+--------+--------+--------|
-                                          KC_LGUI,MO(_DWN),  KC_SPC,     KC_ENT,MO(_UP),  KC_RCTL
-                                      //|--------------------------|  |--------------------------|
+
+  [_QWERTY] = LAYOUT_wrapper(
+    // clang-format off
+    ___________________QWERTY_L1_x6_____________________,                      ___________________QWERTY_R1_x6_____________________,
+    ___________________QWERTY_L2_x6_____________________,                      ___________________QWERTY_R2_x6_____________________,
+    ___________________QWERTY_L3_x6_____________________,                      ___________________QWERTY_R3_x6_____________________,
+                                        ______THUMB_LEFT_x3______,     ______THUMB_RIGHT_x3_____
   ),
 
-  [_COLEMAK_DH] = LAYOUT_split_3x6_3(
-  //|-----------------------------------------------------|                    |-----------------------------------------------------|
-       KC_TAB,    KC_Q,    KC_W,    KC_F,    KC_P,    KC_B,                         KC_J,    KC_L,    KC_U, KC_SCLN,   KC_P,  KC_BSPC,
-  //|--------+--------+--------+--------+--------+--------|                    |--------+--------+--------+--------+--------+--------|
-        TD_ED,    KC_A,    KC_R,    KC_S,    KC_T,    KC_G,                         KC_M,    KC_N,    KC_E,    KC_I,    KC_O, KC_QUOT,
-  //|--------+--------+--------+--------+--------+--------|                    |--------+--------+--------+--------+--------+--------|
-      TD_LSPC,    KC_Z,    KC_X,    KC_C,    KC_D,    KC_V,                         KC_K,    KC_H, KC_COMM,  KC_DOT, KC_SLSH, TD_RSPC,
-  //|--------+--------+--------+--------+--------+--------+--------|  |--------+--------+--------+--------+--------+--------+--------|
-                                          KC_LGUI,MO(_DWN),  KC_SPC,     KC_ENT,MO(_UP),  KC_RCTL
-                                      //|--------------------------|  |--------------------------|
+  [_COLEMAK_DH] = LAYOUT_wrapper(
+    ________________COLEMAK_MOD_DH_L1_x6________________,                      ________________COLEMAK_MOD_DH_R1_x6________________,
+    ________________COLEMAK_MOD_DH_L2_x6________________,                      ________________COLEMAK_MOD_DH_R2_x6________________,
+    ________________COLEMAK_MOD_DH_L3_x6________________,                      ________________COLEMAK_MOD_DH_R3_x6________________,
+                                        ______THUMB_LEFT_x3______,     ______THUMB_RIGHT_x3_____
   ),
 
-  [_DWN] = LAYOUT_split_3x6_3(
-  //|-----------------------------------------------------|                    |-----------------------------------------------------|
-      _______,    KC_1,    KC_2,    KC_3,    KC_4,    KC_5,                         KC_6,    KC_7,    KC_8,    KC_9,    KC_0, _______,
-  //|--------+--------+--------+--------+--------+--------|                    |--------+--------+--------+--------+--------+--------|
-      _______,   A_GRV,   E_GRV,   I_GRV,   O_GRV,   U_GRV,                      XXXXXXX, XXXXXXX,   KC_UP, XXXXXXX, KC_PGUP, XXXXXXX,
-  //|--------+--------+--------+--------+--------+--------|                    |--------+--------+--------+--------+--------+--------|
-      _______,   A_UML,   E_ACT,   I_CIR,   O_UML,   U_UML,                      XXXXXXX, KC_LEFT, KC_DOWN,KC_RIGHT, KC_PGDN, _______,
-  //|--------+--------+--------+--------+--------+--------+--------|  |--------+--------+--------+--------+--------+--------+--------|
-                                          KC_LGUI, _______, _______,    _______,MO(_CFG), _______
-                                      //|--------------------------|  |--------------------------|
+  [_DWN] = LAYOUT_wrapper(
+    _______, ______________NUMBER_LEFT_x5_______________,                      ______________NUMBER_RIGHT_x5______________, _______,
+    _______, ______________UNICODE_L2_x5________________,                      ________________NAV_R2_x5__________________, XXXXXXX,
+    _______, ______________UNICODE_L3_x5________________,                      ________________NAV_R3_x5__________________, _______,
+                                        KC_LGUI, _______, _______,     _______,MO(_CFG), _______
   ),
 
-  [_UP] = LAYOUT_split_3x6_3(
-  //|-----------------------------------------------------|                    |-----------------------------------------------------|
-      _______, KC_EXLM,   KC_AT, KC_HASH,  KC_DLR, KC_PERC,                      KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, _______,
-  //|--------+--------+--------+--------+--------+--------|                    |--------+--------+--------+--------+--------+--------|
-      _______, KC_LEFT, KC_DOWN,  KC_UP, KC_RIGHT, XXXXXXX,                      KC_MINS,  KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS,  KC_GRV,
-  //|--------+--------+--------+--------+--------+--------|                    |--------+--------+--------+--------+--------+--------|
-      _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,                      KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE, KC_TILD,
-  //|--------+--------+--------+--------+--------+--------+--------|  |--------+--------+--------+--------+--------+--------+--------|
-                                          _______,MO(_CFG), _______,   _______, _______, _______
-                                      //|--------------------------|  |--------------------------|
+  [_UP] = LAYOUT_wrapper(
+    ___________________SYMBOL_LEFT_x6___________________,                      ___________________SYMBOL_RIGHT_x6__________________,
+    _______, ____________NAV_VIM_x4____________, XXXXXXX,                      ____________________SYMBOL_R2_x6____________________,
+    _______, _________________NONE_5x___________________,                      ____________________SYMBOL_R3_x6____________________,
+                                        _______,MO(_CFG), _______,    _______, _______, _______
   ),
 
-  [_CONFIG] = LAYOUT_split_3x6_3(
-  //|-----------------------------------------------------|                    |-----------------------------------------------------|
-      QK_BOOT, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,                      UC_NEXT,   AS_UP,   NK_ON, XXXXXXX, XXXXXXX,DF(_QWY),
-  //|--------+--------+--------+--------+--------+--------|                    |--------+--------+--------+--------+--------+--------|
-      RGB_TOG, RGB_MOD, RGB_HUI, RGB_SAI, RGB_VAI, RGB_SPI,                      XXXXXXX, AS_TOGG, NK_TOGG, XXXXXXX, XXXXXXX, XXXXXXX,
-  //|--------+--------+--------+--------+--------+--------|                    |--------+--------+--------+--------+--------+--------|
-      XXXXXXX,RGB_RMOD, RGB_HUD, RGB_SAD, RGB_VAD, RGB_SPD,                      UC_PREV, AS_DOWN,  NK_OFF, XXXXXXX, XXXXXXX,DF(_CMK),
-  //|--------+--------+--------+--------+--------+--------+--------|  |--------+--------+--------+--------+--------+--------+--------|
-                                          _______, _______, _______,   _______, _______, _______
-                                      //|--------------------------|  |--------------------------|
+  [_CONFIG] = LAYOUT_wrapper(
+    QK_BOOT, _________________NONE_5x___________________,                      _______________CONFIG_R1_x5________________,DF(_QWY),
+    RGB_TOG, ________________RGB_L2_x5__________________,                      _______________CONFIG_R2_x5________________, XXXXXXX,
+    XXXXXXX, ________________RGB_L3_x5__________________,                      _______________CONFIG_R3_x5________________,DF(_CMK),
+                                        _______, _______, _______,   _______, _______, _______
   )
 };
+// clang-format on
diff --git a/keyboards/crkbd/keymaps/rmeli/rules.mk b/keyboards/crkbd/keymaps/rmeli/rules.mk
index 8e9dbbf8cf..58a00ed6ba 100644
--- a/keyboards/crkbd/keymaps/rmeli/rules.mk
+++ b/keyboards/crkbd/keymaps/rmeli/rules.mk
@@ -2,11 +2,11 @@ OLED_ENABLE = yes
 OLED_DRIVER = SSD1306
 
 TAP_DANCE_ENABLE = yes
-AUTO_SHIFT_ENABLE = yes
+AUTO_SHIFT_ENABLE = no // disable auto-shift with home row mods
 
 UNICODEMAP_ENABLE = yes
+NKRO_ENABLE = yes
+MAGIC_ENABLE = yes
 
 RGBLIGHT_ENABLE = no
 RGB_MATRIX_ENABLE = yes
-
-NKRO_ENABLE = yes
diff --git a/keyboards/dztech/dz60rgb_ansi/v1/rules.mk b/keyboards/dztech/dz60rgb_ansi/v1/rules.mk
index 22ecf071a7..5ccc498903 100644
--- a/keyboards/dztech/dz60rgb_ansi/v1/rules.mk
+++ b/keyboards/dztech/dz60rgb_ansi/v1/rules.mk
@@ -5,6 +5,8 @@ BOARD = QMK_PROTON_C
 # Bootloader selection
 BOOTLOADER = stm32-dfu
 
+LAYOUTS = 60_ansi
+
 # Build Options
 #   change yes to no to disable
 #
diff --git a/keyboards/dztech/dz60rgb_ansi/v2/rules.mk b/keyboards/dztech/dz60rgb_ansi/v2/rules.mk
index d538e324f3..2c2f9a060a 100644
--- a/keyboards/dztech/dz60rgb_ansi/v2/rules.mk
+++ b/keyboards/dztech/dz60rgb_ansi/v2/rules.mk
@@ -4,6 +4,8 @@ MCU = atmega32u4
 # Bootloader selection
 BOOTLOADER = atmel-dfu
 
+LAYOUTS = 60_ansi
+
 # Build Options
 #   change yes to no to disable
 #
diff --git a/keyboards/dztech/dz60rgb_ansi/v2_1/rules.mk b/keyboards/dztech/dz60rgb_ansi/v2_1/rules.mk
index 800fb47256..f25230516c 100644
--- a/keyboards/dztech/dz60rgb_ansi/v2_1/rules.mk
+++ b/keyboards/dztech/dz60rgb_ansi/v2_1/rules.mk
@@ -5,6 +5,8 @@ MCU = atmega32u4
 BOOTLOADER = lufa-ms
 BOOTLOADER_SIZE = 6144
 
+LAYOUTS = 60_ansi
+
 # Build Options
 #   change yes to no to disable
 #
diff --git a/keyboards/ergodox_ez/keymaps/ericgebhart/keymap.c b/keyboards/ergodox_ez/keymaps/ericgebhart/keymap.c
index e76e3296bf..c534fe3c6d 100644
--- a/keyboards/ergodox_ez/keymaps/ericgebhart/keymap.c
+++ b/keyboards/ergodox_ez/keymaps/ericgebhart/keymap.c
@@ -1,5 +1,5 @@
 /*
-  Copyright 2018 Eric Gebhart <e.a.gebhart@gmail.com>
+  Copyright 2018-2022 Eric Gebhart <e.a.gebhart@gmail.com>
 
   This program is free software: you can redistribute it and/or modify
   it under the terms of the GNU General Public License as published by
@@ -14,35 +14,5 @@
   You should have received a copy of the GNU General Public License
   along with this program.  If not, see <http://www.gnu.org/licenses/>.
 */
-#include "keymap_bepo.h"
-#include "ericgebhart.h"
-#include "layouts.h"
 
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
-
-    // Qwerty Base layers
-    [_DVORAK]  = Dox_base(___NUMS___, ___DVORAK___),
-    [_QWERTY]  = Dox_base(___NUMS___, ___QWERTY___),
-    [_COLEMAK] = Dox_base(___NUMS___, ___COLEMAK_DH___),
-    [_BEAKL]   = Dox_base(___NUMS___, ___BEAKL15___),
-    // Bepo Base layers
-    [_DVORAK_BP] = Dox_bepo_base(___NUMS_BP___,    ___DVORAK_FR___),
-    [_BEAKL_BP]  = Dox_bepo_base(___BKLNUMS_BP___, ___BEAKL15_FR___),
-    [_BEPO]      = Dox_bepo_base6(___BEPO6___),
-
-
-    // transient layers.
-    // Switch to using a transient layer macro
-    [_SYMB]    = Dox_transient(___12_FUNC___, ___SYMB_BEAKLA_3x12___),
-    [_SYMB_BP] = Dox_transient(___12_FUNC___, ___SYMB_BEAKLA_BP_3x12___),
-
-    [_TOPROWS]    = Dox_transient(___12___, ___TOPROWS_3x12___),
-    [_TOPROWS_BP] = Dox_transient(___12___, ___TOPROWS_BP_3x12___),
-
-    [_KEYPAD]    = Dox_transient(___KEYPAD_BKL_FUNC_4x12___),
-    [_KEYPAD_BP] = Dox_transient(___KEYPAD_BKL_FUNC_BP_4x12___),
-
-    [_NAV]    = Dox_transient(___12___, ___NAV_3x12___),
-    [_LAYERS] = Dox_transient(___12___, ___LAYERS_3x12___),
-    [_RGB]    = Dox_transient(___12___, ___RGB_3x12___),
-};
+// See: users/ericgebhart.
diff --git a/keyboards/ergodox_ez/keymaps/ericgebhart/layouts.h b/keyboards/ergodox_ez/keymaps/ericgebhart/layouts.h
deleted file mode 100644
index dd8f193dfc..0000000000
--- a/keyboards/ergodox_ez/keymaps/ericgebhart/layouts.h
+++ /dev/null
@@ -1,139 +0,0 @@
-/*
-  Copyright 2018 Eric Gebhart <e.a.gebhart@gmail.com>
-
-  This program is free software: you can redistribute it and/or modify
-  it under the terms of the GNU General Public License as published by
-  the Free Software Foundation, either version 2 of the License, or
-  (at your option) any later version.
-
-  This program is distributed in the hope that it will be useful,
-  but WITHOUT ANY WARRANTY; without even the implied warranty of
-  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-  GNU General Public License for more details.
-
-  You should have received a copy of the GNU General Public License
-  along with this program.  If not, see <http://www.gnu.org/licenses/>.
-*/
-
-/********************************************************************/
-/* Ergodox EZ                                                       */
-/********************************************************************/
-// This one is is set up to pass in the number row.
-// Beakl and bepo both change the number row.
-// Left, middle, right, bottom, and thumbs all stay the same.
-#define Base_dox(                                                       \
-                 K01, K02, K03, K04, K05,                               \
-                 K06, K07, K08, K09, K0A,                               \
-                 K11, K12, K13, K14, K15,                               \
-                 K16, K17, K18, K19, K1A,                               \
-                 K21, K22, K23, K24, K25,                               \
-                 K26, K27, K28, K29, K2A,                               \
-                 K31, K32, K33, K34, K35,                               \
-                 K36, K37, K38, K39, K3A                                \
-                                                                        ) \
-  LVARG_edox(                                                           \
-             ROW0_LEFT(K01, K02, K03, K04, K05),                        \
-             ___2_MIDDLE_1___,                                          \
-             ROW0_RIGHT(K06, K07, K08, K09, K0A),                       \
-                                                                        \
-             ROW1_LEFT(K11, K12, K13, K14, K15),                        \
-             ___2_MIDDLE_2___,                                          \
-             ROW1_RIGHT(K16, K17, K18, K19, K1A),                       \
-                                                                        \
-             ROW2_LEFT(K21, K22, K23, K24, K25),                        \
-             ROW2_RIGHT(K26, K27, K28, K29, K2A),                       \
-                                                                        \
-             ROW3_LEFT(K31, K32, K33, K34, K35),                        \
-             ___2_MIDDLE_3___,                                          \
-             ROW3_RIGHT(K36, K37, K38, K39, K3A),                       \
-             ___5_BOTTOM_LEFT___,   ___5_BOTTOM_RIGHT___,               \
-             ___12_DOX_ALL_THUMBS___                                    \
-                                                                        )
-
-#define Base_dox_bepo(                                                  \
-                      K01, K02, K03, K04, K05,                          \
-                      K06, K07, K08, K09, K0A,                          \
-                      K11, K12, K13, K14, K15,                          \
-                      K16, K17, K18, K19, K1A,                          \
-                      K21, K22, K23, K24, K25,                          \
-                      K26, K27, K28, K29, K2A,                          \
-                      K31, K32, K33, K34, K35,                          \
-                      K36, K37, K38, K39, K3A                           \
-                                                                        ) \
-  LVARG_edox(                                                           \
-             ROW0_LEFT(K01, K02, K03, K04, K05),                        \
-             ___2_MIDDLE_1___,                                          \
-             ROW0_RIGHT(K06, K07, K08, K09, K0A),                       \
-                                                                        \
-             ROW1_LEFT(K11, K12, K13, K14, K15),                        \
-             ___2_MIDDLE_2___,                                          \
-             ROW1_RIGHT(K16, K17, K18, K19, K1A),                       \
-                                                                        \
-             ROW2_LEFT(K21, K22, K23, K24, K25),                        \
-             ROW2_RIGHT(K26, K27, K28, K29, K2A),                       \
-                                                                        \
-             ROW3_LEFT(K31, K32, K33, K34, K35),                        \
-             ___2_MIDDLE_3___,                                          \
-             ROW3_RIGHT(K36, K37, K38, K39, K3A),                       \
-             ___5_BOTTOM_LEFT___, ___5_BOTTOM_RIGHT___,                 \
-             ___12_DOX_ALL_THUMBS_BP___                                 \
-                                                                        )
-
-
-#define Base_dox_bepo6(                                                 \
-                       K01, K02, K03, K04, K05, K06,                    \
-                       K07, K08, K09, K0A, K0B, K0C,                    \
-                       K11, K12, K13, K14, K15, K16,                    \
-                       K17, K18, K19, K1A, K1B, K1C,                    \
-                       K21, K22, K23, K24, K25, K26,                    \
-                       K27, K28, K29, K2A, K2B, K2C                     \
-                                                                        ) \
-  LVARG_edox(                                                           \
-             ___6SYMBOL_BEPO_L___,                                      \
-             ___2_MIDDLE_T_BP___,                                       \
-             ___6SYMBOL_BEPO_R___,                                      \
-             ROW1_LEFT_BP6(K01, K02, K03, K04, K05, K06),               \
-             ___2_MIDDLE_2_BP___,                                       \
-             ROW1_RIGHT_BP6(K07, K08, K09, K0A, K0B, K0C),              \
-                                                                        \
-             ROW2_LEFT_BP6(K11, K12, K13, K14, K15, K16),               \
-             ROW2_RIGHT_BP6(K17, K18, K19, K1A, K1B, K1C),              \
-                                                                        \
-             ROW3_LEFT_BP6(K21, K22, K23, K24, K25, K26),               \
-             ___2_MIDDLE_3_BP___,                                       \
-             ROW3_RIGHT_BP6(K27, K28, K29, K2A, K2B, K2C),              \
-                                                                        \
-             ___5_BOTTOM_LEFT_BP___, ___5_BOTTOM_RIGHT_BP___,           \
-             ___12_DOX_ALL_THUMBS_BP___                                 \
-                                                                        )
-
-#define Transient_dox6(                                                 \
-                       K01, K02, K03, K04, K05, K06,                    \
-                       K07, K08, K09, K0A, K0B, K0C,                    \
-                       K11, K12, K13, K14, K15, K16,                    \
-                       K17, K18, K19, K1A, K1B, K1C,                    \
-                       K21, K22, K23, K24, K25, K26,                    \
-                       K27, K28, K29, K2A, K2B, K2C,                    \
-                       K31, K32, K33, K34, K35, K36,                    \
-                       K37, K38, K39, K3A, K3B, K3C                     \
-                                                                        ) \
-  LVARG_edox(                                                           \
-             K01, K02, K03, K04, K05, K06,                              \
-             ___2___,                                                   \
-             K07, K08, K09, K0A, K0B, K0C,                              \
-             K11, K12, K13, K14, K15, K16,                              \
-             ___2___,                                                   \
-             K17, K18, K19, K1A, K1B, K1C,                              \
-             K21, K22, K23, K24, K25, K26,                              \
-             K27, K28, K29, K2A, K2B, K2C,                              \
-             K31, K32, K33, K34, K35, K36,                              \
-             ___2___,                                                   \
-             K37, K38, K39, K3A, K3B, K3C,                              \
-             ___5___, ___5___,                                          \
-             ___12___                                                   \
-                                                                        )
-
-#define Dox_base(...)        Base_dox(__VA_ARGS__)
-#define Dox_bepo_base(...)   Base_dox_bepo(__VA_ARGS__)
-#define Dox_bepo_base6(...)  Base_dox_bepo6(__VA_ARGS__)
-#define Dox_transient(...)   Transient_dox6(__VA_ARGS__)
diff --git a/keyboards/handwired/alcor_dactyl/config.h b/keyboards/handwired/alcor_dactyl/config.h
new file mode 100644
index 0000000000..f8ffe4d6a3
--- /dev/null
+++ b/keyboards/handwired/alcor_dactyl/config.h
@@ -0,0 +1,33 @@
+// Copyright 2022 Ethan (@rocketstrong)
+// SPDX-License-Identifier: GPL-2.0-or-later
+
+#pragma once
+
+#include "config_common.h"
+
+/*
+ * Feature disable options
+ *  These options are also useful to firmware size reduction.
+ */
+
+/* disable debug print */
+//#define NO_DEBUG
+
+/* disable print */
+//#define NO_PRINT
+
+/* disable action features */
+//#define NO_ACTION_LAYER
+//#define NO_ACTION_TAPPING
+//#define NO_ACTION_ONESHOT
+
+#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET
+#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET_TIMEOUT 200U
+#define SERIAL_USART_FULL_DUPLEX
+#define SERIAL_USART_TX_PIN GP10
+#define SERIAL_USART_RX_PIN GP9
+#define RGB_DI_PIN GP16
+#define DRIVER_LED_TOTAL 2
+#define RGB_MATRIX_SPLIT { 1, 1 }
+#define RGBLED_NUM 1
+#define EE_HANDS
diff --git a/keyboards/handwired/alcor_dactyl/info.json b/keyboards/handwired/alcor_dactyl/info.json
new file mode 100644
index 0000000000..7bdde8550c
--- /dev/null
+++ b/keyboards/handwired/alcor_dactyl/info.json
@@ -0,0 +1,130 @@
+{
+    "manufacturer": "Ethan",
+    "keyboard_name": "alcor_dactyl",
+    "maintainer": "rocketstrong",
+    "bootloader": "rp2040",
+    "processor": "RP2040",
+    "url": "",
+    "usb": {
+        "device_version": "1.0.0",
+        "pid": "0x0000",
+        "vid": "0xFEED"
+    },
+    "features": {
+        "command": false,
+        "console": false,
+        "extrakey": true,
+        "mousekey": true,
+        "nkro": true,
+        "rgb_matrix": true
+    },
+    "split": {
+        "enabled": true
+    },
+    "diode_direction": "COL2ROW",
+    "matrix_pins": {
+        "cols": ["GP29", "GP28", "GP27", "GP26", "GP15", "GP14", "GP13"],
+        "rows": ["GP5", "GP4", "GP3", "GP2", "GP1", "GP0"]
+    },
+    "rgb_matrix": {
+        "driver": "WS2812",
+        "layout": [
+            {"x":0, "y":0.375},
+            {"x":16.5, "y":0.38}
+        ]
+    },
+    "layouts": {
+        "LAYOUT":{
+            "layout":[
+                {"matrix":[0,0], "x":0, "y":0.375, "w":1.5},
+                {"matrix":[0,1], "x":1.5, "y":0.38},
+                {"matrix":[0,2], "x":2.5, "y":0.125},
+                {"matrix":[0,3], "x":3.5, "y":0.25},
+                {"matrix":[0,4], "x":4.5, "y":0.25},
+                {"matrix":[0,5], "x":5.5, "y":0.25},
+                {"matrix":[0,6], "x":6.5, "y":0.25},
+
+                {"matrix":[6,6], "x":10.5, "y":0.25},
+                {"matrix":[6,5], "x":11.5, "y":0.25},
+                {"matrix":[6,4], "x":12.5, "y":0.25},
+                {"matrix":[6,3], "x":13.5, "y":0.25},
+                {"matrix":[6,2], "x":14.5, "y":0.13},
+                {"matrix":[6,1], "x":15.5, "y":0.38},
+                {"matrix":[6,0], "x":16.5, "y":0.38, "w":1.5},
+
+                {"matrix":[1,0], "x":0, "y":1.375, "w":1.5},
+                {"matrix":[1,1], "x":1.5, "y":1.375},
+                {"matrix":[1,2], "x":2.5, "y":1.125},
+                {"matrix":[1,3], "x":3.5, "y":1.25},
+                {"matrix":[1,4], "x":4.5, "y":1.25},
+                {"matrix":[1,5], "x":5.5, "y":1.25},
+                {"matrix":[1,6], "x":6.5, "y":1.25},
+
+                {"matrix":[7,6], "x":10.5, "y":1.25},
+                {"matrix":[7,5], "x":11.5, "y":1.25},
+                {"matrix":[7,4], "x":12.5, "y":1.25},
+                {"matrix":[7,3], "x":13.5, "y":1.25},
+                {"matrix":[7,2], "x":14.5, "y":1.13},
+                {"matrix":[7,1], "x":15.5, "y":1.38},
+                {"matrix":[7,0], "x":16.5, "y":1.38, "w":1.5},
+
+                {"matrix":[2,0], "x":0, "y":2.375, "w":1.5},
+                {"matrix":[2,1], "x":1.5, "y":2.375},
+                {"matrix":[2,2], "x":2.5, "y":2.125},
+                {"matrix":[2,3], "x":3.5, "y":2.25},
+                {"matrix":[2,4], "x":4.5, "y":2.25},
+                {"matrix":[2,5], "x":5.5, "y":2.25},
+                {"matrix":[2,6], "x":6.5, "y":2.25},
+
+                {"matrix":[8,6], "x":10.5, "y":2.25},
+                {"matrix":[8,5], "x":11.5, "y":2.25},
+                {"matrix":[8,4], "x":12.5, "y":2.25},
+                {"matrix":[8,3], "x":13.5, "y":2.25},
+                {"matrix":[8,2], "x":14.5, "y":2.13},
+                {"matrix":[8,1], "x":15.5, "y":2.38},
+                {"matrix":[8,0], "x":16.5, "y":2.38, "w":1.5},
+
+                {"matrix":[3,0], "x":0, "y":3.375, "w":1.5},
+                {"matrix":[3,1], "x":1.5, "y":3.375},
+                {"matrix":[3,2], "x":2.5, "y":3.125},
+                {"matrix":[3,3], "x":3.5, "y":3.25},
+                {"matrix":[3,4], "x":4.5, "y":3.25},
+                {"matrix":[3,5], "x":5.5, "y":3.25},
+
+                {"matrix":[9,5], "x":11.5, "y":3.25},
+                {"matrix":[9,4], "x":12.5, "y":3.25},
+                {"matrix":[9,3], "x":13.5, "y":3.25},
+                {"matrix":[9,2], "x":14.5, "y":3.13},
+                {"matrix":[9,1], "x":15.5, "y":3.38},
+                {"matrix":[9,0], "x":16.5, "y":3.38, "w":1.5},
+
+                {"matrix":[4,0], "x":0.5, "y":4.375},
+                {"matrix":[4,1], "x":1.5, "y":4.375},
+                {"matrix":[4,2], "x":2.5, "y":4.125},
+                {"matrix":[4,3], "x":3.5, "y":4.25},
+
+                {"matrix":[10,3], "x":13.5, "y":4.25},
+                {"matrix":[10,2], "x":14.5, "y":4.13},
+                {"matrix":[10,1], "x":15.5, "y":4.38},
+                {"matrix":[10,0], "x":16.5, "y":4.38},
+
+                {"matrix":[4,4], "x":5, "y":4.5, "h":2},
+                {"matrix":[4,5], "x":6.25, "y":4.5, "h":1.5},
+                {"matrix":[10,5], "x":10.75, "y":4.5, "h":1.5},
+                {"matrix":[10,4], "x":12, "y":4.5, "h":2},
+
+                {"matrix":[5,4], "x":6.25, "y":6.25},
+                {"matrix":[5,5], "x":7.5, "y":6.25},
+
+                {"matrix":[11,5], "x":9.5, "y":6.25},
+                {"matrix":[11,4], "x":10.75, "y":6.25},
+
+                {"matrix":[5,2], "x":6.25, "y":7.25},
+                {"matrix":[5,3], "x":7.25, "y":7.25},
+
+                {"matrix":[11,3], "x":9.75, "y":7.25},
+                {"matrix":[11,2], "x":10.75, "y":7.25}
+            ]
+        }
+    }
+}
diff --git a/keyboards/handwired/alcor_dactyl/keymaps/colemak_dh/keymap.c b/keyboards/handwired/alcor_dactyl/keymaps/colemak_dh/keymap.c
new file mode 100644
index 0000000000..8d41611402
--- /dev/null
+++ b/keyboards/handwired/alcor_dactyl/keymaps/colemak_dh/keymap.c
@@ -0,0 +1,100 @@
+// Copyright 2022 Ethan (@rocketstrong)
+// SPDX-License-Identifier: GPL-2.0-or-later
+
+#include QMK_KEYBOARD_H
+
+/*
+ *          ┌──┐┌──┐┌──┐┌──┐┌──┐            ┌──┐┌──┐┌──┐┌──┐┌──┐
+ *┌────┐┌──┐│  ││  ││  ││  ││  │            │  ││  ││  ││  ││  │┌──┐┌────┐
+ *│    ││  │└──┘└──┘└──┘└──┘└──┘            └──┘└──┘└──┘└──┘└──┘│  ││    │
+ *└────┘└──┘┌──┐┌──┐┌──┐┌──┐┌──┐            ┌──┐┌──┐┌──┐┌──┐┌──┐└──┘└────┘
+ *┌────┐┌──┐│  ││  ││  ││  ││  │            │  ││  ││  ││  ││  │┌──┐┌────┐
+ *│    ││  │└──┘└──┘└──┘└──┘└──┘            └──┘└──┘└──┘└──┘└──┘│  ││    │
+ *└────┘└──┘┌──┐┌──┐┌──┐┌──┐┌──┐            ┌──┐┌──┐┌──┐┌──┐┌──┐└──┘└────┘
+ *┌────┐┌──┐│  ││  ││  ││  ││  │            │  ││  ││  ││  ││  │┌──┐┌────┐
+ *│    ││  │└──┘└──┘└──┘└──┘└──┘            └──┘└──┘└──┘└──┘└──┘│  ││    │
+ *└────┘└──┘┌──┐┌──┐┌──┐┌──┐                    ┌──┐┌──┐┌──┐┌──┐└──┘└────┘
+ *┌────┐┌──┐│  ││  ││  ││  │                    │  ││  ││  ││  │┌──┐┌────┐
+ *│    ││  │└──┘└──┘└──┘└──┘                    └──┘└──┘└──┘└──┘│  ││    │
+ *└────┘└──┘┌──┐┌──┐                                    ┌──┐┌──┐└──┘└────┘
+ *  ┌──┐┌──┐│  ││  │  ┌──┐ ┌──┐              ┌──┐ ┌──┐  │  ││  │┌──┐┌──┐
+ *  │  ││  │└──┘└──┘  │  │ │  │              │  │ │  │  └──┘└──┘│  ││  │
+ *  └──┘└──┘          │  │ │  │              │  │ │  │          └──┘└──┘
+ *                    │  │ └──┘              └──┘ │  │
+ *                    └──┘ ┌──┐ ┌──┐    ┌──┐ ┌──┐ └──┘
+ *                         │  │ │  │    │  │ │  │
+ *                         └──┘ └──┘    └──┘ └──┘
+ *                         ┌──┐┌──┐      ┌──┐┌──┐
+ *                         │  ││  │      │  ││  │
+ *                         └──┘└──┘      └──┘└──┘
+ */
+
+enum Colemaklayers {
+  _ARSTG,
+  _NUMPAD,
+  _SYMBOLS
+};
+
+enum custom_keycodes {
+    AD_DDS = SAFE_RANGE,
+    AD_SCOPE
+};
+
+#define TT_NUM TT(_NUMPAD)
+#define TT_SYM TT(_SYMBOLS)
+
+bool process_record_user(uint16_t keycode, keyrecord_t *record) {
+    switch (keycode) {
+        case AD_DDS:
+            if (!record->event.pressed) {
+                // when keycode AD_DDS is pressed
+                SEND_STRING("../");
+            } else {
+                // when keycode AD_DDS is released
+            }
+            break;
+        case AD_SCOPE:
+            if (!record->event.pressed) {
+                // when keycode AD_DDS is pressed
+                SEND_STRING("::");
+            } else {
+                // when keycode AD_DDS is released
+            }
+            break;
+    }
+    return true;
+}
+
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+    [_ARSTG] = LAYOUT(
+        KC_GRV  , KC_1    , KC_2    , KC_3    , KC_4    , KC_5    , KC_MINS  ,      KC_EQL  , KC_6    , KC_7    , KC_8    , KC_9    , KC_0    , KC_ESC  ,
+        KC_TAB  , KC_Q    , KC_W    , KC_F    , KC_P    , KC_B    , KC_LBRC ,       KC_RBRC , KC_J    , KC_L    , KC_U    , KC_Y    , KC_SCLN , KC_BSLS ,
+        KC_ESC  , KC_A    , KC_R    , KC_S    , KC_T    , KC_G    , KC_PSCR ,       KC_PAUS , KC_M    , KC_N    , KC_E    , KC_I    , KC_O    , KC_QUOT ,
+        KC_LSFT , KC_Z    , KC_X    , KC_C    , KC_D    , KC_V    ,                           KC_K    , KC_H    , KC_COMM , KC_DOT  , KC_SLSH , KC_RSFT ,
+        KC_LCTL , KC_LGUI , KC_LALT , KC_DEL  ,                                                                   KC_LEFT , KC_UP   , KC_DOWN , KC_RIGHT,
+                                                        KC_SPC  , KC_BSPC ,           KC_TAB  , KC_ENT  ,
+                                                          TT_NUM  , KC_LSFT ,       KC_RSFT , TT_SYM  ,
+                                                          KC_LCTL , KC_LALT ,       KC_RALT , KC_RCTL
+    ),
+    [_NUMPAD] = LAYOUT(
+        KC_NO   , KC_F1   , KC_F2   , KC_F3   , KC_F4   , KC_F5   , KC_F6   ,       KC_F7   , KC_F8   , KC_F9   , KC_F10  , KC_F11  , KC_F12  , KC_NO   ,
+        KC_TRNS , KC_PGUP , KC_HOME , KC_UP   , KC_END  , KC_NO   , KC_NO   ,       KC_NO   , KC_NUM  , KC_P7   , KC_P8   , KC_P9   , KC_PMNS , KC_NO   ,
+        KC_TRNS , KC_PGDN , KC_LEFT , KC_DOWN , KC_RIGHT, KC_NO   , KC_TRNS ,       KC_TRNS , KC_PSLS , KC_P4   , KC_P5   , KC_P6   , KC_PPLS , KC_NO   ,
+        KC_TRNS , KC_NO   , KC_NO   , KC_NO   , KC_NO   , KC_NO   ,                           KC_PAST , KC_P1   , KC_P2   , KC_P3   , KC_PEQL , KC_NO   ,
+        KC_TRNS , KC_NO   , KC_NO   , KC_NO   ,                                                                   KC_P0   , KC_PDOT , KC_PCMM , KC_NO   ,
+                                                        KC_TRNS , KC_TRNS ,           KC_TRNS , KC_PENT ,
+                                                          KC_TRNS , KC_TRNS ,       KC_TRNS , KC_TRNS ,
+                                                          KC_TRNS , QK_BOOT ,       KC_TRNS , KC_TRNS
+    ),
+    [_SYMBOLS] = LAYOUT(
+        KC_NO   , KC_F1   , KC_F2   , KC_F3   , KC_F4   , KC_F5   , KC_F6   ,       KC_F7   , KC_F8   , KC_F9   , KC_F10  , KC_F11  , KC_F12  , KC_NO   ,
+        KC_TRNS , KC_QUOT , KC_LT   , KC_GT   , KC_DQT  , KC_DOT  , KC_NO   ,       KC_NO   , KC_AMPR , AD_SCOPE, KC_LBRC , KC_RBRC , KC_PERC , KC_NO   ,
+        KC_TRNS , KC_EXLM , KC_MINS , KC_PLUS , KC_EQL  , KC_HASH , KC_NO   ,       KC_NO   , KC_PIPE , KC_COLN , KC_LPRN , KC_RPRN , KC_QUES , KC_NO   ,
+        KC_TRNS , KC_CIRC , KC_SLSH , KC_ASTR , KC_BSLS , AD_DDS  ,                           KC_TILD , KC_DLR  , KC_LCBR , KC_RCBR , KC_AT   , KC_NO   ,
+        KC_TRNS , KC_NO   , KC_NO   , KC_NO   ,                                                                   KC_NO   , KC_NO   , KC_NO   , KC_NO   ,
+                                                        KC_TRNS , KC_TRNS ,           KC_TRNS , KC_PENT ,
+                                                          KC_TRNS , KC_TRNS ,       KC_TRNS , KC_TRNS ,
+                                                          KC_TRNS , KC_TRNS ,       QK_BOOT , KC_TRNS
+    )
+};
diff --git a/keyboards/handwired/alcor_dactyl/keymaps/default/keymap.c b/keyboards/handwired/alcor_dactyl/keymaps/default/keymap.c
new file mode 100644
index 0000000000..55ddb29888
--- /dev/null
+++ b/keyboards/handwired/alcor_dactyl/keymaps/default/keymap.c
@@ -0,0 +1,43 @@
+// Copyright 2022 Ethan (@rocketstrong)
+// SPDX-License-Identifier: GPL-2.0-or-later
+
+#include QMK_KEYBOARD_H
+
+/*
+ *          ┌──┐┌──┐┌──┐┌──┐┌──┐            ┌──┐┌──┐┌──┐┌──┐┌──┐
+ *┌────┐┌──┐│  ││  ││  ││  ││  │            │  ││  ││  ││  ││  │┌──┐┌────┐
+ *│    ││  │└──┘└──┘└──┘└──┘└──┘            └──┘└──┘└──┘└──┘└──┘│  ││    │
+ *└────┘└──┘┌──┐┌──┐┌──┐┌──┐┌──┐            ┌──┐┌──┐┌──┐┌──┐┌──┐└──┘└────┘
+ *┌────┐┌──┐│  ││  ││  ││  ││  │            │  ││  ││  ││  ││  │┌──┐┌────┐
+ *│    ││  │└──┘└──┘└──┘└──┘└──┘            └──┘└──┘└──┘└──┘└──┘│  ││    │
+ *└────┘└──┘┌──┐┌──┐┌──┐┌──┐┌──┐            ┌──┐┌──┐┌──┐┌──┐┌──┐└──┘└────┘
+ *┌────┐┌──┐│  ││  ││  ││  ││  │            │  ││  ││  ││  ││  │┌──┐┌────┐
+ *│    ││  │└──┘└──┘└──┘└──┘└──┘            └──┘└──┘└──┘└──┘└──┘│  ││    │
+ *└────┘└──┘┌──┐┌──┐┌──┐┌──┐                    ┌──┐┌──┐┌──┐┌──┐└──┘└────┘
+ *┌────┐┌──┐│  ││  ││  ││  │                    │  ││  ││  ││  │┌──┐┌────┐
+ *│    ││  │└──┘└──┘└──┘└──┘                    └──┘└──┘└──┘└──┘│  ││    │
+ *└────┘└──┘┌──┐┌──┐                                    ┌──┐┌──┐└──┘└────┘
+ *  ┌──┐┌──┐│  ││  │  ┌──┐ ┌──┐              ┌──┐ ┌──┐  │  ││  │┌──┐┌──┐
+ *  │  ││  │└──┘└──┘  │  │ │  │              │  │ │  │  └──┘└──┘│  ││  │
+ *  └──┘└──┘          │  │ │  │              │  │ │  │          └──┘└──┘
+ *                    │  │ └──┘              └──┘ │  │
+ *                    └──┘ ┌──┐ ┌──┐    ┌──┐ ┌──┐ └──┘
+ *                         │  │ │  │    │  │ │  │
+ *                         └──┘ └──┘    └──┘ └──┘
+ *                         ┌──┐┌──┐      ┌──┐┌──┐
+ *                         │  ││  │      │  ││  │
+ *                         └──┘└──┘      └──┘└──┘
+ */
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+    [0] = LAYOUT(
+        KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO,      KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO,
+        KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO,      KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO,
+        KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO,      KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO,
+        KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO,                    KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO,
+        KC_NO, KC_NO, KC_NO, KC_NO,                                                KC_NO, KC_NO, KC_NO, KC_NO,
+                                        KC_NO, KC_NO,            KC_NO, KC_NO,
+                                            KC_NO, KC_NO,    KC_NO, KC_NO,
+                                            KC_NO, KC_NO,    KC_NO, KC_NO
+    )
+};
diff --git a/keyboards/handwired/alcor_dactyl/readme.md b/keyboards/handwired/alcor_dactyl/readme.md
new file mode 100644
index 0000000000..3c18faf247
--- /dev/null
+++ b/keyboards/handwired/alcor_dactyl/readme.md
@@ -0,0 +1,28 @@
+# alcor_dactyl
+
+![alcor_dactyl](https://i.imgur.com/F0E1JCQh.jpg)
+
+This is a handwired dactyl manufor utalising an RP2040-zero
+
+* Keyboard Maintainer: [Ethan](https://github.com/rocketstrong)
+* Hardware Supported: Waveshare RP2040-Zero
+* Hardware Availability: https://www.waveshare.com/wiki/RP2040-Zero
+* 3D Print File Source: https://dactyl.mbugert.de/manuform
+
+Make example for this keyboard (after setting up your build environment):
+
+    make handwired/alcor_dactyl:default
+
+Flashing example for this keyboard:
+
+    make handwired/alcor_dactyl:default:flash
+
+See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs).
+
+## Bootloader
+
+Enter the bootloader in 3 ways:
+
+* **Bootmagic reset**: Hold down the key at (0,0) in the matrix (usually the top left key or Escape) and plug in the keyboard
+* **Physical reset button**: Briefly press the button on the back of the PCB - some may have pads you must short instead
+* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available
diff --git a/keyboards/handwired/alcor_dactyl/rules.mk b/keyboards/handwired/alcor_dactyl/rules.mk
new file mode 100644
index 0000000000..8fb51ec82d
--- /dev/null
+++ b/keyboards/handwired/alcor_dactyl/rules.mk
@@ -0,0 +1,2 @@
+SERIAL_DRIVER = vendor
+WS2812_DRIVER = vendor
diff --git a/keyboards/handwired/dactyl_manuform/5x6_6/5x6_6.c b/keyboards/handwired/dactyl_manuform/5x6_6/5x6_6.c
new file mode 100644
index 0000000000..dbfb96ce40
--- /dev/null
+++ b/keyboards/handwired/dactyl_manuform/5x6_6/5x6_6.c
@@ -0,0 +1,18 @@
+/*
+Copyright 2022 fgoodwin <fgoodwin@north-tech.net>
+
+This program is free software: you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation, either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program.  If not, see <http://www.gnu.org/licenses/>.
+*/
+
+#include "5x6_6.h"
diff --git a/keyboards/handwired/dactyl_manuform/5x6_6/5x6_6.h b/keyboards/handwired/dactyl_manuform/5x6_6/5x6_6.h
new file mode 100644
index 0000000000..1392cb0b18
--- /dev/null
+++ b/keyboards/handwired/dactyl_manuform/5x6_6/5x6_6.h
@@ -0,0 +1,47 @@
+/*
+Copyright 2022 fgoodwin <fgoodwin@north-tech.net>
+
+This program is free software: you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation, either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program.  If not, see <http://www.gnu.org/licenses/>.
+*/
+
+#include "quantum.h"
+#pragma once
+
+#define XXX KC_NO
+
+#define LAYOUT_split_5x6_6( \
+    L00, L01, L02, L03, L04, L05,                          R00, R01, R02, R03, R04, R05, \
+    L10, L11, L12, L13, L14, L15,                          R10, R11, R12, R13, R14, R15, \
+    L20, L21, L22, L23, L24, L25,                          R20, R21, R22, R23, R24, R25, \
+    L30, L31, L32, L33, L34, L35,                          R30, R31, R32, R33, R34, R35, \
+              L42, L43, L44, L45,                          R40, R41, R42, R43, \
+                        L54, L55,                          R50, R51, \
+                        L64, L65,                          R60, R61 \
+) { \
+    { L00, L01, L02, L03, L04, L05 }, \
+    { L10, L11, L12, L13, L14, L15 }, \
+    { L20, L21, L22, L23, L24, L25 }, \
+    { L30, L31, L32, L33, L34, L35 }, \
+    { XXX, XXX, L42, L43, L44, L45 }, \
+    { XXX, XXX, XXX, XXX, L54, L55 }, \
+    { XXX, XXX, XXX, XXX, L64, L65 }, \
+\
+    { R00, R01, R02, R03, R04, R05 }, \
+    { R10, R11, R12, R13, R14, R15 }, \
+    { R20, R21, R22, R23, R24, R25 }, \
+    { R30, R31, R32, R33, R34, R35 }, \
+    { R40, R41, R42, R43, XXX, XXX }, \
+    { R50, R51, XXX, XXX, XXX, XXX }, \
+    { R60, R61, XXX, XXX, XXX, XXX } \
+}
diff --git a/keyboards/handwired/dactyl_manuform/5x6_6/config.h b/keyboards/handwired/dactyl_manuform/5x6_6/config.h
new file mode 100644
index 0000000000..3571a6d979
--- /dev/null
+++ b/keyboards/handwired/dactyl_manuform/5x6_6/config.h
@@ -0,0 +1,34 @@
+/*
+Copyright 2022 fgoodwin <fgoodwin@north-tech.net>
+
+This program is free software: you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation, either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program.  If not, see <http://www.gnu.org/licenses/>.
+*/
+
+#pragma once
+
+#include "config_common.h"
+
+/* key matrix size */
+// Rows are doubled-up
+#define MATRIX_COLS 6
+#define MATRIX_ROWS 14
+
+#undef SOFT_SERIAL_PIN
+#define SOFT_SERIAL_PIN D3
+
+// wiring of each half
+#define MATRIX_COL_PINS { D4, C6, D7, E6, B4, B5 }
+#define MATRIX_ROW_PINS { F5, F6, F7, B1, B3, B2, B6 }
+
+#define DIODE_DIRECTION COL2ROW
\ No newline at end of file
diff --git a/keyboards/handwired/dactyl_manuform/5x6_6/info.json b/keyboards/handwired/dactyl_manuform/5x6_6/info.json
new file mode 100644
index 0000000000..2774cec118
--- /dev/null
+++ b/keyboards/handwired/dactyl_manuform/5x6_6/info.json
@@ -0,0 +1,93 @@
+{
+    "keyboard_name": "Dactyl Manuform 5x6+6",
+    "url": "https://github.com/fgoodwin/dactyl-manuform-5x6_6/tree/main/5x6_6",
+    "maintainer": "fgoodwin",
+    "usb": {
+        "vid": "0x444D",
+        "pid": "0x3536",
+        "device_version": "0.0.3"
+    },
+    "layouts": {
+        "LAYOUT_split_5x6_6": {
+            "layout": [
+                {"x": 0, "y": 0},
+                {"x": 1, "y": 0},
+                {"x": 2, "y": 0},
+                {"x": 3, "y": 0},
+                {"x": 4, "y": 0},
+                {"x": 5, "y": 0},
+
+                {"x": 11, "y": 0},
+                {"x": 12, "y": 0},
+                {"x": 13, "y": 0},
+                {"x": 14, "y": 0},
+                {"x": 15, "y": 0},
+                {"x": 16, "y": 0},
+
+                {"x": 0, "y": 1},
+                {"x": 1, "y": 1},
+                {"x": 2, "y": 1},
+                {"x": 3, "y": 1},
+                {"x": 4, "y": 1},
+                {"x": 5, "y": 1},
+
+                {"x": 11, "y": 1},
+                {"x": 12, "y": 1},
+                {"x": 13, "y": 1},
+                {"x": 14, "y": 1},
+                {"x": 15, "y": 1},
+                {"x": 16, "y": 1},
+
+                {"x": 0, "y": 2},
+                {"x": 1, "y": 2},
+                {"x": 2, "y": 2},
+                {"x": 3, "y": 2},
+                {"x": 4, "y": 2},
+                {"x": 5, "y": 2},
+
+                {"x": 11, "y": 2},
+                {"x": 12, "y": 2},
+                {"x": 13, "y": 2},
+                {"x": 14, "y": 2},
+                {"x": 15, "y": 2},
+                {"x": 16, "y": 2},
+
+                {"x": 0, "y": 3},
+                {"x": 1, "y": 3},
+                {"x": 2, "y": 3},
+                {"x": 3, "y": 3},
+                {"x": 4, "y": 3},
+                {"x": 5, "y": 3},
+
+                {"x": 11, "y": 3},
+                {"x": 12, "y": 3},
+                {"x": 13, "y": 3},
+                {"x": 14, "y": 3},
+                {"x": 15, "y": 3},
+                {"x": 16, "y": 3},
+
+                {"x": 2, "y": 4},
+                {"x": 3, "y": 4},
+
+                {"x": 5, "y": 4},
+                {"x": 6, "y": 4},
+                {"x": 7, "y": 4},
+
+                {"x": 9, "y": 4},
+                {"x": 10, "y": 4},
+                {"x": 11, "y": 4},
+
+                {"x": 13, "y": 4},
+                {"x": 14, "y": 4},
+
+                {"x": 5, "y": 5},
+                {"x": 6, "y": 5},
+                {"x": 7, "y": 5},
+
+                {"x": 5, "y": 5},
+                {"x": 9, "y": 5},
+                {"x": 10, "y": 5}
+            ]
+        }
+    }
+}
diff --git a/keyboards/handwired/dactyl_manuform/5x6_6/keymaps/default/keymap.c b/keyboards/handwired/dactyl_manuform/5x6_6/keymaps/default/keymap.c
new file mode 100644
index 0000000000..74fe44702e
--- /dev/null
+++ b/keyboards/handwired/dactyl_manuform/5x6_6/keymaps/default/keymap.c
@@ -0,0 +1,39 @@
+/*
+Copyright 2022 fgoodwin <fgoodwin@north-tech.net>
+
+This program is free software: you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation, either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program.  If not, see <http://www.gnu.org/licenses/>.
+*/
+#include QMK_KEYBOARD_H
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+
+    [0] = LAYOUT_split_5x6_6(
+        KC_ESC,    KC_1,      KC_2,      KC_3,     KC_4,       KC_5,         KC_6,      KC_7,    KC_8,     KC_9,     KC_0,    KC_BSLS,
+        KC_GRV,    KC_Q,      KC_W,      KC_E,     KC_R,       KC_T,         KC_Y,      KC_U,    KC_I,     KC_O,     KC_P,    KC_EQL,
+        KC_TAB,    KC_A,      KC_S,      KC_D,     KC_F,       KC_G,         KC_H,      KC_J,    KC_K,     KC_L,     KC_SCLN, KC_QUOT,
+        KC_LSFT,     KC_Z,      KC_X,      KC_C,     KC_V,       KC_B,         KC_N,      KC_M,    KC_COMM,  KC_DOT,   KC_SLSH, KC_MINS,
+                              KC_NO,     KC_LGUI,  KC_LCTL,    KC_SPC,       KC_RSFT,   KC_ENT,  KC_LBRC,     KC_RBRC,
+                                                   MO(1),      LCTL(KC_C),   KC_BSPC,   MO(1),
+                                                   KC_LALT,    LCTL(KC_V),   KC_DEL,    KC_RSFT
+    ),
+    [1] = LAYOUT_split_5x6_6(
+        KC_TRNS,   KC_F1,     KC_F2,     KC_F3,    KC_F4,         KC_F5,     KC_F6,       KC_F7,      KC_F8,       KC_F9,       KC_F10,     KC_F11,
+        KC_TRNS,   KC_TRNS,   KC_TRNS,   KC_TRNS,  KC_TRNS,       KC_TRNS,   KC_TRNS,     KC_TRNS,    KC_TRNS,     KC_TRNS,     KC_TRNS,    KC_F12,
+        KC_TRNS,   KC_TRNS,   KC_PSCR,   KC_DOWN,  KC_UP,         KC_HOME,   KC_END,      KC_LEFT,    KC_RIGHT,    KC_TRNS,     KC_TRNS,    KC_TRNS,
+        KC_TRNS,   KC_TRNS,   KC_TRNS,   KC_TRNS,  KC_TRNS,       KC_TRNS,   KC_TRNS,     KC_TRNS,    KC_TRNS,     KC_TRNS,     KC_BSLS,    KC_TRNS,
+                   RESET,     KC_TRNS,   KC_TRNS,  KC_TRNS,       KC_TRNS,   KC_TRNS,     KC_TRNS,    KC_TRNS,
+                                         MO(1),    LCTL(KC_C),    KC_TRNS,   MO(1),
+                                         KC_TRNS,  LCTL(KC_V),    KC_TRNS,   KC_TRNS
+    )
+};
diff --git a/keyboards/handwired/dactyl_manuform/5x6_6/readme.md b/keyboards/handwired/dactyl_manuform/5x6_6/readme.md
new file mode 100644
index 0000000000..78107a183d
--- /dev/null
+++ b/keyboards/handwired/dactyl_manuform/5x6_6/readme.md
@@ -0,0 +1,22 @@
+# Dactyl Manuform (5x6) with 6 thumb cluster
+
+The [Dactyl-Manuform](https://github.com/tshort/dactyl-keyboard) is a split curved keyboard based on the design of [adereth dactyl](https://github.com/adereth/dactyl-keyboard) and thumb cluster design of the [manuform](https://geekhack.org/index.php?topic=46015.0) keyboard, the hardware is similar to the let's split keyboard. All information needed for making one is in the first link.
+
+![Imgur](https://i.imgur.com/MvtMG1vh.png)
+
+* Keyboard Maintainer: fgoodwin
+* Hardware Supported: Pro Micro Micro Micro USB or USB C
+
+Make example for this keyboard (after setting up your build environment):
+
+    make handwired/dactyl_manuform/5x6_6:default
+
+Flashing example for this keyboard:
+
+    make handwired/dactyl_manuform/5x6_6:default:flash
+
+See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs).
+
+Enter the bootloader in 2 ways:
+**Physical reset button**: Briefly press the reset button on the bottom of the case, or bridge the reset and ground pins momentarily on the pro micro
+**Keycode in layout**: Press the key mapped to `QK_BOOT` (by default hold down `MO(1)` and press the left most key in row 5 on the left hand half of the keyboard)
\ No newline at end of file
diff --git a/keyboards/handwired/dactyl_manuform/5x6_6/rules.mk b/keyboards/handwired/dactyl_manuform/5x6_6/rules.mk
new file mode 100644
index 0000000000..1d413868d4
--- /dev/null
+++ b/keyboards/handwired/dactyl_manuform/5x6_6/rules.mk
@@ -0,0 +1,19 @@
+# MCU name
+MCU = atmega32u4
+
+# Bootloader selection
+BOOTLOADER = caterina
+
+# Build Options
+#   change yes to no to disable
+#
+BOOTMAGIC_ENABLE = no       # Enable Bootmagic Lite
+MOUSEKEY_ENABLE = yes       # Mouse keys
+EXTRAKEY_ENABLE = yes       # Audio control and System control
+CONSOLE_ENABLE = no         # Console for debug
+COMMAND_ENABLE = yes        # Commands for debug and configuration
+NKRO_ENABLE = yes            # Enable N-Key Rollover
+BACKLIGHT_ENABLE = no       # Enable keyboard backlight functionality
+RGBLIGHT_ENABLE = no        # Enable keyboard RGB underglow
+AUDIO_ENABLE = no           # Audio output
+SPLIT_KEYBOARD = yes
\ No newline at end of file
diff --git a/keyboards/keebio/viterbi/keymaps/ericgebhart/keymap.c b/keyboards/keebio/viterbi/keymaps/ericgebhart/keymap.c
index 60f7b74bc0..c534fe3c6d 100644
--- a/keyboards/keebio/viterbi/keymaps/ericgebhart/keymap.c
+++ b/keyboards/keebio/viterbi/keymaps/ericgebhart/keymap.c
@@ -1,5 +1,5 @@
 /*
-  Copyright 2018 Eric Gebhart <e.a.gebhart@gmail.com>
+  Copyright 2018-2022 Eric Gebhart <e.a.gebhart@gmail.com>
 
   This program is free software: you can redistribute it and/or modify
   it under the terms of the GNU General Public License as published by
@@ -15,34 +15,4 @@
   along with this program.  If not, see <http://www.gnu.org/licenses/>.
 */
 
-#include "keymap_bepo.h"
-#include "ericgebhart.h"
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
-  // 4x10
-  [_DVORAK]  = BASE_5x14(___NUMS___, ___DVORAK___),
-  [_QWERTY]  = BASE_5x14(___NUMS___, ___QWERTY___),
-  [_COLEMAK] = BASE_5x14(___NUMS___, ___COLEMAK_DH___),
-  [_BEAKL]   = BASE_5x14(___BKLNUMS___, ___BEAKL15___),
-
-  //[_DVORAK_BP] = BASE_5x14_bepo(___DVORAK_FR___),
-  //[_BEAKL_BP]  = BASE_5x14_bepo(___BEAKL15_FR___),
-
-  // 4x12
-  //[_BEPO]      = BASE_5x14_bepo6(___BEPO6_FR___),
-
-  // transient macro takes a 3x12 for args
-  [_SYMB]    = TRANSIENT_5x14(___12___, ___SYMB_BEAKLA_3x12___),
-  //[_SYMB_BP] = TRANSIENT_5x14(___SYMB_BEAKLA_BP_3x12___),
-
-  [_TOPROWS]    = TRANSIENT_5x14(___12___, ___TOPROWS_3x12___),
-  //[_TOPROWS_BP] = TRANSIENT_5x14(___TOPROWS_BP_3x12___),
-
-  [_KEYPAD]    = TRANSIENT_5x14(___12___, ___KP_C_3x12___),
-  //[_KEYPAD_BP] = TRANSIENT_5x14(___KP_C_BP_3x12___),
-
-  // Navigation and control
-  [_NAV]    = TRANSIENT_5x14(___12___, ___NAV_3x12___),
-  [_LAYERS] = TRANSIENT_5x14(___12___, ___LAYERS_3x12___),
-  //[_RGB]  = TRANSIENT_5x14(___12___, ___RGB_3x12___),
-};
+// See: users/ericgebhart.
diff --git a/keyboards/kinesis/keymaps/ericgebhart/keymap.c b/keyboards/kinesis/keymaps/ericgebhart/keymap.c
index 731e257b05..c534fe3c6d 100644
--- a/keyboards/kinesis/keymaps/ericgebhart/keymap.c
+++ b/keyboards/kinesis/keymaps/ericgebhart/keymap.c
@@ -1,5 +1,5 @@
 /*
-  Copyright 2018 Eric Gebhart <e.a.gebhart@gmail.com>
+  Copyright 2018-2022 Eric Gebhart <e.a.gebhart@gmail.com>
 
   This program is free software: you can redistribute it and/or modify
   it under the terms of the GNU General Public License as published by
@@ -14,40 +14,5 @@
   You should have received a copy of the GNU General Public License
   along with this program.  If not, see <http://www.gnu.org/licenses/>.
 */
-#include "keymap_bepo.h"
-#include "ericgebhart.h"
 
-#define LAYOUT_PVARG(...)     LAYOUT_pretty(__VA_ARGS__)
-
-#define Kinesis_base(...)        Base_4x6_4_6(__VA_ARGS__)
-#define Kinesis_bepo_base(...)   Base_bepo_4x6_4_6(__VA_ARGS__)
-#define Kinesis_bepo_base6(...)  Base_bepo6_4x6_4_6(__VA_ARGS__)
-#define Kinesis_transient(...)   Transient6_4x6_4_6(__VA_ARGS__)
-
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
-
-  // Qwerty Base layers
-  [_DVORAK]  = Kinesis_base(___NUMS___, ___DVORAK___),
-  [_QWERTY]  = Kinesis_base(___NUMS___, ___QWERTY___),
-  [_COLEMAK] = Kinesis_base(___NUMS___, ___COLEMAK_DH___),
-  [_BEAKL]   = Kinesis_base(___BKLNUMS___, ___BEAKL15___),
-  // Bepo Base layers
-  [_DVORAK_BP] = Kinesis_bepo_base(___NUMS_BP___, ___DVORAK_FR___),
-  [_BEAKL_BP]  = Kinesis_bepo_base(___BKLNUMS_BP___,   ___BEAKL15_FR___),
-
-  [_BEPO]      = Kinesis_bepo_base6(___BEPO6___),
-
-  // transient layers.
-  // Switch to using a transient layer macro
-  [_SYMB]    = Kinesis_transient(___12_FUNC___, ___SYMB_BEAKLA_3x12___),
-  [_SYMB_BP] = Kinesis_transient(___12_FUNC___, ___SYMB_BEAKLA_BP_3x12___),
-
-  [_TOPROWS]    = Kinesis_transient(___12___, ___TOPROWS_3x12___),
-  [_TOPROWS_BP] = Kinesis_transient(___12___, ___TOPROWS_BP_3x12___),
-
-  [_NAV]    = Kinesis_transient(___12___, ___NAV_3x12___),
-  [_LAYERS] = Kinesis_transient(___12___, ___LAYERS_3x12___),
-  [_ADJUST] = Kinesis_transient(___12___, ___ADJUST_3x12___),
-  //[_RGB]    = Kinesis_transient(___12___, ___RGB_3x12___),
-};
+// See: users/ericgebhart.
diff --git a/keyboards/kinesis/keymaps/ericgebhart/rules.mk b/keyboards/kinesis/keymaps/ericgebhart/rules.mk
index 61115e927a..dd62550343 100644
--- a/keyboards/kinesis/keymaps/ericgebhart/rules.mk
+++ b/keyboards/kinesis/keymaps/ericgebhart/rules.mk
@@ -11,6 +11,5 @@ BACKLIGHT_ENABLE = no       # Enable keyboard backlight functionality
 MIDI_ENABLE = no            # MIDI controls
 AUDIO_ENABLE = no           # Audio output
 UNICODE_ENABLE = no         # Unicode
-RGBLIGHT_ENABLE = no        # Enable WS2812 RGB underlight. 
+RGBLIGHT_ENABLE = no        # Enable WS2812 RGB underlight.
 SLEEP_LED_ENABLE = no       # Breathing sleep LED during USB suspend
-
diff --git a/keyboards/laser_ninja/pumpkin_pad/config.h b/keyboards/laser_ninja/pumpkin_pad/config.h
new file mode 100644
index 0000000000..926d8788c1
--- /dev/null
+++ b/keyboards/laser_ninja/pumpkin_pad/config.h
@@ -0,0 +1,60 @@
+/* Copyright 2022 Joah Nelson (Jels)
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation,   either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program.  If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#pragma once
+
+#include "config_common.h"
+
+#ifdef RGB_MATRIX_ENABLE
+#    define RGB_DI_PIN A10
+#    define RGBLED_NUM 28
+#    define DRIVER_LED_TOTAL RGBLED_NUM
+#    define BACKLIGHT_LIMIT_VAL 200
+#    define ENABLE_RGB_MATRIX_ALPHAS_MODS
+#    define ENABLE_RGB_MATRIX_GRADIENT_UP_DOWN
+#    define ENABLE_RGB_MATRIX_GRADIENT_LEFT_RIGHT
+#    define ENABLE_RGB_MATRIX_BREATHING
+#    define ENABLE_RGB_MATRIX_BAND_SAT
+#    define ENABLE_RGB_MATRIX_BAND_VAL
+#    define ENABLE_RGB_MATRIX_BAND_PINWHEEL_SAT
+#    define ENABLE_RGB_MATRIX_BAND_PINWHEEL_VAL
+#    define ENABLE_RGB_MATRIX_BAND_SPIRAL_SAT
+#    define ENABLE_RGB_MATRIX_BAND_SPIRAL_VAL
+#    define ENABLE_RGB_MATRIX_CYCLE_ALL
+#    define ENABLE_RGB_MATRIX_CYCLE_LEFT_RIGHT
+#    define ENABLE_RGB_MATRIX_CYCLE_UP_DOWN
+#    define ENABLE_RGB_MATRIX_RAINBOW_MOVING_CHEVRON
+#    define ENABLE_RGB_MATRIX_CYCLE_OUT_IN
+#    define ENABLE_RGB_MATRIX_CYCLE_OUT_IN_DUAL
+#    define ENABLE_RGB_MATRIX_CYCLE_PINWHEEL
+#    define ENABLE_RGB_MATRIX_CYCLE_SPIRAL
+#    define ENABLE_RGB_MATRIX_DUAL_BEACON
+#    define ENABLE_RGB_MATRIX_RAINBOW_BEACON
+#    define ENABLE_RGB_MATRIX_RAINBOW_PINWHEELS
+#    define ENABLE_RGB_MATRIX_RAINDROPS
+#    define ENABLE_RGB_MATRIX_JELLYBEAN_RAINDROPS
+#    define ENABLE_RGB_MATRIX_HUE_BREATHING
+#    define ENABLE_RGB_MATRIX_HUE_PENDULUM
+#    define ENABLE_RGB_MATRIX_HUE_WAVE
+#    define ENABLE_RGB_MATRIX_PIXEL_FRACTAL
+#    define ENABLE_RGB_MATRIX_PIXEL_FLOW
+#    define ENABLE_RGB_MATRIX_PIXEL_RAIN
+#endif
+
+/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */
+#define LOCKING_SUPPORT_ENABLE
+/* Locking resynchronize hack */
+#define LOCKING_RESYNC_ENABLE
diff --git a/keyboards/laser_ninja/pumpkin_pad/info.json b/keyboards/laser_ninja/pumpkin_pad/info.json
new file mode 100644
index 0000000000..cf37ffd9a5
--- /dev/null
+++ b/keyboards/laser_ninja/pumpkin_pad/info.json
@@ -0,0 +1,78 @@
+{
+    "keyboard_name": "Pumpkin Pad",
+    "manufacturer": "Laser Ninja",
+    "url": "",
+    "maintainer": "Jels",
+    "processor": "STM32F072",
+    "bootloader": "stm32-dfu",
+    "debounce": 5,
+    "features": {
+        "bootmagic": true,
+        "command": false,
+        "console": false,
+        "extrakey": false,
+        "mousekey": false,
+        "nkro": false,
+        "rgb_matrix": true
+    },
+    "matrix_pins": {
+        "direct": [
+            ["A9", "B3", "B9", "NO_PIN"],
+            ["A8", "B12", "A2", "A1"],
+            ["B15", "B14", "B13", "NO_PIN"]
+        ]
+    },
+    "usb": {
+        "vid": "0x6C6E",
+        "pid": "0x7070",
+        "device_version": "0.0.1"
+    },
+    "layouts": {
+        "LAYOUT": {
+            "layout": [
+                { "matrix": [0, 0], "x": 0.5, "y": 0 },
+                { "matrix": [0, 1], "x": 1.5, "y": 0 },
+                { "matrix": [0, 2], "x": 2.5, "y": 0 },
+                { "matrix": [1, 0], "x": 0, "y": 1 },
+                { "matrix": [1, 1], "x": 1, "y": 1 },
+                { "matrix": [1, 2], "x": 2, "y": 1 },
+                { "matrix": [1, 3], "x": 3, "y": 1 },
+                { "matrix": [2, 0], "x": 0.5, "y": 2 },
+                { "matrix": [2, 1], "x": 1.5, "y": 2 },
+                { "matrix": [2, 2], "x": 2.5, "y": 2 }
+            ]
+        }
+    },
+    "rgb_matrix": {
+        "driver": "WS2812",
+        "layout": [
+            { "flags": 2, "x": 36, "y": 3 },
+            { "flags": 2, "x": 86, "y": 2 },
+            { "flags": 2, "x": 138, "y": 2 },
+            { "flags": 2, "x": 188, "y": 2 },
+            { "flags": 2, "x": 215, "y": 16 },
+            { "flags": 2, "x": 215, "y": 16 },
+            { "flags": 4, "matrix": [0, 2], "x": 167, "y": 17 },
+            { "flags": 4, "matrix": [0, 1], "x": 112, "y": 17 },
+            { "flags": 4, "matrix": [0, 0], "x": 57, "y": 17 },
+            { "flags": 2, "x": 9, "y": 15 },
+            { "flags": 2, "x": 9, "y": 15 },
+            { "flags": 2, "x": 6, "y": 34 },
+            { "flags": 2, "x": 9, "y": 48 },
+            { "flags": 2, "x": 9, "y": 48 },
+            { "flags": 4, "matrix": [1, 0], "x": 29, "y": 38 },
+            { "flags": 4, "matrix": [1, 1], "x": 84, "y": 38 },
+            { "flags": 4, "matrix": [1, 2], "x": 140, "y": 38 },
+            { "flags": 2, "x": 218, "y": 34 },
+            { "flags": 2, "x": 215, "y": 48 },
+            { "flags": 2, "x": 215, "y": 48 },
+            { "flags": 2, "x": 188, "y": 61 },
+            { "flags": 4, "matrix": [2, 2], "x": 167, "y": 59 },
+            { "flags": 2, "x": 138, "y": 61 },
+            { "flags": 4, "matrix": [2, 1], "x": 112, "y": 59 },
+            { "flags": 2, "x": 86, "y": 61 },
+            { "flags": 4, "matrix": [2, 0], "x": 57, "y": 59 },
+            { "flags": 2, "x": 36, "y": 61 }
+        ]
+    }
+}
diff --git a/keyboards/laser_ninja/pumpkin_pad/keymaps/default/keymap.c b/keyboards/laser_ninja/pumpkin_pad/keymaps/default/keymap.c
new file mode 100644
index 0000000000..8b60519b90
--- /dev/null
+++ b/keyboards/laser_ninja/pumpkin_pad/keymaps/default/keymap.c
@@ -0,0 +1,31 @@
+ /* Copyright 2022 Joah Nelson (Jels)
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation,   either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program.  If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#include QMK_KEYBOARD_H
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+
+[0] = LAYOUT(
+    KC_F1, KC_F2, KC_F3,
+    KC_F4, KC_F5, KC_F6, KC_F7,
+    KC_F8, MO(1), KC_F10
+),
+[1] = LAYOUT(
+    RGB_TOG, RGB_MOD, RGB_RMOD,
+    RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD,
+    RGB_VAI, RGB_VAD, _______
+)
+};
diff --git a/keyboards/laser_ninja/pumpkin_pad/keymaps/via/keymap.c b/keyboards/laser_ninja/pumpkin_pad/keymaps/via/keymap.c
new file mode 100644
index 0000000000..a63a5a0047
--- /dev/null
+++ b/keyboards/laser_ninja/pumpkin_pad/keymaps/via/keymap.c
@@ -0,0 +1,41 @@
+ /* Copyright 2022 Joah Nelson (Jels)
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation,   either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program.  If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#include QMK_KEYBOARD_H
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+
+[0] = LAYOUT(
+    KC_F1, KC_F2, KC_F3,
+    KC_F4, KC_F5, KC_F6, KC_F7,
+    KC_F8, MO(1), KC_F10
+),
+[1] = LAYOUT(
+    RGB_TOG, RGB_MOD, RGB_RMOD,
+    RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD,
+    RGB_VAI, RGB_VAD, _______
+),
+[2] = LAYOUT(
+    _______, _______, _______,
+    _______, _______, _______, _______,
+    _______, _______, _______
+),
+[3] = LAYOUT(
+    _______, _______, _______,
+    _______, _______, _______, _______,
+    _______, _______, _______
+)
+};
diff --git a/keyboards/laser_ninja/pumpkin_pad/keymaps/via/rules.mk b/keyboards/laser_ninja/pumpkin_pad/keymaps/via/rules.mk
new file mode 100644
index 0000000000..1e5b99807c
--- /dev/null
+++ b/keyboards/laser_ninja/pumpkin_pad/keymaps/via/rules.mk
@@ -0,0 +1 @@
+VIA_ENABLE = yes
diff --git a/keyboards/laser_ninja/pumpkin_pad/readme.md b/keyboards/laser_ninja/pumpkin_pad/readme.md
new file mode 100644
index 0000000000..452f4f6723
--- /dev/null
+++ b/keyboards/laser_ninja/pumpkin_pad/readme.md
@@ -0,0 +1,23 @@
+# Pumpkin Pad
+
+![pumpkin-pad](https://i.imgur.com/jFkl9rwh.jpg)
+
+A 60% PCB
+
+-   Keyboard Maintainer: [Jels](https://github.com/Jels02)
+-   Hardware Supported: Pumpkin Pad PCB
+-   Hardware Availabililty: [Laser_Ninja](https://kennui.com/w/Laser_Ninja)
+
+Make example for this keyboard (after setting up your build environment):
+
+    make laser_ninja/pumpkin_pad:default
+
+Flashing example for this keyboard:
+
+    make laser_ninja/pumpkin_pad:default:flash
+
+See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs).
+
+-   **Bootmagic reset**: Hold down the top left key and plug in the keyboard
+-   **Physical reset button**: Briefly press the button on the back of the PCB
+-   **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available
diff --git a/keyboards/laser_ninja/pumpkin_pad/rules.mk b/keyboards/laser_ninja/pumpkin_pad/rules.mk
new file mode 100644
index 0000000000..08a1c1568c
--- /dev/null
+++ b/keyboards/laser_ninja/pumpkin_pad/rules.mk
@@ -0,0 +1 @@
+# This file is intentionally left blank.
diff --git a/keyboards/montsinger/rebound/rev4/keymaps/ericgebhart/keymap.c b/keyboards/montsinger/rebound/rev4/keymaps/ericgebhart/keymap.c
index 59f2a23733..c534fe3c6d 100644
--- a/keyboards/montsinger/rebound/rev4/keymaps/ericgebhart/keymap.c
+++ b/keyboards/montsinger/rebound/rev4/keymaps/ericgebhart/keymap.c
@@ -1,5 +1,5 @@
 /*
-  Copyright 2018 Eric Gebhart <e.a.gebhart@gmail.com>
+  Copyright 2018-2022 Eric Gebhart <e.a.gebhart@gmail.com>
 
   This program is free software: you can redistribute it and/or modify
   it under the terms of the GNU General Public License as published by
@@ -14,88 +14,5 @@
   You should have received a copy of the GNU General Public License
   along with this program.  If not, see <http://www.gnu.org/licenses/>.
 */
-#include "ericgebhart.h"
-#include "layouts.h"
 
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
-  // Qwerty based Base layers
-  [_DVORAK]  = Rebound_base(___DVORAK___),
-  [_BEAKL]   = Rebound_base(___BEAKL15___),
-  [_COLEMAK] = Rebound_base(___COLEMAK_DH___),
-  [_QWERTY]  = Rebound_base(___QWERTY___),
-
-  // Bepo base layers
-  [_BEAKL_BP]  = Rebound_base_bepo(___BEAKL15_FR___),
-  [_DVORAK_BP] = Rebound_base_bepo(___DVORAK_FR___),
-  [_BEPO]      = Rebound_base_bepo6(___BEPO6___),
-
-  // Transient layers.
-  [_SYMB]    = Rebound_transient(___SYMB_BEAKLA_3x12___),
-  [_SYMB_BP] = Rebound_transient(___SYMB_BEAKLA_BP_3x12___),
-
-  [_KEYPAD]    = Rebound_transient(___KP_C_3x12___),
-  [_KEYPAD_BP] = Rebound_transient(___KP_C_BP_3x12___),
-
-  [_TOPROWS]    = Rebound_transient(___TOPROWS_3x12___),
-  [_TOPROWS_BP] = Rebound_transient(___TOPROWS_BP_3x12___),
-  [_NAV]    = Rebound_transient(___NAV_3x12___),
-  [_LAYERS] = Rebound_transient(___LAYERS_3x12___),
-};
-
-
-bool encoder_update_user(uint8_t index, bool clockwise) {
-  switch(get_highest_layer(layer_state)){
-  case _DVORAK:
-    if (clockwise) {
-      tap_code16(KC_VOLD);
-    } else {
-      tap_code16(KC_VOLU);
-    }
-    break;
-
-  case _NAV:
-    if (clockwise) {
-      tap_code16(S(KC_TAB));
-    } else {
-      tap_code16(KC_TAB);
-    }
-    break;
-  }
-  return true;
-}
-
-#ifdef OLED_ENABLE
-void oled_task_user(void) {
-  // Host Keyboard Layer Status
-  oled_write_P(PSTR(""), false);
-
-  switch (get_highest_layer(layer_state)) {
-  case _BASE:
-    oled_write_P(PSTR("Rebound\n"), false);
-    oled_write_P(PSTR("Rev4\n"), false);
-    break;
-  case _NAV:
-    oled_write_P(PSTR("Nav\n"), false);
-    break;
-  case _SYMB_BEAKL:
-  case _SYMB:
-    oled_write_P(PSTR("Symbols\n"), false);
-    break;
-  case _KEYPAD:
-    oled_write_P(PSTR("Top Rows\n"), false);
-    break;
-  default:
-    // Or use the write_ln shortcut over adding '\n' to the end of your string
-    oled_write_ln_P(PSTR("Undefined"), 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("CAPS") : PSTR("    "), false);
-  oled_write_P(led_state.scroll_lock ? PSTR("SCR ") : PSTR("    "), false);
-
-}
-
-#endif
+// See: users/ericgebhart.
diff --git a/keyboards/montsinger/rebound/rev4/keymaps/ericgebhart/layouts.h b/keyboards/montsinger/rebound/rev4/keymaps/ericgebhart/layouts.h
deleted file mode 100644
index f6b7fc1513..0000000000
--- a/keyboards/montsinger/rebound/rev4/keymaps/ericgebhart/layouts.h
+++ /dev/null
@@ -1,113 +0,0 @@
-/*
-  Copyright 2018 Eric Gebhart <e.a.gebhart@gmail.com>
-
-  This program is free software: you can redistribute it and/or modify
-  it under the terms of the GNU General Public License as published by
-  the Free Software Foundation, either version 2 of the License, or
-  (at your option) any later version.
-
-  This program is distributed in the hope that it will be useful,
-  but WITHOUT ANY WARRANTY; without even the implied warranty of
-  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-  GNU General Public License for more details.
-
-  You should have received a copy of the GNU General Public License
-  along with this program.  If not, see <http://www.gnu.org/licenses/>.
-*/
-
-/********************************************************************/
-/* Rebound 4 rows, 1x12, 3x13  */
-/********************************************************************/
-
-#define LVARG_rebound(...)    LAYOUT_all(__VA_ARGS__)
-#define LAYOUT_rebound_base(                                            \
-                            K01, K02, K03, K04, K05,                    \
-                            K06, K07, K08, K09, K0A,                    \
-                            K11, K12, K13, K14, K15,                    \
-                            K16, K17, K18, K19, K1A,                    \
-                            K21, K22, K23, K24, K25,                    \
-                            K26, K27, K28, K29, K2A                     \
-                                                                        ) \
-  LVARG_rebound(                                                        \
-                ROW1_LEFT(K01, K02, K03, K04, K05),                     \
-                ROW1_RIGHT(K06, K07, K08, K09, K0A),                    \
-                                                                        \
-                ROW2_LEFT(K11, K12, K13, K14, K15),                     \
-                KC_CCCV,                                                \
-                ROW2_RIGHT(K16, K17, K18, K19, K1A),                    \
-                                                                        \
-                ROW3_LEFT(K21, K22, K23, K24, K25),                     \
-                MO(_ADJUST),                                            \
-                ROW3_RIGHT(K26, K27, K28, K29, K2A),                    \
-                ___13_BOTTOM___                                         \
-                                                                        )
-
-#define LAYOUT_rebound_base_bepo(                                       \
-                                 K01, K02, K03, K04, K05,               \
-                                 K06, K07, K08, K09, K0A,               \
-                                 K11, K12, K13, K14, K15,               \
-                                 K16, K17, K18, K19, K1A,               \
-                                 K21, K22, K23, K24, K25,               \
-                                 K26, K27, K28, K29, K2A                \
-                                                                        ) \
-  LVARG_rebound(                                                        \
-                ROW1_LEFT_BP(K01, K02, K03, K04, K05),                  \
-                ROW1_RIGHT_BP(K06, K07, K08, K09, K0A),                 \
-                                                                        \
-                ROW2_LEFT_BP(K11, K12, K13, K14, K15),                  \
-                KC_CCCV,                                                \
-                ROW2_RIGHT_BP(K16, K17, K18, K19, K1A),                 \
-                                                                        \
-                ROW3_LEFT_BP(K21, K22, K23, K24, K25),                  \
-                MO(_ADJUST),                                            \
-                ROW3_RIGHT_BP(K26, K27, K28, K29, K2A),                 \
-                ___13_BOTTOM_BP___                                      \
-                                                                        )
-
-// Just for bepo because it's a 3x6 matrix on each side.
-// So 3 pairs of 6 keys, left and right.
-#define LAYOUT_rebound_base_bepo6(                                      \
-                                  K01, K02, K03, K04, K05, K06,         \
-                                  K07, K08, K09, K0A, K0B, K0C,         \
-                                  K11, K12, K13, K14, K15, K16,         \
-                                  K17, K18, K19, K1A, K1B, K1C,         \
-                                  K21, K22, K23, K24, K25, K26,         \
-                                  K27, K28, K29, K2A, K2B, K2C          \
-                                                                        ) \
-  LVARG_rebound(                                                        \
-                ROW1_LEFT_BP6(K01, K02, K03, K04, K05, K06),            \
-                ROW1_RIGHT_BP6(K07, K08, K09, K0A, K0B, K0C),           \
-                                                                        \
-                ROW2_LEFT_BP6(K11, K12, K13, K14, K15, K16),            \
-                KC_CCCV,                                                \
-                ROW2_RIGHT_BP6(K17, K18, K19, K1A, K1B, K1C),           \
-                                                                        \
-                ROW3_LEFT_BP6(K21, K22, K23, K24, K25, K26),            \
-                MO(_ADJUST),                                            \
-                ROW3_RIGHT_BP6(K27, K28, K29, K2A, K2B, K2C),           \
-                ___13_BOTTOM_BP___                                      \
-                                                                        )
-
-#define LAYOUT_rebound_transient(                                       \
-                                 K01, K02, K03, K04, K05, K06,          \
-                                 K07, K08, K09, K0A, K0B, K0C,          \
-                                 K11, K12, K13, K14, K15, K16,          \
-                                 K17, K18, K19, K1A, K1B, K1C,          \
-                                 K21, K22, K23, K24, K25, K26,          \
-                                 K27, K28, K29, K2A, K2B, K2C           \
-                                                                        ) \
-  LVARG_rebound(                                                        \
-                K01, K02, K03, K04, K05, K06,                           \
-                K07, K08, K09, K0A, K0B, K0C,                           \
-                K11, K12, K13, K14, K15, K16,                           \
-                ___,                                                    \
-                K17, K18, K19, K1A, K1B, K1C,                           \
-                K21, K22, K23, K24, K25, K26,                           \
-                ___,                                                    \
-                K27, K28, K29, K2A, K2B, K2C,                           \
-                ___, ___12___)
-
-#define Rebound_base(...)       LAYOUT_rebound_base(__VA_ARGS__)
-#define Rebound_base_bepo(...)  LAYOUT_rebound_base_bepo(__VA_ARGS__)
-#define Rebound_base_bepo6(...) LAYOUT_rebound_base_bepo6(__VA_ARGS__)
-#define Rebound_transient(...)  LAYOUT_rebound_transient(__VA_ARGS__)
diff --git a/keyboards/montsinger/rebound/rev4/keymaps/ericgebhart/rules.mk b/keyboards/montsinger/rebound/rev4/keymaps/ericgebhart/rules.mk
index cf27df39b8..28b8714100 100644
--- a/keyboards/montsinger/rebound/rev4/keymaps/ericgebhart/rules.mk
+++ b/keyboards/montsinger/rebound/rev4/keymaps/ericgebhart/rules.mk
@@ -1,6 +1,7 @@
 # Build Options
 #   change yes to no to disable
 #
+#
 BOOTMAGIC_ENABLE = no       # Enable Bootmagic Lite
 MOUSEKEY_ENABLE = yes       # Mouse keys
 EXTRAKEY_ENABLE = yes       # Audio control and System control
@@ -11,6 +12,7 @@ BACKLIGHT_ENABLE = no       # Enable keyboard backlight functionality
 MIDI_ENABLE = no            # MIDI controls
 AUDIO_ENABLE = no           # Audio output
 UNICODE_ENABLE = no         # Unicode
+BLUETOOTH_ENABLE = no       # Enable Bluetooth with the Adafruit EZ-Key HID
 RGBLIGHT_ENABLE = no        # Enable WS2812 RGB underlight.
 SLEEP_LED_ENABLE = no       # Breathing sleep LED during USB suspend
 TAP_DANCE_ENABLE = yes      # Enable the tap dance feature.
diff --git a/keyboards/nixkeyboards/day_off/config.h b/keyboards/nixkeyboards/day_off/config.h
new file mode 100644
index 0000000000..1ed4ea91e3
--- /dev/null
+++ b/keyboards/nixkeyboards/day_off/config.h
@@ -0,0 +1,43 @@
+/* Copyright 2021 Nix Keyboards
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program.  If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#pragma once
+
+#include "config_common.h"
+
+/* key matrix size */
+#define MATRIX_ROWS 5
+#define MATRIX_COLS 15
+
+#define MATRIX_ROW_PINS \
+    { B3, B7, F5, F4, F1 }
+#define MATRIX_COL_PINS \
+    { F0, F7, C7, C6, B6, B5, B4, D7, D6, D4, D5, D3, D2, D1, D0 }
+#define DIODE_DIRECTION COL2ROW
+
+/* encoder */
+#define ENCODERS_PAD_A \
+    { B0 }
+#define ENCODERS_PAD_B \
+    { B1 }
+#define ENCODER_RESOLUTION 4
+
+/* Debounce reduces chatter */
+#define DEBOUNCE 5
+
+/* Set the Bootmagic key to the escape key (default key doesn't exist 0,0) */
+#define BOOTMAGIC_LITE_ROW 0
+#define BOOTMAGIC_LITE_COLUMN 1
diff --git a/keyboards/nixkeyboards/day_off/day_off.c b/keyboards/nixkeyboards/day_off/day_off.c
new file mode 100755
index 0000000000..2694682f09
--- /dev/null
+++ b/keyboards/nixkeyboards/day_off/day_off.c
@@ -0,0 +1,16 @@
+/* Copyright 2021 Nix Keyboards
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program.  If not, see <http://www.gnu.org/licenses/>.
+ */
+#include "day_off.h"
diff --git a/keyboards/nixkeyboards/day_off/day_off.h b/keyboards/nixkeyboards/day_off/day_off.h
new file mode 100755
index 0000000000..f890b837e6
--- /dev/null
+++ b/keyboards/nixkeyboards/day_off/day_off.h
@@ -0,0 +1,32 @@
+/* Copyright 2021 Nix Keyboards
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program.  If not, see <http://www.gnu.org/licenses/>.
+ */
+#pragma once
+
+#include "quantum.h"
+
+#define LAYOUT_all(K001, K002, K003, K004, K005, K006, K007, K008, K009, K010,\
+	       K011, K012, K013, K014, K101, K102, K103, K104, K105, K106, \
+	       K107, K108, K109, K110, K111, K112, K113, K114, K200, K201, \
+	       K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, \
+	       K212, K213, K214, K300, K301, K302, K303, K304, K305, K306, \
+	       K307, K308, K309, K310, K311, K312, K313, K314, K400, K401, \
+	       K402, K403, K405, K407, K408, K410, K411, K412, K413, K414) \
+    {   {KC_NO, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K013, K014}, \
+      	{KC_NO, K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K113, K114}, \
+        {K200, K201, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, K213, K214}, \
+	{K300, K301, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, K312, K313, K314}, \
+	{K400, K401, K402, K403, KC_NO, K405, KC_NO, K407, K408, KC_NO, K410, K411, K412, K413, KC_NO} \
+    }
diff --git a/keyboards/nixkeyboards/day_off/info.json b/keyboards/nixkeyboards/day_off/info.json
new file mode 100755
index 0000000000..0c57be6e82
--- /dev/null
+++ b/keyboards/nixkeyboards/day_off/info.json
@@ -0,0 +1,87 @@
+{
+    "keyboard_name": "DayOff",
+    "manufacturer": "NixKeyboards",
+    "url": "nixkeyboards.com",
+    "maintainer": "Schrobie",
+    "usb": {
+        "vid": "0x6E6B",
+        "pid": "0x444F",
+        "device_version": "0.0.1"
+    },
+    "layouts": {
+        "LAYOUT_all": {
+            "layout": [
+                {"label":"~", "x":1.5, "y":0},
+                {"label":"!", "x":2.5, "y":0},
+                {"label":"@", "x":3.5, "y":0},
+                {"label":"#", "x":4.5, "y":0},
+                {"label":"$", "x":5.5, "y":0},
+                {"label":"%", "x":6.5, "y":0},
+                {"label":"^", "x":7.5, "y":0},
+                {"label":"&", "x":8.5, "y":0},
+                {"label":"*", "x":9.5, "y":0},
+                {"label":"(", "x":10.5, "y":0},
+                {"label":")", "x":11.5, "y":0},
+                {"label":"_", "x":12.5, "y":0},
+                {"label":"+", "x":13.5, "y":0},
+                {"label":"Bksp", "x":14.5, "y":0},
+                {"label":"Del", "x":15.5, "y":0},
+                {"label":"Tab", "x":1.5, "y":1, "w":1.5},
+                {"label":"Q", "x":3, "y":1},
+                {"label":"W", "x":4, "y":1},
+                {"label":"E", "x":5, "y":1},
+                {"label":"R", "x":6, "y":1},
+                {"label":"T", "x":7, "y":1},
+                {"label":"Y", "x":8, "y":1},
+                {"label":"U", "x":9, "y":1},
+                {"label":"I", "x":10, "y":1},
+                {"label":"O", "x":11, "y":1},
+                {"label":"P", "x":12, "y":1},
+                {"label":"{", "x":13, "y":1},
+                {"label":"}", "x":14, "y":1},
+                {"label":"|", "x":15, "y":1, "w":1.5},
+                {"label":"M1", "x":0, "y":2},
+                {"label":"Caps Lock", "x":1.5, "y":2, "w":1.75},
+                {"label":"A", "x":3.25, "y":2},
+                {"label":"S", "x":4.25, "y":2},
+                {"label":"D", "x":5.25, "y":2},
+                {"label":"F", "x":6.25, "y":2},
+                {"label":"G", "x":7.25, "y":2},
+                {"label":"H", "x":8.25, "y":2},
+                {"label":"J", "x":9.25, "y":2},
+                {"label":"K", "x":10.25, "y":2},
+                {"label":"L", "x":11.25, "y":2},
+                {"label":":", "x":12.25, "y":2},
+                {"label":"\"", "x":13.25, "y":2},
+                {"label":"Enter", "x":14.25, "y":2, "w":2.25},
+                {"label":"M2", "x":0, "y":3},
+                {"label":"", "x":1.5, "y":3, "w":1.25},
+                {"label":"Shift", "x":2.75, "y":3},
+                {"label":"Z", "x":3.75, "y":3},
+                {"label":"X", "x":4.75, "y":3},
+                {"label":"C", "x":5.75, "y":3},
+                {"label":"V", "x":6.75, "y":3},
+                {"label":"B", "x":7.75, "y":3},
+                {"label":"N", "x":8.75, "y":3},
+                {"label":"M", "x":9.75, "y":3},
+                {"label":"<", "x":10.75, "y":3},
+                {"label":">", "x":11.75, "y":3},
+                {"label":"?", "x":12.75, "y":3},
+                {"label":"Shift", "x":13.75, "y":3, "w":1.75},
+                {"label":"", "x":15.5, "y":3},
+                {"label":"M3", "x":0, "y":4},
+                {"label":"Ctrl", "x":1.5, "y":4, "w":1.25},
+                {"label":"Win", "x":2.75, "y":4, "w":1.25},
+                {"label":"Alt", "x":4, "y":4, "w":1.25},
+                {"label":"Space", "x":5.25, "y":4, "w":6.25},
+                {"label":"Space", "x":5.25, "y":4, "w":2.25},
+                {"label":"Mod", "x":7.5, "y":4, "w":1.25},
+                {"label":"Space", "x":8.75, "y":4, "w":2.25},
+                {"label":"Alt", "x":11.5, "y":4, "w":1.25},
+                {"label":"Win", "x":12.75, "y":4, "w":1.25},
+                {"label":"Menu", "x":14, "y":4, "w":1.25},
+                {"label":"Ctrl", "x":15.25, "y":4, "w":1.25}
+            ]
+        }
+    }
+}
diff --git a/keyboards/nixkeyboards/day_off/keymaps/default/keymap.c b/keyboards/nixkeyboards/day_off/keymaps/default/keymap.c
new file mode 100644
index 0000000000..61e879eb4f
--- /dev/null
+++ b/keyboards/nixkeyboards/day_off/keymaps/default/keymap.c
@@ -0,0 +1,60 @@
+/* Copyright 2021 Nix Keyboards
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program.  If not, see <http://www.gnu.org/licenses/>.
+ */
+#include QMK_KEYBOARD_H
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+    [0] = LAYOUT_all(
+                  KC_GESC,   KC_1,    KC_2,    KC_3,    KC_4,    KC_5,    KC_6,    KC_7,    KC_8,    KC_9,    KC_0,    KC_MINS, KC_EQL,   KC_BSPC,
+                  KC_TAB,    KC_Q,    KC_W,    KC_E,    KC_R,    KC_T,    KC_Y,    KC_U,    KC_I,    KC_O,    KC_P,    KC_LBRC, KC_RBRC,  KC_BSPC,
+      KC_MPLY,    KC_CAPS,   KC_A,    KC_S,    KC_D,    KC_F,    KC_G,    KC_H,    KC_J,    KC_K,    KC_L,    KC_SCLN, KC_QUOT, KC_BSLS,  KC_ENT,
+      KC_MNXT,    KC_LSFT,   KC_NUBS, KC_Z,    KC_X,    KC_C,    KC_V,    KC_B,    KC_N,    KC_M,    KC_COMM, KC_DOT,  KC_SLSH, KC_RSFT,  KC_BSLS,
+      KC_MPRV,    KC_LCTL,   KC_LALT, KC_LGUI,          KC_SPC,           KC_SPC,  KC_SPC,           KC_RGUI, KC_RALT, KC_APP,  KC_RCTL,  RESET
+    ),
+    
+    [1] = LAYOUT_all(
+                  RESET,     KC_1,    KC_2,    KC_3,    KC_4,    KC_5,    KC_6,    KC_7,    KC_8,    KC_9,    KC_0,    KC_MINS, KC_EQL,   KC_BSPC,
+                  KC_TAB,    KC_Q,    KC_W,    KC_E,    KC_R,    KC_T,    KC_Y,    KC_U,    KC_I,    KC_O,    KC_P,    KC_LBRC, KC_RBRC,  KC_BSPC,
+      KC_MPLY,    KC_CAPS,   KC_A,    KC_S,    KC_D,    KC_F,    KC_G,    KC_H,    KC_J,    KC_K,    KC_L,    KC_SCLN, KC_QUOT, KC_BSLS,  KC_ENT,
+      KC_MNXT,    KC_LSFT,   KC_NUBS, KC_Z,    KC_X,    KC_C,    KC_V,    KC_B,    KC_N,    KC_M,    KC_COMM, KC_DOT,  KC_SLSH, KC_RSFT,  KC_BSLS,
+      KC_MPRV,    KC_LCTL,   KC_LALT, KC_LGUI,          KC_SPC,           KC_SPC,  KC_SPC,           KC_RGUI, KC_RALT, KC_APP,  KC_RCTL,  RESET
+    ),
+    
+    [2] = LAYOUT_all(
+                     KC_GESC,   KC_1,    KC_2,    KC_3,    KC_4,    KC_5,    KC_6,    KC_7,    KC_8,    KC_9,    KC_0,    KC_MINS, KC_EQL,   KC_BSPC,
+                     KC_TAB,    KC_Q,    KC_W,    KC_E,    KC_R,    KC_T,    KC_Y,    KC_U,    KC_I,    KC_O,    KC_P,    KC_LBRC, KC_RBRC,  KC_BSPC,
+         KC_MPLY,    KC_CAPS,   KC_A,    KC_S,    KC_D,    KC_F,    KC_G,    KC_H,    KC_J,    KC_K,    KC_L,    KC_SCLN, KC_QUOT, KC_BSLS,  KC_ENT,
+         KC_MNXT,    KC_LSFT,   KC_NUBS, KC_Z,    KC_X,    KC_C,    KC_V,    KC_B,    KC_N,    KC_M,    KC_COMM, KC_DOT,  KC_SLSH, KC_RSFT,  KC_BSLS,
+         KC_MPRV,    KC_LCTL,   KC_LALT, KC_LGUI,          KC_SPC,           KC_SPC,  KC_SPC,           KC_RGUI, KC_RALT, KC_APP,  KC_RCTL,  RESET
+    ),
+    
+    [3] = LAYOUT_all(
+                     KC_GESC,   KC_1,    KC_2,    KC_3,    KC_4,    KC_5,    KC_6,    KC_7,    KC_8,    KC_9,    KC_0,    KC_MINS, KC_EQL,   KC_BSPC,
+                     KC_TAB,    KC_Q,    KC_W,    KC_E,    KC_R,    KC_T,    KC_Y,    KC_U,    KC_I,    KC_O,    KC_P,    KC_LBRC, KC_RBRC,  KC_BSPC,
+         KC_MPLY,    KC_CAPS,   KC_A,    KC_S,    KC_D,    KC_F,    KC_G,    KC_H,    KC_J,    KC_K,    KC_L,    KC_SCLN, KC_QUOT, KC_BSLS,  KC_ENT,
+         KC_MNXT,    KC_LSFT,   KC_NUBS, KC_Z,    KC_X,    KC_C,    KC_V,    KC_B,    KC_N,    KC_M,    KC_COMM, KC_DOT,  KC_SLSH, KC_RSFT,  KC_BSLS,
+         KC_MPRV,    KC_LCTL,   KC_LALT, KC_LGUI,          KC_SPC,           KC_SPC,  KC_SPC,           KC_RGUI, KC_RALT, KC_APP,  KC_RCTL,  RESET
+    ),
+};
+
+bool encoder_update_user(uint8_t index, bool clockwise) {
+    if (clockwise) {
+        tap_code(KC_VOLU);
+    } 
+    else {
+        tap_code(KC_VOLD);
+    }
+    return false;
+}
diff --git a/keyboards/nixkeyboards/day_off/readme.md b/keyboards/nixkeyboards/day_off/readme.md
new file mode 100644
index 0000000000..5525de91cf
--- /dev/null
+++ b/keyboards/nixkeyboards/day_off/readme.md
@@ -0,0 +1,23 @@
+# Day Off Vial Support
+
+[More info at nixkeyboards.com](https://nixkeyboards.com/)
+
+* Keyboard Maintainer: [Schrobie](https://github.com/schrobie)
+* Hardware Supported: Day Off PCBs, both solderable and hotswap
+* Hardware Availability: [Nix Keyboards](https://nixkeyboards.com/)
+
+Make example for this keyboard (after setting up your build environment):
+
+    make nixkeyboards/day_off:default
+
+Flashing example for this keyboard:
+
+    make nixkeyboards/day_off:default:flash
+
+See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs).
+
+Enter the bootloader in 3 ways:
+
+* **Bootmagic reset**: Hold down the key at (0,1) in the matrix (usually the top left key or Escape) and plug in the keyboard
+* **Physical reset button**: Briefly press the button on the back of the PCB - some may have pads you must short instead
+* **Keycode in layout**: Press the key mapped to `RESET` if it is available
diff --git a/keyboards/nixkeyboards/day_off/rules.mk b/keyboards/nixkeyboards/day_off/rules.mk
new file mode 100755
index 0000000000..05e63bf5b8
--- /dev/null
+++ b/keyboards/nixkeyboards/day_off/rules.mk
@@ -0,0 +1,19 @@
+# MCU name
+MCU = atmega32u4
+
+# Bootloader selection
+BOOTLOADER = atmel-dfu
+
+# Build Options
+#   change yes to no to disable
+#
+BOOTMAGIC_ENABLE = no       # Enable Bootmagic Lite
+MOUSEKEY_ENABLE = yes       # Mouse keys
+EXTRAKEY_ENABLE = yes       # Audio control and System control
+CONSOLE_ENABLE = no         # Console for debug
+COMMAND_ENABLE = no         # Commands for debug and configuration
+NKRO_ENABLE = yes           # Enable N-Key Rollover
+BACKLIGHT_ENABLE = no       # Enable keyboard backlight functionality
+RGBLIGHT_ENABLE = no        # Enable keyboard RGB underglow
+AUDIO_ENABLE = no           # Audio output
+ENCODER_ENABLE = yes
diff --git a/keyboards/preonic/keymaps/rmeli/config.h b/keyboards/preonic/keymaps/rmeli/config.h
new file mode 100644
index 0000000000..6f8b8b6c70
--- /dev/null
+++ b/keyboards/preonic/keymaps/rmeli/config.h
@@ -0,0 +1,45 @@
+/* Copyright 2015-2021 Jack Humbert
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program.  If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#pragma once
+
+#ifdef AUDIO_ENABLE
+#    define STARTUP_SONG SONG(PREONIC_SOUND)
+// #define STARTUP_SONG SONG(NO_SOUND)
+
+#    define DEFAULT_LAYER_SONGS \
+        { SONG(QWERTY_SOUND), SONG(COLEMAK_SOUND), SONG(DVORAK_SOUND) }
+#endif
+
+#define MUSIC_MASK (keycode != KC_NO)
+
+/*
+ * MIDI options
+ */
+
+/* enable basic MIDI features:
+   - MIDI notes can be sent when in Music mode is on
+*/
+
+#define MIDI_BASIC
+
+/* enable advanced MIDI features:
+   - MIDI notes can be added to the keymap
+   - Octave shift and transpose
+   - Virtual sustain, portamento, and modulation wheel
+   - etc.
+*/
+//#define MIDI_ADVANCED
diff --git a/keyboards/preonic/keymaps/rmeli/keymap.c b/keyboards/preonic/keymaps/rmeli/keymap.c
new file mode 100644
index 0000000000..da6269129e
--- /dev/null
+++ b/keyboards/preonic/keymaps/rmeli/keymap.c
@@ -0,0 +1,231 @@
+/* Copyright 2015-2021 Jack Humbert
+ * Copyright 2022 Rocco Meli <@RMeli>
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program.  If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#include QMK_KEYBOARD_H
+#include "muse.h"
+
+#include "rmeli.h"
+
+enum preonic_layers { _QWERTY, _COLEMAK, _LOWER, _RAISE, _ADJUST };
+enum preonic_keycodes { QWERTY = SAFE_RANGE, COLEMAK, LOWER, RAISE, BACKLIT };
+
+#define ____________________BOTTOM_L_x6_____________________ BACKLIT, KC_LCTL, KC_LALT, KC_LGUI, LOWER, KC_SPC
+#define ____________________BOTTOM_R_x6_____________________ KC_ENT, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT
+
+/* LAYOUT
+ *
+ * ,-----------------------------------------------------------.
+ * |    |    |    |    |    |    |    |    |    |    |    |    |
+ * |----+----+----+----+----+----+----+----+----+----+----+----|
+ * |    |    |    |    |    |    |    |    |    |    |    |    |
+ * |----+----+----+----+----+----+----+----+----+----+----+----|
+ * |    |    |    |    |    |    |    |    |    |    |    |    |
+ * |----+----+----+----+----+----+----+----+----+----+----+----|
+ * |    |    |    |    |    |    |    |    |    |    |    |    |
+ * |----+----+----+----+----+----+----+----+----+----+----+----|
+ * |    |    |    |    |    |    |    |    |    |    |    |    |
+ * `----+----+----+----+----+----+----+----+----+----+----+----'
+ */
+
+// Define wrapper for standard CRKB layout
+#define LAYOUT_wrapper(...) LAYOUT_preonic_grid(__VA_ARGS__)
+
+// clang-format off
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+
+[_QWERTY] = LAYOUT_wrapper(
+    ___________________NUMBER_LEFT_x6___________________, ___________________NUMBER_RIGHT_x6__________________,
+    ___________________QWERTY_L1_x6_____________________, ___________________QWERTY_R1_x6_____________________,
+    ___________________QWERTY_L2_x6_____________________, ___________________QWERTY_R2_x6_____________________,
+    ___________________QWERTY_L3_x6_____________________, ___________________QWERTY_R3_x6_____________________,
+    ____________________BOTTOM_L_x6_____________________, ____________________BOTTOM_R_x6_____________________
+),
+
+[_COLEMAK] = LAYOUT_wrapper(
+    ___________________NUMBER_LEFT_x6___________________, ___________________NUMBER_RIGHT_x6__________________,
+    ________________COLEMAK_MOD_DH_L1_x6________________, ________________COLEMAK_MOD_DH_R1_x6________________,
+    ________________COLEMAK_MOD_DH_L2_x6________________, ________________COLEMAK_MOD_DH_R2_x6________________,
+    ________________COLEMAK_MOD_DH_L3_x6________________, ________________COLEMAK_MOD_DH_R3_x6________________,
+    ____________________BOTTOM_L_x6_____________________, ____________________BOTTOM_R_x6_____________________
+),
+
+[_LOWER] = LAYOUT_wrapper(
+  ____________________FUNC_LEFT_x6____________________, ____________________FUNC_RIGHT_x6___________________,
+  ___________________NUMBER_LEFT_x6___________________, ___________________NUMBER_RIGHT_x6__________________,
+  _______, ______________UNICODE_L2_x5________________, ________________NAV_R2_x5__________________, XXXXXXX,
+  _______, ______________UNICODE_L3_x5________________, ________________NAV_R3_x5__________________, _______,
+  ______________________BLANK_6x______________________, ______________________BLANK_6x______________________
+),
+
+[_RAISE] = LAYOUT_wrapper(
+  ___________________NUMBER_LEFT_x6___________________, ___________________NUMBER_RIGHT_x6__________________,
+  ___________________SYMBOL_LEFT_x6___________________, ___________________SYMBOL_RIGHT_x6__________________,
+  _______, ____________NAV_VIM_x4____________, XXXXXXX, ____________________SYMBOL_R2_x6____________________,
+  _______, _________________NONE_5x___________________, ____________________SYMBOL_R3_x6____________________,
+  ______________________BLANK_6x______________________, ______________________BLANK_6x______________________
+),
+
+[_ADJUST] = LAYOUT_wrapper(
+  QK_BOOT, _________________NONE_5x___________________, ______________________NONE_6x_______________________,
+  XXXXXXX, MU_ON,   AU_ON,   MI_ON,   XXXXXXX, XXXXXXX, _______________CONFIG_R1_x5________________,  QWERTY,
+  RESET,   MU_MOD,  AU_TOG,  MI_TOG,  XXXXXXX, XXXXXXX, _______________CONFIG_R2_x5________________, XXXXXXX,
+  XXXXXXX, MU_OFF,  AU_OFF,  MI_OFF,  XXXXXXX, XXXXXXX, _______________CONFIG_R3_x5________________, COLEMAK,
+  ______________________BLANK_6x______________________, ______________________BLANK_6x______________________
+)
+};
+// clang-format on
+
+bool process_record_user(uint16_t keycode, keyrecord_t *record) {
+    switch (keycode) {
+        case QWERTY:
+            if (record->event.pressed) {
+                set_single_persistent_default_layer(_QWERTY);
+            }
+            return false;
+            break;
+        case COLEMAK:
+            if (record->event.pressed) {
+                set_single_persistent_default_layer(_COLEMAK);
+            }
+            return false;
+            break;
+        case LOWER:
+            if (record->event.pressed) {
+                layer_on(_LOWER);
+                update_tri_layer(_LOWER, _RAISE, _ADJUST);
+            } else {
+                layer_off(_LOWER);
+                update_tri_layer(_LOWER, _RAISE, _ADJUST);
+            }
+            return false;
+            break;
+        case RAISE:
+            if (record->event.pressed) {
+                layer_on(_RAISE);
+                update_tri_layer(_LOWER, _RAISE, _ADJUST);
+            } else {
+                layer_off(_RAISE);
+                update_tri_layer(_LOWER, _RAISE, _ADJUST);
+            }
+            return false;
+            break;
+        case BACKLIT:
+            if (record->event.pressed) {
+                register_code(KC_RSFT);
+#ifdef BACKLIGHT_ENABLE
+                backlight_step();
+#endif
+#ifdef RGBLIGHT_ENABLE
+                rgblight_step();
+#endif
+#ifdef __AVR__
+                writePinLow(E6);
+#endif
+            } else {
+                unregister_code(KC_RSFT);
+#ifdef __AVR__
+                writePinHigh(E6);
+#endif
+            }
+            return false;
+            break;
+    }
+    return true;
+};
+
+bool     muse_mode      = false;
+uint8_t  last_muse_note = 0;
+uint16_t muse_counter   = 0;
+uint8_t  muse_offset    = 70;
+uint16_t muse_tempo     = 50;
+
+bool encoder_update_user(uint8_t index, bool clockwise) {
+    if (muse_mode) {
+        if (IS_LAYER_ON(_RAISE)) {
+            if (clockwise) {
+                muse_offset++;
+            } else {
+                muse_offset--;
+            }
+        } else {
+            if (clockwise) {
+                muse_tempo += 1;
+            } else {
+                muse_tempo -= 1;
+            }
+        }
+    } else {
+        if (clockwise) {
+            register_code(KC_PGDN);
+            unregister_code(KC_PGDN);
+        } else {
+            register_code(KC_PGUP);
+            unregister_code(KC_PGUP);
+        }
+    }
+    return true;
+}
+
+bool dip_switch_update_user(uint8_t index, bool active) {
+    switch (index) {
+        case 0:
+            if (active) {
+                layer_on(_ADJUST);
+            } else {
+                layer_off(_ADJUST);
+            }
+            break;
+        case 1:
+            if (active) {
+                muse_mode = true;
+            } else {
+                muse_mode = false;
+            }
+    }
+    return true;
+}
+
+void matrix_scan_user(void) {
+#ifdef AUDIO_ENABLE
+    if (muse_mode) {
+        if (muse_counter == 0) {
+            uint8_t muse_note = muse_offset + SCALE[muse_clock_pulse()];
+            if (muse_note != last_muse_note) {
+                stop_note(compute_freq_for_midi_note(last_muse_note));
+                play_note(compute_freq_for_midi_note(muse_note), 0xF);
+                last_muse_note = muse_note;
+            }
+        }
+        muse_counter = (muse_counter + 1) % muse_tempo;
+    } else {
+        if (muse_counter) {
+            stop_all_notes();
+            muse_counter = 0;
+        }
+    }
+#endif
+}
+
+bool music_mask_user(uint16_t keycode) {
+    switch (keycode) {
+        case RAISE:
+        case LOWER:
+            return false;
+        default:
+            return true;
+    }
+}
diff --git a/keyboards/preonic/keymaps/rmeli/readme.md b/keyboards/preonic/keymaps/rmeli/readme.md
new file mode 100644
index 0000000000..e911968dd9
--- /dev/null
+++ b/keyboards/preonic/keymaps/rmeli/readme.md
@@ -0,0 +1 @@
+# The default Preonic layout - largely based on the Planck's
\ No newline at end of file
diff --git a/keyboards/preonic/keymaps/rmeli/rules.mk b/keyboards/preonic/keymaps/rmeli/rules.mk
new file mode 100644
index 0000000000..3903cc1228
--- /dev/null
+++ b/keyboards/preonic/keymaps/rmeli/rules.mk
@@ -0,0 +1,12 @@
+TAP_DANCE_ENABLE = yes
+AUTO_SHIFT_ENABLE = no
+
+MAGIC_ENABLE = yes
+
+UNICODEMAP_ENABLE = yes
+
+# Turn off rev3_drop options
+RGBLIGHT_ENABLE = no
+MOUSEKEY_ENABLE = no
+
+SRC += muse.c
diff --git a/keyboards/splitkb/kyria/keymaps/ericgebhart/config.h b/keyboards/splitkb/kyria/keymaps/ericgebhart/config.h
new file mode 100755
index 0000000000..6f7578aa5d
--- /dev/null
+++ b/keyboards/splitkb/kyria/keymaps/ericgebhart/config.h
@@ -0,0 +1,25 @@
+/*
+This is the c configuration file for the keymap
+
+Copyright 2012 Jun Wako <wakojun@gmail.com>
+Copyright 2015 Jack Humbert
+
+This program is free software: you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation, either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program.  If not, see <http://www.gnu.org/licenses/>.
+*/
+
+#pragma once
+
+// otherwise the other promicro v3 isn't found
+#define SPLIT_USB_DETECT
+#define OLED_DISPLAY_128X64
diff --git a/keyboards/splitkb/kyria/keymaps/ericgebhart/keymap.c b/keyboards/splitkb/kyria/keymaps/ericgebhart/keymap.c
new file mode 100644
index 0000000000..c534fe3c6d
--- /dev/null
+++ b/keyboards/splitkb/kyria/keymaps/ericgebhart/keymap.c
@@ -0,0 +1,18 @@
+/*
+  Copyright 2018-2022 Eric Gebhart <e.a.gebhart@gmail.com>
+
+  This program is free software: you can redistribute it and/or modify
+  it under the terms of the GNU General Public License as published by
+  the Free Software Foundation, either version 2 of the License, or
+  (at your option) any later version.
+
+  This program is distributed in the hope that it will be useful,
+  but WITHOUT ANY WARRANTY; without even the implied warranty of
+  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+  GNU General Public License for more details.
+
+  You should have received a copy of the GNU General Public License
+  along with this program.  If not, see <http://www.gnu.org/licenses/>.
+*/
+
+// See: users/ericgebhart.
diff --git a/keyboards/splitkb/kyria/keymaps/ericgebhart/rules.mk b/keyboards/splitkb/kyria/keymaps/ericgebhart/rules.mk
new file mode 100644
index 0000000000..1946c18729
--- /dev/null
+++ b/keyboards/splitkb/kyria/keymaps/ericgebhart/rules.mk
@@ -0,0 +1,3 @@
+EXTRAKEY_ENABLE = no      # Audio control and System control
+ENCODER_ENABLE = no       # Enables the use of one or more encoders
+RGBLIGHT_ENABLE = no      # Enable keyboard RGB underglow
diff --git a/keyboards/xiudi/xd75/keymaps/ericgebhart/keymap.c b/keyboards/xiudi/xd75/keymaps/ericgebhart/keymap.c
index a500e4b682..c534fe3c6d 100644
--- a/keyboards/xiudi/xd75/keymaps/ericgebhart/keymap.c
+++ b/keyboards/xiudi/xd75/keymaps/ericgebhart/keymap.c
@@ -1,5 +1,5 @@
 /*
-  Copyright 2018 Eric Gebhart <e.a.gebhart@gmail.com>
+  Copyright 2018-2022 Eric Gebhart <e.a.gebhart@gmail.com>
 
   This program is free software: you can redistribute it and/or modify
   it under the terms of the GNU General Public License as published by
@@ -15,125 +15,4 @@
   along with this program.  If not, see <http://www.gnu.org/licenses/>.
 */
 
-#include "keymap_bepo.h"
-#include "ericgebhart.h"
-
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
-  // 4x10
-  [_DVORAK]  = BASE_5x15(___NUMS___, ___DVORAK___),
-  [_QWERTY]  = BASE_5x15(___NUMS___, ___QWERTY___),
-  [_COLEMAK] = BASE_5x15(___NUMS___, ___COLEMAK_DH___),
-  [_BEAKL]   = BASE_5x15(___BKLNUMS___, ___BEAKL15___),
-
-  //[_DVORAK_BP] = BASE_5x15_bepo(___DVORAK_FR___),
-  //[_BEAKL_BP]  = BASE_5x15_bepo(___BEAKL15_FR___),
-
-  // 4x12
-  //[_BEPO]      = BASE_5x15_bepo6(___BEPO6_FR___),
-
-  // transient macro takes a 4x12 for args
-  [_SYMB]    = TRANSIENT_5x15(___12___, ___SYMB_BEAKLA_3x12___),
-  //[_SYMB_BP] = TRANSIENT_5x15(___12___, ___SYMB_BEAKLA_BP_3x12___),
-
-  [_TOPROWS]    = TRANSIENT_5x15(___12___, ___TOPROWS_3x12___),
-  //[_TOPROWS_BP] = TRANSIENT_5x15(___12___, ___TOPROWS_BP_3x12___),
-
-  [_KEYPAD]    = TRANSIENT_5x15(___12___, ___KP_C_3x12___),
-  //[_KEYPAD_BP] = TRANSIENT_5x15(___12___, ___KP_C_BP_3x12___),
-
-  // Navigation and control
-  [_NAV]    = TRANSIENT_5x15(___12___, ___NAV_3x12___),
-  [_LAYERS] = TRANSIENT_5x15(___12___, ___LAYERS_3x12___),
-  //[_RGB]  = TRANSIENT_5x15(___12___, ___RGB_3x12___),
-  [_ADJUST]    = TRANSIENT_5x15(___12___, ___ADJUST_3x12___),
-};
-
-
-/********************************************************************************/
-/* Using layers to do RGB underlighting */
-/********************************************************************************/
-
-const rgblight_segment_t PROGMEM on_bepo[] = RGBLIGHT_LAYER_SEGMENTS(
-                                                                     {0, 2, HSV_AZURE}
-                                                                     );
-
-const rgblight_segment_t PROGMEM bepo[] = RGBLIGHT_LAYER_SEGMENTS(
-                                                                  {3, 2, HSV_MAGENTA}
-                                                                  );
-
-const rgblight_segment_t PROGMEM dvorak[] = RGBLIGHT_LAYER_SEGMENTS(
-                                                                    {3, 2, HSV_AZURE}
-                                                                    );
-
-const rgblight_segment_t PROGMEM media[] = RGBLIGHT_LAYER_SEGMENTS(
-                                                                   {5, 1, HSV_GREEN}
-                                                                   );
-
-const rgblight_segment_t PROGMEM symbol[] = RGBLIGHT_LAYER_SEGMENTS(
-                                                                    {4, 2, HSV_GOLD}
-                                                                    );
-
-const rgblight_segment_t PROGMEM keypad[] = RGBLIGHT_LAYER_SEGMENTS(
-                                                                    {4, 2, HSV_BLUE}
-                                                                    );
-
-const rgblight_segment_t PROGMEM layers[] = RGBLIGHT_LAYER_SEGMENTS(
-                                                                    {5, 1, HSV_RED}
-                                                                    );
-
-const rgblight_segment_t PROGMEM rgb[] = RGBLIGHT_LAYER_SEGMENTS(
-                                                                 {5, 1, HSV_ORANGE}
-                                                                 );
-
-const rgblight_segment_t* const PROGMEM rgb_layers[] = RGBLIGHT_LAYERS_LIST(on_bepo, bepo, dvorak, media, symbol,
-                                                                            keypad, layers, rgb);
-
-void keyboard_post_init_user(void) {
-  rgblight_sethsv_noeeprom(HSV_PURPLE);
-  rgblight_layers = rgb_layers;
-}
-
-layer_state_t layer_state_set_user(layer_state_t state) {
-  // rgblight_set_layer_state(0, !on_qwerty());
-  rgblight_set_layer_state(0, layer_state_cmp(state, _DVORAK));
-
-  rgblight_set_layer_state(1, layer_state_cmp(state, _BEPO));
-  rgblight_set_layer_state(2, layer_state_cmp(state, _DVORAK));
-  //|| layer_state_cmp(state, DVORAK_ON_BEPO)));
-  rgblight_set_layer_state(3, layer_state_cmp(state, _NAV));
-  rgblight_set_layer_state(4, layer_state_cmp(state, _SYMB) );
-
-  //(layer_state_cmp(state, SYMB) || (layer_state_cmp(state, SYMB_ON_BEPO))));
-  rgblight_set_layer_state(5, layer_state_cmp(state, _KEYPAD) );
-  ///(layer_state_cmp(state, KEYPAD) || (layer_state_cmp(state, KEYPAD_ON_BEPO))));
-  rgblight_set_layer_state(6, layer_state_cmp(state, _LAYERS));
-  rgblight_set_layer_state(7, layer_state_cmp(state, _RGB));
-  return state;
-}
-
-/* void suspend_power_down_user(void) { */
-/*   rgblight_disable(); */
-/* } */
-
-/* void suspend_wakeup_init_user(void) { */
-/*   rgblight_enable(); */
-/* } */
-
-/* bool is_shift_pressed = false; */
-
-/* bool led_update_user(led_t led_state) { */
-/*   rgblight_set_layer_state(2, is_shift_pressed != led_state.caps_lock); */
-/*   return true; */
-/* } */
-
-/* bool process_record_user(uint16_t keycode, keyrecord_t* record) { */
-/*   switch (keycode) { */
-/*   case KC_LSFT: */
-/*   case KC_RSFT: */
-/*     is_shift_pressed = record->event.pressed; */
-/*     rgblight_set_layer_state(2, is_shift_pressed != host_keyboard_led_state().caps_lock); */
-/*   default: */
-/*     return true; */
-/*   } */
-/* } */
+// See: users/ericgebhart.
diff --git a/keyboards/xiudi/xd75/keymaps/ericgebhart/readme.md b/keyboards/xiudi/xd75/keymaps/ericgebhart/readme.md
deleted file mode 100644
index a1c0236ed9..0000000000
--- a/keyboards/xiudi/xd75/keymaps/ericgebhart/readme.md
+++ /dev/null
@@ -1 +0,0 @@
-# The default keymap for xd75, with led controls
\ No newline at end of file
diff --git a/keyboards/xiudi/xd75/keymaps/ericgebhart/rules.mk b/keyboards/xiudi/xd75/keymaps/ericgebhart/rules.mk
index 11871f9c9d..f171387f29 100644
--- a/keyboards/xiudi/xd75/keymaps/ericgebhart/rules.mk
+++ b/keyboards/xiudi/xd75/keymaps/ericgebhart/rules.mk
@@ -1,3 +1,3 @@
 RGBLIGHT_ENABLE = yes
-RGBLIGHT_ANIMATION = yes
+RGBLIGHT_ANIMATION = no
 # BACKLIGHT_ENABLE = yes