Browse Source

Merge remote-tracking branch 'upstream/develop' into xap

Nick Brassel 4 years ago
parent
commit
33d779cc16
40 changed files with 1197 additions and 75 deletions
  1. 1 1
      .github/workflows/unit_test.yml
  2. 37 25
      docs/breaking_changes.md
  3. 3 0
      docs/feature_split_keyboard.md
  4. 5 1
      docs/flashing.md
  5. 1 1
      docs/zh-cn/flashing.md
  6. 1 0
      keyboards/checkerboards/quark_lp/keymaps/via/rules.mk
  7. 81 0
      keyboards/chlx/str_merro60/config.h
  8. 365 0
      keyboards/chlx/str_merro60/info.json
  9. 35 0
      keyboards/chlx/str_merro60/keymaps/ansi/keymap.c
  10. 35 0
      keyboards/chlx/str_merro60/keymaps/default/keymap.c
  11. 35 0
      keyboards/chlx/str_merro60/keymaps/hhkb/keymap.c
  12. 35 0
      keyboards/chlx/str_merro60/keymaps/iso/keymap.c
  13. 35 0
      keyboards/chlx/str_merro60/keymaps/tsangan/keymap.c
  14. 51 0
      keyboards/chlx/str_merro60/keymaps/via/keymap.c
  15. 3 0
      keyboards/chlx/str_merro60/keymaps/via/rules.mk
  16. 21 0
      keyboards/chlx/str_merro60/readme.md
  17. 20 0
      keyboards/chlx/str_merro60/rules.mk
  18. 18 0
      keyboards/chlx/str_merro60/str_merro60.c
  19. 249 0
      keyboards/chlx/str_merro60/str_merro60.h
  20. 26 0
      keyboards/handwired/dactyl_manuform/3x5_3/keymaps/default/keymap.c
  21. 3 3
      keyboards/handwired/dactyl_manuform/3x5_3/rules.mk
  22. 0 1
      keyboards/keebio/bamfk1/keymaps/default/rules.mk
  23. 1 0
      keyboards/keebio/bamfk1/rules.mk
  24. 1 1
      keyboards/keebio/iris/keymaps/sethBarberee/keymap.c
  25. 13 3
      keyboards/keebio/sinc/keymaps/sethBarberee/keymap.c
  26. 20 0
      keyboards/smithrune/iron165r2/f072/rules.mk
  27. 21 0
      keyboards/smithrune/iron165r2/f411/rules.mk
  28. 4 4
      keyboards/smithrune/iron165r2/readme.md
  29. 0 18
      keyboards/smithrune/iron165r2/rules.mk
  30. 1 1
      keyboards/wilba_tech/zeal60/keymaps/sethBarberee/keymap.c
  31. 3 0
      layouts/community/ortho_4x12/junonum/config.h
  32. 22 12
      layouts/community/ortho_4x12/junonum/keymap.c
  33. 2 1
      layouts/community/ortho_4x12/junonum/readme.md
  34. 2 0
      lib/python/qmk/cli/flash.py
  35. 6 2
      platforms/chibios/flash.mk
  36. 4 0
      users/sethBarberee/config.h
  37. 1 1
      users/sethBarberee/rgb_light.c
  38. 15 0
      users/sethBarberee/sethBarberee.c
  39. 5 0
      users/sethBarberee/sethBarberee.h
  40. 16 0
      users/sethBarberee/wrappers.h

+ 1 - 1
.github/workflows/unit_test.yml

@@ -20,7 +20,7 @@ jobs:
   test:
     runs-on: ubuntu-latest
 
-    container: qmkfm/base_container
+    container: qmkfm/qmk_cli
 
     steps:
     - uses: actions/checkout@v2

+ 37 - 25
docs/breaking_changes.md

@@ -47,30 +47,11 @@ Criteria for acceptance:
     * This should be in Markdown format, with a name in the format `PR12345.md`, substituting the digits for your PR's ID.
     * One strong recommendation that the ChangeLog document matches the PR description on GitHub, so as to ensure traceability.
 
-# Checklists
+## Checklists
 
 This section documents various processes we use when running the Breaking Changes process.
 
-## Creating the `develop` branch
-
-This happens immediately after the previous `develop` branch is merged.
-
-* `qmk_firmware` git commands
-    * [ ] `git checkout master`
-    * [ ] `git pull --ff-only`
-    * [ ] `git checkout develop`
-    * [ ] `git pull --ff-only`
-    * [ ] `git merge -no-ff master`
-    * [ ] Edit `readme.md`
-        * [ ] Add a big notice at the top that this is a testing branch.
-        * [ ] Include a link to this document
-    * [ ] `git commit -m 'Branch point for <DATE> Breaking Change'`
-    * [ ] `git tag breakpoint_<YYYY>_<MM>_<DD>`
-    * [ ] `git tag <next_version>` # Prevent the breakpoint tag from confusing version incrementing
-    * [ ] `git push upstream develop`
-    * [ ] `git push --tags`
-
-## 4 Weeks Before Merge
+### 4 Weeks Before Merge
 
 * `develop` is now closed to new PR's, only fixes for current PR's may be merged
 * Post call for testers
@@ -78,7 +59,7 @@ This happens immediately after the previous `develop` branch is merged.
     * [ ] GitHub PR
     * [ ] https://reddit.com/r/olkb
 
-## 2 Weeks Before Merge
+### 2 Weeks Before Merge
 
 * `develop` is now closed to existing PR merges, only bugfixes for previous merges may be included
 * Post call for testers
@@ -86,21 +67,21 @@ This happens immediately after the previous `develop` branch is merged.
     * [ ] GitHub PR
     * [ ] https://reddit.com/r/olkb
 
-## 1 Week Before Merge
+### 1 Week Before Merge
 
 * Announce that master will be closed from <2 Days Before> to <Day of Merge>
     * [ ] Discord
     * [ ] GitHub PR
     * [ ] https://reddit.com/r/olkb
 
-## 2 Days Before Merge
+### 2 Days Before Merge
 
 * Announce that master is closed for 2 days
     * [ ] Discord
     * [ ] GitHub PR
     * [ ] https://reddit.com/r/olkb
 
-## Day Of Merge
+### Day Of Merge
 
 * `qmk_firmware` git commands
     * [ ] `git checkout develop`
@@ -117,8 +98,39 @@ This happens immediately after the previous `develop` branch is merged.
     * [ ] `git checkout master`
     * [ ] `git pull --ff-only`
     * [ ] `git merge --no-ff develop`
+    * [ ] `git tag <next_version>` # Prevent the breakpoint tag from confusing version incrementing
+    * [ ] `git push upstream <next_version>`
     * [ ] `git push upstream master`
 
 ## Post-merge operations
 
+### Updating the `develop` branch
+
+This happens immediately after the previous `develop` branch is merged to `master`.
+
+* `qmk_firmware` git commands
+    * [ ] `git checkout master`
+    * [ ] `git pull --ff-only`
+    * [ ] `git checkout develop`
+    * [ ] `git pull --ff-only`
+    * [ ] `git merge --no-ff master`
+    * [ ] Edit `readme.md`
+        * [ ] Add a big notice at the top that this is a testing branch.
+        * [ ] Include a link to this document
+    * [ ] `git commit -m 'Branch point for <DATE> Breaking Change'`
+    * [ ] `git tag breakpoint_<YYYY>_<MM>_<DD>`
+    * [ ] `git push upstream breakpoint_<YYYY>_<MM>_<DD>`
+    
+* All submodules under `lib` now need to be checked against their QMK-based forks:
+    * [ ] `git submodule foreach git log -n1`
+    * [ ] Validate each submodule SHA1 matches the qmk fork, e.g. for ChibiOS:
+        * Go to [qmk/ChibiOS](https://github.com/qmk/ChibiOS)
+        * Compare the commit hash in the above output to the commit hash in the repository
+        * If there's a mismatch:
+            * [ ] `cd lib/chibios`
+            * [ ] `git fetch --all`
+            * [ ] `git checkout master`
+            * [ ] `git reset --hard <commit hash>`
+            * [ ] `git push origin master --force-with-lease`
+
 * (Optional) [update ChibiOS + ChibiOS-Contrib on `develop`](chibios_upgrade_instructions.md)

+ 3 - 0
docs/feature_split_keyboard.md

@@ -141,6 +141,9 @@ Next, you will have to flash the EEPROM files once for the correct hand to the c
 * ARM controllers with a DFU compatible bootloader (e.g. Proton-C):
   * `:dfu-util-split-left`
   * `:dfu-util-split-right`
+* ARM controllers with a UF2 compatible bootloader:
+  * `:uf2-split-left`
+  * `:uf2-split-right`
 
 Example:
 

+ 5 - 1
docs/flashing.md

@@ -266,7 +266,7 @@ Flashing sequence:
 ### `make` Targets
 
 * `:dfu-util`: Waits until an STM32 bootloader device is available, and then flashes the firmware.
-* `:dfu-util-split-left` and `:dfu-util-split-right`: Flashes the firmware as with `:avrdude`, but also sets the handedness setting in EEPROM. This is ideal for Proton-C-based split keyboards.
+* `:dfu-util-split-left` and `:dfu-util-split-right`: Flashes the firmware as with `:dfu-util`, but also sets the handedness setting in EEPROM. This is ideal for Proton-C-based split keyboards.
 * `:st-link-cli`: Allows you to flash the firmware via the ST-Link CLI utility, rather than dfu-util. Requires an ST-Link dongle.
 * `:st-flash`: Allows you to flash the firmware via the `st-flash` utility from [STLink Tools](https://github.com/stlink-org/stlink), rather than dfu-util. Requires an ST-Link dongle.
 
@@ -358,3 +358,7 @@ CLI Flashing sequence:
 2. Wait for the OS to detect the device
 3. Flash via QMK CLI eg. `qmk flash --keyboard handwired/onekey/blackpill_f411_tinyuf2 --keymap default`
 4. Wait for the keyboard to become available
+
+### `make` Targets
+
+* `:uf2-split-left` and `:uf2-split-right`: Flashes the firmware but also sets the handedness setting in EEPROM by generating a side specific firmware.

+ 1 - 1
docs/zh-cn/flashing.md

@@ -252,7 +252,7 @@ BOOTLOADER = stm32-dfu
 ### `make` 构建目标
 
 * `:dfu-util`: 每5秒检测一次直到发现可用的STM32 bootloader设备,然后进行固件刷写。
-* `:dfu-util-split-left` 和 `:dfu-util-split-right`: 同 `:avrdude` 一样会刷写固件,但额外地会设置手性设置到EEPROM中,对于基于Proton-C的分体式键盘这是理想的方法。
+* `:dfu-util-split-left` 和 `:dfu-util-split-right`: 同 `:dfu-util` 一样会刷写固件,但额外地会设置手性设置到EEPROM中,对于基于Proton-C的分体式键盘这是理想的方法。
 * `:st-link-cli`: 通过ST-Link CLI工具集而非dfu-util进行刷写,需要有ST-Link电子狗。
 * `:st-flash`: 通过[STLink工具](https://github.com/stlink-org/stlink)内的 `st-flash` 工具而非dfu-util进行刷写,需要有ST-Link电子狗。
 

+ 1 - 0
keyboards/checkerboards/quark_lp/keymaps/via/rules.mk

@@ -1 +1,2 @@
 VIA_ENABLE = yes
+LTO_ENABLE = yes

+ 81 - 0
keyboards/chlx/str_merro60/config.h

@@ -0,0 +1,81 @@
+/*
+Copyright 2022 Alexander Lee <chlx.bsmt@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
+
+#include "config_common.h"
+
+/* USB Device descriptor parameter */
+#define VENDOR_ID       0x4358 // "CX" - chlx
+#define PRODUCT_ID      0x0602
+#define DEVICE_VER      0x0100
+#define MANUFACTURER    chlx bsmt
+#define PRODUCT         chlx str.merro60
+
+/* key matrix size */
+#define MATRIX_ROWS 10
+#define MATRIX_COLS 7
+
+/*
+ * Keyboard Matrix Assignments
+ *
+ * Change this to how you wired your keyboard
+ * COLS: AVR pins used for columns, left to right
+ * ROWS: AVR pins used for rows, top to bottom
+ * DIODE_DIRECTION: COL2ROW = COL = Anode (+), ROW = Cathode (-, marked on diode)
+ *                  ROW2COL = ROW = Anode (+), COL = Cathode (-, marked on diode)
+ *
+ */
+#define MATRIX_ROW_PINS { C6, C7, F7, F6, F5, F4, F1, F0, B3, B7 }
+#define MATRIX_COL_PINS { D0, D1, D2, E6, B0, B1, B2 }
+#define UNUSED_PINS
+// #define UNUSED_PINS { B4, B5, B6, D4, D5, D6, D7 }
+
+/* COL2ROW, ROW2COL*/
+#define DIODE_DIRECTION ROW2COL
+
+#define RGB_DI_PIN D3
+#ifdef RGB_DI_PIN
+#   define RGBLIGHT_EFFECT_BREATHING
+#   define RGBLIGHT_EFFECT_RAINBOW_MOOD
+#   define RGBLIGHT_EFFECT_RAINBOW_SWIRL
+#   define RGBLIGHT_EFFECT_SNAKE
+#   define RGBLIGHT_EFFECT_KNIGHT
+#   define RGBLIGHT_EFFECT_CHRISTMAS
+#   define RGBLIGHT_EFFECT_STATIC_GRADIENT
+#   define RGBLIGHT_EFFECT_RGB_TEST
+#   define RGBLIGHT_EFFECT_ALTERNATING
+#   define RGBLIGHT_EFFECT_TWINKLE
+#   define RGBLIGHT_DEFAULT_MODE RGBLIGHT_MODE_RAINBOW_SWIRL + 5
+#   define RGBLED_NUM 12
+#   define RGBLIGHT_LED_MAP { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11 }
+#   define RGBLIGHT_HUE_STEP 8
+#   define RGBLIGHT_SAT_STEP 8
+#   define RGBLIGHT_VAL_STEP 8
+#   define RGBLIGHT_SLEEP
+#endif
+
+/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */
+#define DEBOUNCE 5
+
+/* 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
+
+/* VIA related config */
+#define VIA_EEPROM_LAYOUT_OPTIONS_SIZE 2

+ 365 - 0
keyboards/chlx/str_merro60/info.json

@@ -0,0 +1,365 @@
+{
+    "keyboard_name": "str.merro60",
+    "url": "www.github.com/gaclee3b",
+    "maintainer": "gaclee3b",
+    "layout_aliases": {
+        "LAYOUT_default": "LAYOUT_all",
+        "LAYOUT_hhkb": "LAYOUT_60_hhkb",
+        "LAYOUT_iso": "LAYOUT_60_iso_split_bs_rshift",
+        "LAYOUT_tsangan": "LAYOUT_60_tsangan_hhkb"
+    },
+    "layouts": {
+        "LAYOUT_all": {
+            "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": 6,      "y": 0},
+                {"x": 7,      "y": 0},
+                {"x": 8,      "y": 0},
+                {"x": 9,      "y": 0},
+                {"x": 10,     "y": 0},
+                {"x": 11,     "y": 0},
+                {"x": 12,     "y": 0},
+                {"x": 13,     "y": 0},
+                {"x": 14,     "y": 0},
+
+                {"x": 0,      "y": 1, "w": 1.5},
+                {"x": 1.5,    "y": 1},
+                {"x": 2.5,    "y": 1},
+                {"x": 3.5,    "y": 1},
+                {"x": 4.5,    "y": 1},
+                {"x": 5.5,    "y": 1},
+                {"x": 6.5,    "y": 1},
+                {"x": 7.5,    "y": 1},
+                {"x": 8.5,    "y": 1},
+                {"x": 9.5,    "y": 1},
+                {"x": 10.5,   "y": 1},
+                {"x": 11.5,   "y": 1},
+                {"x": 12.5,   "y": 1},
+                {"x": 13.5,   "y": 1, "w": 1.5},
+
+                {"x": 0,      "y": 2, "w": 1.75},
+                {"x": 1.75,   "y": 2},
+                {"x": 2.75,   "y": 2},
+                {"x": 3.75,   "y": 2},
+                {"x": 4.75,   "y": 2},
+                {"x": 5.75,   "y": 2},
+                {"x": 6.75,   "y": 2},
+                {"x": 7.75,   "y": 2},
+                {"x": 8.75,   "y": 2},
+                {"x": 9.75,   "y": 2},
+                {"x": 10.75,  "y": 2},
+                {"x": 11.75,  "y": 2},
+                {"x": 12.75,  "y": 2},
+                {"x": 13.75,  "y": 2, "w": 1.25},
+
+                {"x": 0,      "y": 3, "w": 1.25},
+                {"x": 1.25,   "y": 3},
+                {"x": 2.25,   "y": 3},
+                {"x": 3.25,   "y": 3},
+                {"x": 4.25,   "y": 3},
+                {"x": 5.25,   "y": 3},
+                {"x": 6.25,   "y": 3},
+                {"x": 7.25,   "y": 3},
+                {"x": 8.25,   "y": 3},
+                {"x": 9.25,   "y": 3},
+                {"x": 10.25,  "y": 3},
+                {"x": 11.25,  "y": 3},
+                {"x": 12.25,  "y": 3, "w": 1.75},
+                {"x": 14,     "y": 3},
+
+                {"x": 0,      "y": 4, "w": 1.25},
+                {"x": 1.25,   "y": 4, "w": 1.25},
+                {"x": 2.5,    "y": 4, "w": 1.25},
+                {"x": 3.75,   "y": 4, "w": 6.25},
+                {"x": 10,     "y": 4, "w": 1.25},
+                {"x": 11.25,  "y": 4, "w": 1.25},
+                {"x": 12.5,   "y": 4, "w": 1.25},
+                {"x": 13.75,  "y": 4, "w": 1.25}
+            ]
+        },
+        "LAYOUT_60_ansi": {
+            "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": 6,      "y": 0},
+                {"x": 7,      "y": 0},
+                {"x": 8,      "y": 0},
+                {"x": 9,      "y": 0},
+                {"x": 10,     "y": 0},
+                {"x": 11,     "y": 0},
+                {"x": 12,     "y": 0},
+                {"x": 13,     "y": 0, "w": 2},
+
+                {"x": 0,      "y": 1, "w": 1.5},
+                {"x": 1.5,    "y": 1},
+                {"x": 2.5,    "y": 1},
+                {"x": 3.5,    "y": 1},
+                {"x": 4.5,    "y": 1},
+                {"x": 5.5,    "y": 1},
+                {"x": 6.5,    "y": 1},
+                {"x": 7.5,    "y": 1},
+                {"x": 8.5,    "y": 1},
+                {"x": 9.5,    "y": 1},
+                {"x": 10.5,   "y": 1},
+                {"x": 11.5,   "y": 1},
+                {"x": 12.5,   "y": 1},
+                {"x": 13.5,   "y": 1, "w": 1.5},
+
+                {"x": 0,      "y": 2, "w": 1.75},
+                {"x": 1.75,   "y": 2},
+                {"x": 2.75,   "y": 2},
+                {"x": 3.75,   "y": 2},
+                {"x": 4.75,   "y": 2},
+                {"x": 5.75,   "y": 2},
+                {"x": 6.75,   "y": 2},
+                {"x": 7.75,   "y": 2},
+                {"x": 8.75,   "y": 2},
+                {"x": 9.75,   "y": 2},
+                {"x": 10.75,  "y": 2},
+                {"x": 11.75,  "y": 2},
+                {"x": 12.75,  "y": 2, "w": 2.25},
+
+                {"x": 0,      "y": 3, "w": 2.25},
+                {"x": 2.25,   "y": 3},
+                {"x": 3.25,   "y": 3},
+                {"x": 4.25,   "y": 3},
+                {"x": 5.25,   "y": 3},
+                {"x": 6.25,   "y": 3},
+                {"x": 7.25,   "y": 3},
+                {"x": 8.25,   "y": 3},
+                {"x": 9.25,   "y": 3},
+                {"x": 10.25,  "y": 3},
+                {"x": 11.25,  "y": 3},
+                {"x": 12.25,  "y": 3, "w": 2.75},
+
+                {"x": 0,      "y": 4, "w": 1.25},
+                {"x": 1.25,   "y": 4, "w": 1.25},
+                {"x": 2.5,    "y": 4, "w": 1.25},
+                {"x": 3.75,   "y": 4, "w": 6.25},
+                {"x": 10,     "y": 4, "w": 1.25},
+                {"x": 11.25,  "y": 4, "w": 1.25},
+                {"x": 12.5,   "y": 4, "w": 1.25},
+                {"x": 13.75,  "y": 4, "w": 1.25}
+            ]
+        },
+        "LAYOUT_60_hhkb": {
+            "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": 6,      "y": 0},
+                {"x": 7,      "y": 0},
+                {"x": 8,      "y": 0},
+                {"x": 9,      "y": 0},
+                {"x": 10,     "y": 0},
+                {"x": 11,     "y": 0},
+                {"x": 12,     "y": 0},
+                {"x": 13,     "y": 0},
+                {"x": 14,     "y": 0},
+
+                {"x": 0,      "y": 1, "w": 1.5},
+                {"x": 1.5,    "y": 1},
+                {"x": 2.5,    "y": 1},
+                {"x": 3.5,    "y": 1},
+                {"x": 4.5,    "y": 1},
+                {"x": 5.5,    "y": 1},
+                {"x": 6.5,    "y": 1},
+                {"x": 7.5,    "y": 1},
+                {"x": 8.5,    "y": 1},
+                {"x": 9.5,    "y": 1},
+                {"x": 10.5,   "y": 1},
+                {"x": 11.5,   "y": 1},
+                {"x": 12.5,   "y": 1},
+                {"x": 13.5,   "y": 1, "w": 1.5},
+
+                {"x": 0,      "y": 2, "w": 1.75},
+                {"x": 1.75,   "y": 2},
+                {"x": 2.75,   "y": 2},
+                {"x": 3.75,   "y": 2},
+                {"x": 4.75,   "y": 2},
+                {"x": 5.75,   "y": 2},
+                {"x": 6.75,   "y": 2},
+                {"x": 7.75,   "y": 2},
+                {"x": 8.75,   "y": 2},
+                {"x": 9.75,   "y": 2},
+                {"x": 10.75,  "y": 2},
+                {"x": 11.75,  "y": 2},
+                {"x": 12.75,  "y": 2, "w": 2.25},
+
+                {"x": 0,      "y": 3, "w": 2.25},
+                {"x": 2.25,   "y": 3},
+                {"x": 3.25,   "y": 3},
+                {"x": 4.25,   "y": 3},
+                {"x": 5.25,   "y": 3},
+                {"x": 6.25,   "y": 3},
+                {"x": 7.25,   "y": 3},
+                {"x": 8.25,   "y": 3},
+                {"x": 9.25,   "y": 3},
+                {"x": 10.25,  "y": 3},
+                {"x": 11.25,  "y": 3},
+                {"x": 12.25,  "y": 3, "w": 1.75},
+                {"x": 14,     "y": 3},
+
+                {"x": 1.5,    "y": 4},
+                {"x": 2.5,    "y": 4, "w": 1.5},
+                {"x": 4,      "y": 4, "w": 7},
+                {"x": 11,     "y": 4, "w": 1.5},
+                {"x": 12.5,   "y": 4}
+            ]
+        },
+        "LAYOUT_60_iso_split_bs_rshift": {
+            "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": 6,      "y": 0},
+                {"x": 7,      "y": 0},
+                {"x": 8,      "y": 0},
+                {"x": 9,      "y": 0},
+                {"x": 10,     "y": 0},
+                {"x": 11,     "y": 0},
+                {"x": 12,     "y": 0},
+                {"x": 13,     "y": 0},
+                {"x": 14,     "y": 0},
+
+                {"x": 0,      "y": 1, "w": 1.5},
+                {"x": 1.5,    "y": 1},
+                {"x": 2.5,    "y": 1},
+                {"x": 3.5,    "y": 1},
+                {"x": 4.5,    "y": 1},
+                {"x": 5.5,    "y": 1},
+                {"x": 6.5,    "y": 1},
+                {"x": 7.5,    "y": 1},
+                {"x": 8.5,    "y": 1},
+                {"x": 9.5,    "y": 1},
+                {"x": 10.5,   "y": 1},
+                {"x": 11.5,   "y": 1},
+                {"x": 12.5,   "y": 1},
+
+                {"x": 0,      "y": 2, "w": 1.75},
+                {"x": 1.75,   "y": 2},
+                {"x": 2.75,   "y": 2},
+                {"x": 3.75,   "y": 2},
+                {"x": 4.75,   "y": 2},
+                {"x": 5.75,   "y": 2},
+                {"x": 6.75,   "y": 2},
+                {"x": 7.75,   "y": 2},
+                {"x": 8.75,   "y": 2},
+                {"x": 9.75,   "y": 2},
+                {"x": 10.75,  "y": 2},
+                {"x": 11.75,  "y": 2},
+                {"x": 12.75,  "y": 2},
+                {"x": 13.75,  "y": 1, "w": 1.25, "h": 2},
+
+                {"x": 0,      "y": 3, "w": 1.25},
+                {"x": 1.25,   "y": 3},
+                {"x": 2.25,   "y": 3},
+                {"x": 3.25,   "y": 3},
+                {"x": 4.25,   "y": 3},
+                {"x": 5.25,   "y": 3},
+                {"x": 6.25,   "y": 3},
+                {"x": 7.25,   "y": 3},
+                {"x": 8.25,   "y": 3},
+                {"x": 9.25,   "y": 3},
+                {"x": 10.25,  "y": 3},
+                {"x": 11.25,  "y": 3},
+                {"x": 12.25,  "y": 3, "w": 1.75},
+                {"x": 14,     "y": 3},
+
+                {"x": 0,      "y": 4, "w": 1.25},
+                {"x": 1.25,   "y": 4, "w": 1.25},
+                {"x": 2.5,    "y": 4, "w": 1.25},
+                {"x": 3.75,   "y": 4, "w": 6.25},
+                {"x": 10,     "y": 4, "w": 1.25},
+                {"x": 11.25,  "y": 4, "w": 1.25},
+                {"x": 12.5,   "y": 4, "w": 1.25},
+                {"x": 13.75,  "y": 4, "w": 1.25}
+            ]
+        },
+        "LAYOUT_60_tsangan_hhkb": {
+            "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": 6,      "y": 0},
+                {"x": 7,      "y": 0},
+                {"x": 8,      "y": 0},
+                {"x": 9,      "y": 0},
+                {"x": 10,     "y": 0},
+                {"x": 11,     "y": 0},
+                {"x": 12,     "y": 0},
+                {"x": 13,     "y": 0},
+                {"x": 14,     "y": 0},
+
+                {"x": 0,      "y": 1, "w": 1.5},
+                {"x": 1.5,    "y": 1},
+                {"x": 2.5,    "y": 1},
+                {"x": 3.5,    "y": 1},
+                {"x": 4.5,    "y": 1},
+                {"x": 5.5,    "y": 1},
+                {"x": 6.5,    "y": 1},
+                {"x": 7.5,    "y": 1},
+                {"x": 8.5,    "y": 1},
+                {"x": 9.5,    "y": 1},
+                {"x": 10.5,   "y": 1},
+                {"x": 11.5,   "y": 1},
+                {"x": 12.5,   "y": 1},
+                {"x": 13.5,   "y": 1, "w": 1.5},
+
+                {"x": 0,      "y": 2, "w": 1.75},
+                {"x": 1.75,   "y": 2},
+                {"x": 2.75,   "y": 2},
+                {"x": 3.75,   "y": 2},
+                {"x": 4.75,   "y": 2},
+                {"x": 5.75,   "y": 2},
+                {"x": 6.75,   "y": 2},
+                {"x": 7.75,   "y": 2},
+                {"x": 8.75,   "y": 2},
+                {"x": 9.75,   "y": 2},
+                {"x": 10.75,  "y": 2},
+                {"x": 11.75,  "y": 2},
+                {"x": 12.75,  "y": 2, "w": 2.25},
+
+                {"x": 0,      "y": 3, "w": 2.25},
+                {"x": 2.25,   "y": 3},
+                {"x": 3.25,   "y": 3},
+                {"x": 4.25,   "y": 3},
+                {"x": 5.25,   "y": 3},
+                {"x": 6.25,   "y": 3},
+                {"x": 7.25,   "y": 3},
+                {"x": 8.25,   "y": 3},
+                {"x": 9.25,   "y": 3},
+                {"x": 10.25,  "y": 3},
+                {"x": 11.25,  "y": 3},
+                {"x": 12.25,  "y": 3, "w": 1.75},
+                {"x": 14,     "y": 3},
+
+                {"x": 0,      "y": 4, "w": 1.5},
+                {"x": 1.5,    "y": 4},
+                {"x": 2.5,    "y": 4, "w": 1.5},
+                {"x": 4,      "y": 4, "w": 7},
+                {"x": 11,     "y": 4, "w": 1.5},
+                {"x": 12.5,   "y": 4},
+                {"x": 13.5,   "y": 4, "w": 1.5}
+            ]
+        }
+    }
+}

+ 35 - 0
keyboards/chlx/str_merro60/keymaps/ansi/keymap.c

@@ -0,0 +1,35 @@
+/* 
+Copyright 2022 Alexander Lee <chlx.bsmt@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
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+
+[0] = LAYOUT_60_ansi(
+  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_BSLS,
+  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_ENT,
+  KC_LSFT,          KC_Z,    KC_X,    KC_C,    KC_V,    KC_B,    KC_N,    KC_M,    KC_COMM, KC_DOT,  KC_SLSH, KC_RSFT,
+  KC_LCTL, KC_LGUI,                   KC_LALT, KC_SPC,                             KC_RALT, KC_RGUI, MO(1),   KC_RCTL),
+
+[1] = LAYOUT_60_ansi(
+  KC_GRV,  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_DEL,
+  _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_UP,   _______, RESET,
+  _______, KC_VOLD, KC_VOLU, KC_MUTE, _______, _______, _______, _______, KC_HOME, KC_PGUP, KC_LEFT, KC_RGHT,          _______,
+  _______,          _______, _______, _______, _______, _______, _______, _______, KC_END,  KC_PGDN, KC_DOWN, _______,
+  _______, _______,                   _______, _______,                            _______, _______, _______, _______),
+};

+ 35 - 0
keyboards/chlx/str_merro60/keymaps/default/keymap.c

@@ -0,0 +1,35 @@
+/* 
+Copyright 2022 Alexander Lee <chlx.bsmt@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
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+
+[0] = LAYOUT_all(
+  KC_ESC,  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_BSLS, KC_GRV,
+  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_CAPS, KC_A,    KC_S,    KC_D,    KC_F,    KC_G,    KC_H,    KC_J,    KC_K,    KC_L,    KC_SCLN, KC_QUOT, KC_UP,   KC_ENT,
+  KC_LSFT, KC_LEFT, KC_Z,    KC_X,    KC_C,    KC_V,    KC_B,    KC_N,    KC_M,    KC_COMM, KC_DOT,  KC_SLSH, KC_RSFT, KC_RGHT,
+  KC_LCTL, KC_LGUI,                   KC_LALT, KC_SPC,                             KC_RALT, KC_RGUI, KC_DOWN, KC_RCTL),
+
+[1] = LAYOUT_all(
+  KC_GRV,  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_DEL,
+  _______, RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, _______, _______, _______, _______, RESET,
+  _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+  _______, _______, _______, _______, BL_DEC,  BL_TOGG, BL_INC,  BL_STEP, _______, _______, _______, _______, _______, _______,
+  _______, _______,                   _______, _______,                            _______, _______, _______, _______),
+};

+ 35 - 0
keyboards/chlx/str_merro60/keymaps/hhkb/keymap.c

@@ -0,0 +1,35 @@
+/* 
+Copyright 2022 Alexander Lee <chlx.bsmt@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
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+
+[0] = LAYOUT_60_hhkb(
+  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_BSLS, KC_GRV,
+  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_LCTL, KC_A,    KC_S,    KC_D,    KC_F,    KC_G,    KC_H,    KC_J,    KC_K,    KC_L,    KC_SCLN, KC_QUOT,          KC_ENT,
+  KC_LSFT,          KC_Z,    KC_X,    KC_C,    KC_V,    KC_B,    KC_N,    KC_M,    KC_COMM, KC_DOT,  KC_SLSH, KC_RSFT, MO(1),
+           KC_LGUI,                   KC_LALT, KC_SPC,                                      KC_RALT, KC_RGUI),
+
+[1] = LAYOUT_60_hhkb(
+  KC_GRV,  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_INS,  KC_DEL,
+  KC_CAPS, _______, _______, _______, _______, _______, _______, _______, KC_PSCR, KC_SLCK, KC_PAUS, KC_UP,   _______, RESET,
+  _______, KC_VOLD, KC_VOLU, KC_MUTE, _______, _______, _______, _______, KC_HOME, KC_PGUP, KC_LEFT, KC_RGHT,          _______,
+           _______, _______, _______, _______, _______, _______, _______, _______, KC_END,  KC_PGDN, KC_DOWN, _______, _______,
+           _______,                   _______, _______,                                     _______, _______),
+};

+ 35 - 0
keyboards/chlx/str_merro60/keymaps/iso/keymap.c

@@ -0,0 +1,35 @@
+/* 
+Copyright 2022 Alexander Lee <chlx.bsmt@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
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+
+[0] = LAYOUT_60_iso(
+  KC_ESC,  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_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_LCTL, KC_LGUI,                   KC_LALT, KC_SPC,                             KC_RALT, KC_RGUI, KC_APP,  KC_RCTL),
+
+[1] = LAYOUT_60_iso(
+  KC_GRV,  KC_F1,   KC_F2,   KC_F3,   KC_F4,   KC_F5,   KC_F6,   KC_F7,   KC_F8,   KC_F9,   KC_F10,  KC_F11,  KC_F12,  _______,
+  _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RESET,
+  _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+  _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+  _______, _______,                   _______, _______,                            _______, _______, _______, _______),
+};

+ 35 - 0
keyboards/chlx/str_merro60/keymaps/tsangan/keymap.c

@@ -0,0 +1,35 @@
+/* 
+Copyright 2022 Alexander Lee <chlx.bsmt@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
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+
+[0] = LAYOUT_60_tsangan_hhkb(
+  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_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_BSLS,
+  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_ENT,
+  KC_LSFT,          KC_Z,    KC_X,    KC_C,    KC_V,    KC_B,    KC_N,    KC_M,    KC_COMM, KC_DOT,  KC_SLSH, KC_RSFT, MO(1),
+  KC_LCTL, KC_LGUI,                   KC_LALT, KC_SPC,                                      KC_RALT, KC_RGUI, KC_RCTL),
+
+[1] = LAYOUT_60_tsangan_hhkb(
+  KC_GRV,  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_DEL,  _______,
+  _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RESET,
+  _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,          _______,
+  _______,          _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+  _______, _______,                   _______, _______,                                     _______, _______, _______),
+};

+ 51 - 0
keyboards/chlx/str_merro60/keymaps/via/keymap.c

@@ -0,0 +1,51 @@
+/* 
+Copyright 2022 Alexander Lee <chlx.bsmt@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
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+
+[0] = LAYOUT_all(
+  KC_ESC,  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_BSLS, KC_GRV,
+  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_CAPS, KC_A,    KC_S,    KC_D,    KC_F,    KC_G,    KC_H,    KC_J,    KC_K,    KC_L,    KC_SCLN, KC_QUOT, KC_UP,   KC_ENT,
+  KC_LSFT, KC_LEFT, KC_Z,    KC_X,    KC_C,    KC_V,    KC_B,    KC_N,    KC_M,    KC_COMM, KC_DOT,  KC_SLSH, KC_RSFT, KC_RGHT,
+  KC_LCTL, KC_LGUI,                   KC_LALT, KC_SPC,                             KC_RALT, KC_RGUI, KC_DOWN, KC_RCTL),
+
+[1] = LAYOUT_all(
+  KC_GRV,  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_DEL,
+  _______, RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, _______, _______, _______, _______, RESET,
+  _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+  _______, _______, _______, _______, BL_DEC,  BL_TOGG, BL_INC,  BL_STEP, _______, _______, _______, _______, _______, _______,
+  _______, _______,                   _______, _______,                            _______, _______, _______, _______),
+
+[2] = LAYOUT_all(
+  _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+  _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+  _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+  _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+  _______, _______,                   _______, _______,                            _______, _______, _______, _______),
+
+[3] = LAYOUT_all(
+  _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+  _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+  _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+  _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+  _______, _______,                   _______, _______,                            _______, _______, _______, _______),
+
+};
+

+ 3 - 0
keyboards/chlx/str_merro60/keymaps/via/rules.mk

@@ -0,0 +1,3 @@
+VIA_ENABLE = yes
+LTO_ENABLE = yes
+

+ 21 - 0
keyboards/chlx/str_merro60/readme.md

@@ -0,0 +1,21 @@
+# str.merro60
+
+str.merro60 PCB
+
+A standard 60% format keyboard pcb with USB-C and unified daughterboard compatibility.
+Has modified cutouts to allow usage of certain tray mount cases into gummy gasket o-ring mount.
+Has RGB underglow.
+
+* Keyboard Maintainer: [Alexander Lee](https://github.com/gaclee3b)
+* Hardware Supported: chlx PCB str.merro60.1.1
+
+Enter bootloader mode by any of the following options -
+- When unplugged, holding the top-left key (typically ESC) while plugging in the keyboard
+- When plugged in, pressing and releasing the reset button on the pcb bottom behind the CAPSLOCK / A-key region
+- When plugged in, shorting out the two reset metal contacts near the spacebar switch location (NOT the spacebar switch pin holes)
+
+Make example for this keyboard (after setting up your build environment):
+
+    make chlx/str_merro60:default
+
+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).

+ 20 - 0
keyboards/chlx/str_merro60/rules.mk

@@ -0,0 +1,20 @@
+# MCU name
+MCU = atmega32u4
+
+# Bootloader selection
+BOOTLOADER = atmel-dfu
+
+# Build Options
+#   change yes to no to disable
+#
+BOOTMAGIC_ENABLE = yes      # 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 = yes       # Enable keyboard RGB underglow
+AUDIO_ENABLE = no           # Audio output
+
+Layouts = 60_ansi 60_ansi_split_bs_rshift 60_hhkb 60_iso 60_tsangan_hhkb

+ 18 - 0
keyboards/chlx/str_merro60/str_merro60.c

@@ -0,0 +1,18 @@
+/* 
+Copyright 2021 Alexander Lee <chlx.bsmt@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 "str_merro60.h"

+ 249 - 0
keyboards/chlx/str_merro60/str_merro60.h

@@ -0,0 +1,249 @@
+/* 
+Copyright 2022 Alexander Lee <chlx.bsmt@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
+
+#include "quantum.h"
+
+// Corresponding changes to the layout names and/or definitions must also be made to info.json
+
+#define XXX KC_NO
+
+/* //////////////////// LAYOUT_all ////////////////////
+ * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐
+ * │   │   │   │   │   │   │   │   │   │   │   │   │   │   │   │
+ * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┤
+ * │     │   │   │   │   │   │   │   │   │   │   │   │   │     │
+ * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬────┤
+ * │      │   │   │   │   │   │   │   │   │   │   │   │   │    │
+ * ├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┴┬───┤
+ * │    │   │   │   │   │   │   │   │   │   │   │   │      │   │
+ * ├────┼───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬────┬┴───┤
+ * │    │    │    │    (6.25u)             │    │    │    │    │
+ * └────┴────┴────┴────────────────────────┴────┴────┴────┴────┘
+*/
+
+#define LAYOUT_all( \
+    k00, k10, k01, k11, k02, k12, k03, k13, k04, k14, k05, k15, k06, k16, k96, \
+    k20, k30, k21, k31, k22, k32, k23, k33, k24, k34, k25, k35, k26, k36,      \
+    k40, k50, k41, k51, k42, k52, k43, k53, k44, k54, k45, k55, k46, k56,      \
+    k60, k70, k61, k71, k62, k72, k63, k73, k64, k74, k65, k75, k66, k76,      \
+    k80, k90,           k82, k92,                k94, k85, k95, k86            \
+) { \
+    { k00, k01, k02, k03, k04, k05, k06 }, \
+    { k10, k11, k12, k13, k14, k15, k16 }, \
+    { k20, k21, k22, k23, k24, k25, k26 }, \
+    { k30, k31, k32, k33, k34, k35, k36 }, \
+    { k40, k41, k42, k43, k44, k45, k46 }, \
+    { k50, k51, k52, k53, k54, k55, k56 }, \
+    { k60, k61, k62, k63, k64, k65, k66 }, \
+    { k70, k71, k72, k73, k74, k75, k76 }, \
+    { k80, XXX, k82, XXX, XXX, k85, k86 }, \
+    { k90, XXX, k92, XXX, k94, k95, k96 }  \
+}
+
+/* //////////////////// LAYOUT_60_ansi ////////////////////
+ * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐
+ * │   │   │   │   │   │   │   │   │   │   │   │   │   │       │
+ * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤
+ * │     │   │   │   │   │   │   │   │   │   │   │   │   │     │
+ * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┤
+ * │      │   │   │   │   │   │   │   │   │   │   │   │        │
+ * ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────────┤
+ * │        │   │   │   │   │   │   │   │   │   │   │          │
+ * ├────┬───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬────┬────┤
+ * │    │    │    │    (6.25u)             │    │    │    │    │
+ * └────┴────┴────┴────────────────────────┴────┴────┴────┴────┘
+*/
+#define LAYOUT_60_ansi( \
+    k00, k10, k01, k11, k02, k12, k03, k13, k04, k14, k05, k15, k06, k16,      \
+    k20, k30, k21, k31, k22, k32, k23, k33, k24, k34, k25, k35, k26, k36,      \
+    k40, k50, k41, k51, k42, k52, k43, k53, k44, k54, k45, k55,      k56,      \
+    k60,      k61, k71, k62, k72, k63, k73, k64, k74, k65, k75, k66,           \
+    k80, k90,           k82, k92,                k94, k85, k95, k86            \
+) { \
+    { k00, k01, k02, k03, k04, k05, k06 }, \
+    { k10, k11, k12, k13, k14, k15, k16 }, \
+    { k20, k21, k22, k23, k24, k25, k26 }, \
+    { k30, k31, k32, k33, k34, k35, k36 }, \
+    { k40, k41, k42, k43, k44, k45, XXX }, \
+    { k50, k51, k52, k53, k54, k55, k56 }, \
+    { k60, k61, k62, k63, k64, k65, k66 }, \
+    { XXX, k71, k72, k73, k74, k75, XXX }, \
+    { k80, XXX, k82, XXX, XXX, k85, k86 }, \
+    { k90, XXX, k92, XXX, k94, k95, XXX }  \
+}
+
+/* //////////////////// LAYOUT_60_ansi_split_bs_rshift ////////////////////
+ * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐
+ * │   │   │   │   │   │   │   │   │   │   │   │   │   │   │   │
+ * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┤
+ * │     │   │   │   │   │   │   │   │   │   │   │   │   │     │
+ * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┤
+ * │      │   │   │   │   │   │   │   │   │   │   │   │        │
+ * ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬───┤
+ * │        │   │   │   │   │   │   │   │   │   │   │      │   │
+ * ├────┬───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬────┬┴───┤
+ * │    │    │    │    (6.25u)             │    │    │    │    │
+ * └────┴────┴────┴────────────────────────┴────┴────┴────┴────┘
+*/
+#define LAYOUT_60_ansi_split_bs_rshift( \
+    k00, k10, k01, k11, k02, k12, k03, k13, k04, k14, k05, k15, k06, k16, k96, \
+    k20, k30, k21, k31, k22, k32, k23, k33, k24, k34, k25, k35, k26, k36,      \
+    k40, k50, k41, k51, k42, k52, k43, k53, k44, k54, k45, k55,      k56,      \
+    k60,      k61, k71, k62, k72, k63, k73, k64, k74, k65, k75, k66, k76,      \
+    k80, k90,           k82, k92,                k94, k85, k95, k86            \
+) { \
+    { k00, k01, k02, k03, k04, k05, k06 }, \
+    { k10, k11, k12, k13, k14, k15, k16 }, \
+    { k20, k21, k22, k23, k24, k25, k26 }, \
+    { k30, k31, k32, k33, k34, k35, k36 }, \
+    { k40, k41, k42, k43, k44, k45, XXX }, \
+    { k50, k51, k52, k53, k54, k55, k56 }, \
+    { k60, k61, k62, k63, k64, k65, k66 }, \
+    { XXX, k71, k72, k73, k74, k75, k76 }, \
+    { k80, XXX, k82, XXX, XXX, k85, k86 }, \
+    { k90, XXX, k92, XXX, k94, k95, k96 }  \
+}
+
+/* //////////////////// LAYOUT_60_hhkb ////////////////////
+ * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐
+ * │   │   │   │   │   │   │   │   │   │   │   │   │   │   │   │
+ * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┤
+ * │     │   │   │   │   │   │   │   │   │   │   │   │   │     │
+ * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┤
+ * │      │   │   │   │   │   │   │   │   │   │   │   │        │
+ * ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬───┤
+ * │        │   │   │   │   │   │   │   │   │   │   │      │   │
+ * ├─────┬──┴┬──┴──┬┴───┴───┴───┴───┴───┴───┴──┬┴───┴┬───┬─┴───┤
+ * │▓▓▓▓▓│   │     │   (7u)                    │     │   │▓▓▓▓▓│
+ * └─────┴───┴─────┴───────────────────────────┴─────┴───┴─────┘
+*/
+#define LAYOUT_60_hhkb( \
+    k00, k10, k01, k11, k02, k12, k03, k13, k04, k14, k05, k15, k06, k16, k96, \
+    k20, k30, k21, k31, k22, k32, k23, k33, k24, k34, k25, k35, k26, k36,      \
+    k40, k50, k41, k51, k42, k52, k43, k53, k44, k54, k45, k55,      k56,      \
+    k60,      k61, k71, k62, k72, k63, k73, k64, k74, k65, k75, k66, k76,      \
+         k90,           k82, k92,                     k85, k95                 \
+) { \
+    { k00, k01, k02, k03, k04, k05, k06 }, \
+    { k10, k11, k12, k13, k14, k15, k16 }, \
+    { k20, k21, k22, k23, k24, k25, k26 }, \
+    { k30, k31, k32, k33, k34, k35, k36 }, \
+    { k40, k41, k42, k43, k44, k45, XXX }, \
+    { k50, k51, k52, k53, k54, k55, k56 }, \
+    { k60, k61, k62, k63, k64, k65, k66 }, \
+    { XXX, k71, k72, k73, k74, k75, k76 }, \
+    { XXX, XXX, k82, XXX, XXX, k85, XXX }, \
+    { k90, XXX, k92, XXX, XXX, k95, k96 }  \
+}
+
+/* //////////////////// LAYOUT_60_iso ////////////////////
+ * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐
+ * │   │   │   │   │   │   │   │   │   │   │   │   │   │       │
+ * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤
+ * │     │   │   │   │   │   │   │   │   │   │   │   │   │     │
+ * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┐    │
+ * │      │   │   │   │   │   │   │   │   │   │   │   │   │    │
+ * ├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┴────┤
+ * │    │   │   │   │   │   │   │   │   │   │   │   │          │
+ * ├────┼───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬────┬────┤
+ * │    │    │    │    (6.25u)             │    │    │    │    │
+ * └────┴────┴────┴────────────────────────┴────┴────┴────┴────┘
+*/
+#define LAYOUT_60_iso( \
+    k00, k10, k01, k11, k02, k12, k03, k13, k04, k14, k05, k15, k06, k16,      \
+    k20, k30, k21, k31, k22, k32, k23, k33, k24, k34, k25, k35, k26,           \
+    k40, k50, k41, k51, k42, k52, k43, k53, k44, k54, k45, k55, k46, k56,      \
+    k60, k70, k61, k71, k62, k72, k63, k73, k64, k74, k65, k75, k66,           \
+    k80, k90,           k82, k92,                k94, k85, k95, k86            \
+) { \
+    { k00, k01, k02, k03, k04, k05, k06 }, \
+    { k10, k11, k12, k13, k14, k15, k16 }, \
+    { k20, k21, k22, k23, k24, k25, k26 }, \
+    { k30, k31, k32, k33, k34, k35, XXX }, \
+    { k40, k41, k42, k43, k44, k45, k46 }, \
+    { k50, k51, k52, k53, k54, k55, k56 }, \
+    { k60, k61, k62, k63, k64, k65, k66 }, \
+    { k70, k71, k72, k73, k74, k75, XXX }, \
+    { k80, XXX, k82, XXX, XXX, k85, k86 }, \
+    { k90, XXX, k92, XXX, k94, k95, XXX }  \
+}
+
+/* //////////////////// LAYOUT_60_iso_split_bs_rshift ////////////////////
+ * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐
+ * │   │   │   │   │   │   │   │   │   │   │   │   │   │   │   │
+ * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┤
+ * │     │   │   │   │   │   │   │   │   │   │   │   │   │     │
+ * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┐    │
+ * │      │   │   │   │   │   │   │   │   │   │   │   │   │    │
+ * ├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┴┬───┤
+ * │    │   │   │   │   │   │   │   │   │   │   │   │      │   │
+ * ├────┼───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬────┬┴───┤
+ * │    │    │    │    (6.25u)             │    │    │    │    │
+ * └────┴────┴────┴────────────────────────┴────┴────┴────┴────┘
+*/
+#define LAYOUT_60_iso_split_bs_rshift( \
+    k00, k10, k01, k11, k02, k12, k03, k13, k04, k14, k05, k15, k06, k16, k96, \
+    k20, k30, k21, k31, k22, k32, k23, k33, k24, k34, k25, k35, k26,           \
+    k40, k50, k41, k51, k42, k52, k43, k53, k44, k54, k45, k55, k46, k56,      \
+    k60, k70, k61, k71, k62, k72, k63, k73, k64, k74, k65, k75, k66, k76,      \
+    k80, k90,           k82, k92,                k94, k85, k95, k86            \
+) { \
+    { k00, k01, k02, k03, k04, k05, k06 }, \
+    { k10, k11, k12, k13, k14, k15, k16 }, \
+    { k20, k21, k22, k23, k24, k25, k26 }, \
+    { k30, k31, k32, k33, k34, k35, XXX }, \
+    { k40, k41, k42, k43, k44, k45, k46 }, \
+    { k50, k51, k52, k53, k54, k55, k56 }, \
+    { k60, k61, k62, k63, k64, k65, k66 }, \
+    { k70, k71, k72, k73, k74, k75, k76 }, \
+    { k80, XXX, k82, XXX, XXX, k85, k86 }, \
+    { k90, XXX, k92, XXX, k94, k95, k96 }  \
+}
+
+/* //////////////////// LAYOUT_60_tsangan_hhkb ////////////////////
+ * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐
+ * │   │   │   │   │   │   │   │   │   │   │   │   │   │   │   │
+ * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┤
+ * │     │   │   │   │   │   │   │   │   │   │   │   │   │     │
+ * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┤
+ * │      │   │   │   │   │   │   │   │   │   │   │   │        │
+ * ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬───┤
+ * │        │   │   │   │   │   │   │   │   │   │   │      │   │
+ * ├─────┬──┴┬──┴──┬┴───┴───┴───┴───┴───┴───┴──┬┴───┴┬───┬─┴───┤
+ * │     │   │     │   (7u)                    │     │   │     │
+ * └─────┴───┴─────┴───────────────────────────┴─────┴───┴─────┘
+*/
+#define LAYOUT_60_tsangan_hhkb( \
+    k00, k10, k01, k11, k02, k12, k03, k13, k04, k14, k05, k15, k06, k16, k96, \
+    k20, k30, k21, k31, k22, k32, k23, k33, k24, k34, k25, k35, k26, k36,      \
+    k40, k50, k41, k51, k42, k52, k43, k53, k44, k54, k45, k55,      k56,      \
+    k60,      k61, k71, k62, k72, k63, k73, k64, k74, k65, k75, k66, k76,      \
+    k80, k90,           k82, k92,                     k85, k95, k86            \
+) { \
+    { k00, k01, k02, k03, k04, k05, k06 }, \
+    { k10, k11, k12, k13, k14, k15, k16 }, \
+    { k20, k21, k22, k23, k24, k25, k26 }, \
+    { k30, k31, k32, k33, k34, k35, k36 }, \
+    { k40, k41, k42, k43, k44, k45, XXX }, \
+    { k50, k51, k52, k53, k54, k55, k56 }, \
+    { k60, k61, k62, k63, k64, k65, k66 }, \
+    { XXX, k71, k72, k73, k74, k75, k76 }, \
+    { k80, XXX, k82, XXX, XXX, k85, k86 }, \
+    { k90, XXX, k92, XXX, XXX, k95, k96 }  \
+}

+ 26 - 0
keyboards/handwired/dactyl_manuform/3x5_3/keymaps/default/keymap.c

@@ -0,0 +1,26 @@
+// Copyright 2022 QMK
+// SPDX-License-Identifier: GPL-2.0-or-later
+#include QMK_KEYBOARD_H
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+     /*
+      * ┌───┬───┬───┬───┬───┐       ┌───┬───┬───┬───┬───┐
+      * │ Q │ W │ E │ R │ T │       │ Y │ U │ I │ O │ P │
+      * ├───┼───┼───┼───┼───┤       ├───┼───┼───┼───┼───┤
+      * │ A │ S │ D │ F │ G │       │ H │ J │ K │ L │ ; │
+      * ├───┼───┼───┼───┼───┤       ├───┼───┼───┼───┼───┤
+      * │ Z │ X │ C │ V │ B │       │ N │ M │ , │ . │ / │
+      * └───┴───┴───┴───┴───┘       └───┴───┴───┴───┴───┘
+      *           ┌───┐                   ┌───┐
+      *           │GUI├───┐           ┌───┤Alt│
+      *           └───┤Bsp├───┐   ┌───┤Ent├───┘
+      *               └───┤   │   │   ├───┘
+      *                   └───┘   └───┘
+      */
+    [0] = LAYOUT_split_3x5_3(
+        KC_Q,    KC_W,    KC_E,    KC_R,    KC_T,                               KC_Y,    KC_U,    KC_I,    KC_O,    KC_P,
+        KC_A,    KC_S,    KC_D,    KC_F,    KC_G,                               KC_H,    KC_J,    KC_K,    KC_L,    KC_SCLN,
+        KC_Z,    KC_X,    KC_C,    KC_V,    KC_B,                               KC_N,    KC_M,    KC_COMM, KC_DOT,  KC_SLSH,
+                                   KC_LGUI, KC_BSPC, KC_SPC,           KC_SPC,  KC_ENT,  KC_RALT
+    )
+};

+ 3 - 3
keyboards/handwired/dactyl_manuform/3x5_3/rules.mk

@@ -10,12 +10,12 @@ BOOTLOADER = caterina
 BOOTMAGIC_ENABLE = yes      # Enable Bootmagic Lite
 MOUSEKEY_ENABLE = yes       # Mouse keys
 EXTRAKEY_ENABLE = yes       # Audio control and System control
-CONSOLE_ENABLE = yes        # Console for debug
-COMMAND_ENABLE = yes        # Commands for debug and configuration
+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 = yes          # Audio output
+# AUDIO_ENABLE = yes          # Audio output
 
 RGB_MATRIX_ENABLE = yes     # Enable WS2812 RGB matrix
 RGB_MATRIX_DRIVER = WS2812

+ 0 - 1
keyboards/keebio/bamfk1/keymaps/default/rules.mk

@@ -1 +0,0 @@
-LTO_ENABLE = yes

+ 1 - 0
keyboards/keebio/bamfk1/rules.mk

@@ -17,5 +17,6 @@ BACKLIGHT_ENABLE = no       # Enable keyboard backlight functionality
 RGBLIGHT_ENABLE = yes       # Enable keyboard RGB underglow
 AUDIO_ENABLE = yes          # Audio output
 ENCODER_ENABLE = yes
+LTO_ENABLE = yes
 
 SRC += encoder_actions.c

+ 1 - 1
keyboards/keebio/iris/keymaps/sethBarberee/keymap.c

@@ -17,7 +17,7 @@
 
 extern backlight_config_t backlight_config;
 
-#define KC_RST RESET
+#define KC_RST QK_BOOT
 #define KC_BL_S BL_STEP
 #define KC_RTOG RGB_TOG
 #define KC_RMOD RGB_MOD

+ 13 - 3
keyboards/keebio/sinc/keymaps/sethBarberee/keymap.c

@@ -25,8 +25,18 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
     KC_F3,   KC_F4,   KC_TAB,  _________________QWERTY_L1_________________,         _________________QWERTY_R1_________________,  KC_LBRC, KC_RBRC, KC_BSLS, KC_END,
     KC_F5,   KC_F6,   KC_LSFT, _________________QWERTY_L2_________________,         _________________QWERTY_R2_________________,                   KC_ENT,  KC_PGUP,
     KC_F7,   KC_F8,   KC_LSFT, _________________QWERTY_L3_________________,         _________________QWERTY_R3_________________,          KC_RSFT, KC_UP,   KC_PGDN,
-    KC_F9,   KC_F10,  KC_LCTL, KC_LALT, KC_LGUI, KC_LOWR,  _______,  KC_SPC,        KC_RASE, KC_BSPC,  KC_RALT, KC_RCTL, KC_RGUI, KC_LEFT, KC_DOWN, KC_RGHT
+    KC_F9,   KC_F10,  KC_LCTL, KC_LALT, KC_LGUI, KC_LOWR,  _______,  KC_SPC,        KC_BSPC, KC_RASE,  KC_RALT, KC_RCTL, KC_RGUI, KC_LEFT, KC_DOWN, KC_RGHT
   ),
+
+  [_DVORAK] = LAYOUT_80_with_macro_wrapper(
+    KC_MUTE,          KC_ECAP, _________________FUNC_LEFT_________________,         _________________FUNC_RIGHT________________,  KC_F11,  KC_F12,  KC_DEL,  KC_MUTE,
+    KC_F1,   KC_F2,   KC_GRV,  ________________NUMBER_LEFT________________,         ________________NUMBER_RIGHT_______________,KC_MINS, KC_EQL,  _______,  KC_BSPC, KC_HOME,
+    KC_F3,   KC_F4,   KC_TAB,  _________________DVORAK_L1_________________,         _________________DVORAK_R1_________________,  KC_LBRC, KC_RBRC, KC_BSLS, KC_END,
+    KC_F5,   KC_F6,   KC_LSFT, _________________DVORAK_L2_________________,         _________________DVORAK_R2_________________,                   KC_ENT,  KC_PGUP,
+    KC_F7,   KC_F8,   KC_LSFT, _________________DVORAK_L3_________________,         _________________DVORAK_R3_________________,          KC_RSFT, KC_UP,   KC_PGDN,
+    KC_F9,   KC_F10,  KC_LCTL, KC_LALT, KC_LGUI, KC_LOWR,  _______,  KC_SPC,        KC_BSPC, KC_RASE,  KC_RALT, KC_RCTL, KC_RGUI, KC_LEFT, KC_DOWN, KC_RGHT
+  ),
+
   [_LOWER] = LAYOUT_80_with_macro_wrapper(
     RGB_TOG,          _______, _______, _______, _______, _______, _______,           _______, _______, _______, _______, _______, _______, _______, _______, KC_PSCR,
     RGB_HUI, RGB_HUD, KC_GESC, _________________FUNC_LEFT_________________,           _________________FUNC_RIGHT________________,  KC_F11,  KC_F12,  _______, _______, KC_MPRV,
@@ -38,7 +48,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
 
   [_RAISE] = LAYOUT_80_with_macro_wrapper(
     _______,          _______, _______, _______, _______, _______, _______,         _______, _______, _______, _______, _______, _______, _______, _______, _______,
-    RESET,   KC_VRSN, _______, _______, _______, _______, _______, _______,         _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+    QK_BOOT,   KC_VRSN, _______, _______, _______, _______, _______, _______,         _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
     _______, _______, _______, _______, _______, _______, _______, _______,         _______, _______, _______, _______, _______, _______, _______, _______, _______,
     _______, _______, _______, _______, _______, _______, _______, _______,         _______, _______, _______, _______, _______, _______,          _______, _______,
     _______, _______, _______,          _______, _______, _______, _______,         _______, _______, _______, _______, _______, _______, _______, _______, _______,
@@ -46,7 +56,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
   ),
   [_ADJUST] = LAYOUT_80_with_macro_wrapper(
     _______,          _______, _______, _______, _______, _______, _______,         _______, _______, _______, _______, _______, _______, _______, _______, _______,
-    _______, _______, _______, _______, _______, _______, _______, _______,         _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+    _______, _______, _______, KC_QWER, KC_DVOR, _______, _______, _______,         _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
     _______, _______, _______, _______, _______, _______, _______, _______,         _______, _______, _______, _______, _______, _______, _______, _______, _______,
     _______, _______, _______, _______, _______, _______, _______, _______,         _______, _______, _______, _______, _______, _______,          _______, _______,
     _______, _______, _______,          _______, _______, _______, _______,         _______, _______, _______, _______, _______, _______, _______, _______, _______,

+ 20 - 0
keyboards/smithrune/iron165r2/f072/rules.mk

@@ -1,4 +1,24 @@
 # MCU name
 MCU = STM32F072
+
+# Bootloader selection
+BOOTLOADER = stm32-dfu
+
+# Build Options
+#   change yes to no to disable
+#
+BOOTMAGIC_ENABLE = yes      # Enable Bootmagic Lite
+MOUSEKEY_ENABLE = no        # 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           # USB Nkey Rollover
+RGBLIGHT_ENABLE = yes       # Enable keyboard RGB underglow
+AUDIO_ENABLE = no           # Audio output
+LTO_ENABLE = no
+ENCODER_ENABLE = no
 BACKLIGHT_ENABLE = yes
 BACKLIGHT_DRIVER = pwm
+
+# Enter lower-power sleep mode when on the ChibiOS idle thread
+OPT_DEFS += -DCORTEX_ENABLE_WFI_IDLE=TRUE

+ 21 - 0
keyboards/smithrune/iron165r2/f411/rules.mk

@@ -1,5 +1,26 @@
+# MCU name
 MCU = STM32F411
+
+# Bootloader selection
+BOOTLOADER = stm32-dfu
+
+# Build Options
+#   change yes to no to disable
+#
+BOOTMAGIC_ENABLE = yes      # Enable Bootmagic Lite
+MOUSEKEY_ENABLE = no        # 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           # USB Nkey Rollover
+RGBLIGHT_ENABLE = yes       # Enable keyboard RGB underglow
+AUDIO_ENABLE = no           # Audio output
+LTO_ENABLE = no
+ENCODER_ENABLE = no
 EEPROM_DRIVER = i2c
 BACKLIGHT_ENABLE = yes
 BACKLIGHT_DRIVER = pwm
 WS2812_DRIVER = pwm
+
+# Enter lower-power sleep mode when on the ChibiOS idle thread
+OPT_DEFS += -DCORTEX_ENABLE_WFI_IDLE=TRUE

+ 4 - 4
keyboards/smithrune/iron165r2/readme.md

@@ -26,13 +26,13 @@ The 165R2 PCB was prototyped and tested using two microcontrollers: STM32F072 an
 
 After checking what PCB you own and setting up your build environment, you can compile the Iron 165R2 default keymap by using one of the options below.
 
-    make smithrune/iron165r2/165r2_f072:default
-    make smithrune/iron165r2/165r2_f411:default
+    make smithrune/iron165r2/f072:default
+    make smithrune/iron165r2/f411:default
 
 And use dfu-util in the command line or through a GUI like QMK toolbox to upload the firmware to the PCB. To directly flash the PCB after it is put into a DFU state, use:
 
-    make smithrune/iron165r2/165r2_f072:default:flash
-    make smithrune/iron165r2/165r2_f411:default:flash
+    make smithrune/iron165r2/f072:default:flash
+    make smithrune/iron165r2/f411: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).
 

+ 0 - 18
keyboards/smithrune/iron165r2/rules.mk

@@ -1,18 +0,0 @@
-# Bootloader selection
-BOOTLOADER = stm32-dfu
-
-# Build Options
-#   change yes to no to disable
-#
-BOOTMAGIC_ENABLE = yes      # Enable Bootmagic Lite
-MOUSEKEY_ENABLE = no        # 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           # USB Nkey Rollover
-RGBLIGHT_ENABLE = yes       # Enable keyboard RGB underglow
-AUDIO_ENABLE = no           # Audio output
-LTO_ENABLE = no
-ENCODER_ENABLE = no
-# Enter lower-power sleep mode when on the ChibiOS idle thread
-OPT_DEFS += -DCORTEX_ENABLE_WFI_IDLE=TRU

+ 1 - 1
keyboards/wilba_tech/zeal60/keymaps/sethBarberee/keymap.c

@@ -37,7 +37,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
 
 // Fn3 Layer (zeal60 Configuration)
 [3] = LAYOUT_60_ansi_split_bs_rshift(
-	RESET,   EF_DEC,  EF_INC,  H1_DEC,  H1_INC,  H2_DEC,  H2_INC,  KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, BR_DEC,  BR_INC,  KC_TRNS, KC_TRNS,
+	QK_BOOT,   EF_DEC,  EF_INC,  H1_DEC,  H1_INC,  H2_DEC,  H2_INC,  KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, BR_DEC,  BR_INC,  KC_TRNS, KC_TRNS,
 	KC_TRNS, KC_TRNS, KC_TRNS, S1_DEC,  S1_INC,  S2_DEC,  S2_INC,  KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, ES_DEC,  ES_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_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,

+ 3 - 0
layouts/community/ortho_4x12/junonum/config.h

@@ -38,3 +38,6 @@
 
 // Short tap threshold
 #define TAPPING_TERM 250
+
+// For homerow mods
+#define IGNORE_MOD_TAP_INTERRUPT

+ 22 - 12
layouts/community/ortho_4x12/junonum/keymap.c

@@ -27,34 +27,44 @@ enum planck_keycodes {
     DP_OFF
 };
 
-#define SHIFTEN RSFT_T(KC_ENT)
 #define LOWER MO(_LOWER)
 #define RAISE MO(_RAISE)
 #define SPACEFN LT(_FN1, KC_SPC)
 #define DPADNUM MO(_DPADNUM)
-#define CTRLTAB CTL_T(KC_TAB)
+
+// Homerow mods
+#define MD_A    LALT_T(KC_A)
+#define MD_S    LGUI_T(KC_S)
+#define MD_D    LCTL_T(KC_D)
+#define MD_F    LSFT_T(KC_F)
+
+#define MD_J    RSFT_T(KC_J)
+#define MD_K    RCTL_T(KC_K)
+#define MD_L    RGUI_T(KC_L)
+#define MD_SCLN RALT_T(KC_SCLN)
+
 
 const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
 
     [_QWERTY] = LAYOUT_ortho_4x12(
         KC_ESC,  KC_Q,    KC_W,    KC_E,    KC_R,    KC_T,    KC_Y,    KC_U,    KC_I,    KC_O,    KC_P,    KC_BSPC,
-        CTRLTAB, 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, SHIFTEN,
-        _______, KC_LCTL, KC_LALT, KC_LGUI, LOWER,   SPACEFN, SPACEFN, RAISE,   KC_LEFT, KC_DOWN, KC_UP,   KC_RIGHT
+        KC_TAB,  MD_A,    MD_S,    MD_D,    MD_F,    KC_G,    KC_H,    MD_J,    MD_K,    MD_L,    MD_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_ENT ,
+        _______, KC_LCTL, KC_LGUI, KC_LALT, LOWER,   SPACEFN, SPACEFN, RAISE,   KC_LEFT, KC_DOWN, KC_UP,   KC_RIGHT
         ),
 
     [_COLEMAK] = LAYOUT_ortho_4x12(
         KC_ESC,  KC_Q,    KC_W,    KC_F,    KC_P,    KC_G,    KC_J,    KC_L,    KC_U,    KC_Y,    KC_SCLN, KC_BSPC,
-        CTRLTAB, KC_A,    KC_R,    KC_S,    KC_T,    KC_D,    KC_H,    KC_N,    KC_E,    KC_I,    KC_O,    KC_QUOT,
-        KC_LSFT, KC_Z,    KC_X,    KC_C,    KC_V,    KC_B,    KC_K,    KC_M,    KC_COMM, KC_DOT,  KC_SLSH, SHIFTEN,
-        _______, KC_LCTL, KC_LALT, KC_LGUI, LOWER,   SPACEFN, SPACEFN, RAISE,   KC_LEFT, KC_DOWN, KC_UP,   KC_RIGHT
+        KC_TAB,  KC_A,    KC_R,    KC_S,    KC_T,    KC_D,    KC_H,    KC_N,    KC_E,    KC_I,    KC_O,    KC_QUOT,
+        KC_LSFT, KC_Z,    KC_X,    KC_C,    KC_V,    KC_B,    KC_K,    KC_M,    KC_COMM, KC_DOT,  KC_SLSH, KC_ENT ,
+        _______, KC_LCTL, KC_LGUI, KC_LALT, LOWER,   SPACEFN, SPACEFN, RAISE,   KC_LEFT, KC_DOWN, KC_UP,   KC_RIGHT
     ),
 
     [_DVORAK] = LAYOUT_ortho_4x12(
         KC_ESC,  KC_QUOT, KC_COMM, KC_DOT,  KC_P,    KC_Y,    KC_F,    KC_G,    KC_C,    KC_R,    KC_L,    KC_BSPC,
-        CTRLTAB, KC_A,    KC_O,    KC_E,    KC_U,    KC_I,    KC_D,    KC_H,    KC_T,    KC_N,    KC_S,    KC_QUOT,
-        KC_LSFT, KC_SCLN, KC_Q,    KC_J,    KC_K,    KC_X,    KC_B,    KC_M,    KC_W,    KC_V,    KC_Z,    SHIFTEN,
-        _______, KC_LCTL, KC_LALT, KC_LGUI, LOWER,   SPACEFN, SPACEFN, RAISE,   KC_LEFT, KC_DOWN, KC_UP,   KC_RIGHT
+        KC_TAB,  KC_A,    KC_O,    KC_E,    KC_U,    KC_I,    KC_D,    KC_H,    KC_T,    KC_N,    KC_S,    KC_QUOT,
+        KC_LSFT, KC_SCLN, KC_Q,    KC_J,    KC_K,    KC_X,    KC_B,    KC_M,    KC_W,    KC_V,    KC_Z,    KC_ENT ,
+        _______, KC_LCTL, KC_LGUI, KC_LALT, LOWER,   SPACEFN, SPACEFN, RAISE,   KC_LEFT, KC_DOWN, KC_UP,   KC_RIGHT
     ),
 
     [_LOWER] = LAYOUT_ortho_4x12(
@@ -97,7 +107,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
         KC_ESC,  KC_Q,    KC_W,    KC_E,    KC_R,    KC_T,    KC_Y,    KC_U,    KC_I,    KC_O,    KC_P,    KC_BSPC,
         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_UP,   KC_ENT ,
-        XXXXXXX, KC_LCTL, KC_LALT, KC_LGUI, DPADNUM, KC_SPC,  KC_SPC,  DPADNUM, DP_OFF,  KC_LEFT, KC_DOWN, KC_RGHT
+        XXXXXXX, KC_LCTL, KC_LGUI, KC_LALT, DPADNUM, KC_SPC,  KC_SPC,  DPADNUM, DP_OFF,  KC_LEFT, KC_DOWN, KC_RGHT
     ),
 
     // Extended numeric layer for FPS weapon switching and StarCraft group control

+ 2 - 1
layouts/community/ortho_4x12/junonum/readme.md

@@ -5,11 +5,12 @@ A universal ortholinear 4x12 keymap created by Juno Nguyen
 * Successor to *juno*.
 * Numpad-like cluster for numerics.
 * ESDF and IJKL arrow cluster from SpaceFn for navigation.
-* CtrlTab for even more HHKB-ness.
+* ~~CtrlTab for even more HHKB-ness.~~
 * Audio indicator for Caps Lock.
 * Huge amount of omissions of redundant keys.
 * minimalism (not really).
 * DPAD layer for gaming with inverted T-shaped direction keys.
 * DPADNUM secondary layer tailored for StarCraft group control and FPS weapon switching.
+* New: homerow mods for even less movement
 
 Refined since Oct 2019

+ 2 - 0
lib/python/qmk/cli/flash.py

@@ -33,6 +33,8 @@ def print_bootloader_help():
     cli.echo('\tdfu-split-right')
     cli.echo('\tdfu-util-split-left')
     cli.echo('\tdfu-util-split-right')
+    cli.echo('\tuf2-split-left')
+    cli.echo('\tuf2-split-right')
     cli.echo('For more info, visit https://docs.qmk.fm/#/flashing')
 
 

+ 6 - 2
platforms/chibios/flash.mk

@@ -54,11 +54,11 @@ endef
 
 # TODO: Remove once ARM has a way to configure EECONFIG_HANDEDNESS
 #       within the emulated eeprom via dfu-util or another tool
-ifneq (,$(filter $(MAKECMDGOALS),dfu-util-split-left))
+ifneq (,$(filter $(MAKECMDGOALS), dfu-util-split-left uf2-split-left))
     OPT_DEFS += -DINIT_EE_HANDS_LEFT
 endif
 
-ifneq (,$(filter $(MAKECMDGOALS),dfu-util-split-right))
+ifneq (,$(filter $(MAKECMDGOALS), dfu-util-split-right uf2-split-right))
     OPT_DEFS += -DINIT_EE_HANDS_RIGHT
 endif
 
@@ -66,6 +66,10 @@ dfu-util-split-left: dfu-util
 
 dfu-util-split-right: dfu-util
 
+uf2-split-left: flash
+
+uf2-split-right: flash
+
 ST_LINK_CLI ?= st-link_cli
 ST_LINK_ARGS ?=
 

+ 4 - 0
users/sethBarberee/config.h

@@ -60,6 +60,10 @@
 #    define TAPPING_TERM 200
 #endif
 
+#if !defined(LAYER_STATE_16BIT) && !defined(LAYER_STATE_8BIT) && !defined(LAYER_STATE_32BIT)
+#    define LAYER_STATE_8BIT
+#endif
+
 /* Disable unused and unneeded features to reduce on firmware size */
 #ifdef LOCKING_SUPPORT_ENABLE
 #    undef LOCKING_SUPPORT_ENABLE

+ 1 - 1
users/sethBarberee/rgb_light.c

@@ -19,7 +19,7 @@
 layer_state_t layer_state_set_rgb_light(layer_state_t state){
     switch(get_highest_layer(state)) {
       case _QWERTY:
-        rgblight_set_hsv_and_mode(HSV_RED, RGBLIGHT_MODE_BREATHING + 3);
+        rgblight_set_hsv_and_mode(HSV_RED, RGBLIGHT_MODE_TWINKLE + 3);
         break;
       case _LOWER:
         rgblight_set_hsv_and_mode(HSV_GREEN, RGBLIGHT_MODE_BREATHING + 3);

+ 15 - 0
users/sethBarberee/sethBarberee.c

@@ -79,6 +79,21 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
                     SEND_STRING(QMK_KEYBOARD "/" QMK_KEYMAP " @ " QMK_VERSION ", Built on: " QMK_BUILDDATE);
                 }
                 break;
+            case KC_QWER:  // Set default layer to QWERTY
+                if (record->event.pressed) {
+                    set_single_persistent_default_layer(_QWERTY);
+                }
+                break;
+            case KC_COLE:  // Set default layer to COLEMAK
+                if (record->event.pressed) {
+                    set_single_persistent_default_layer(_COLEMAK);
+                }
+                break;
+            case KC_DVOR:  // Set default layer to DVORAK
+                if (record->event.pressed) {
+                    set_single_persistent_default_layer(_DVORAK);
+                }
+                break;
         }
     }
     return true;

+ 5 - 0
users/sethBarberee/sethBarberee.h

@@ -21,6 +21,8 @@
 
 enum layers {
     _QWERTY,
+    _COLEMAK,
+    _DVORAK,
     _LOWER,
     _RAISE,
     _ADJUST
@@ -28,6 +30,9 @@ enum layers {
 
 enum userspace_keycodes {
     KC_VRSN = SAFE_RANGE,
+    KC_QWER,
+    KC_COLE,
+    KC_DVOR,
     NEW_SAFE_RANGE
 };
 

+ 16 - 0
users/sethBarberee/wrappers.h

@@ -44,6 +44,22 @@
 #define _________________QWERTY_R2_________________       KC_H,    KC_J,    KC_K,    KC_L,    KC_SCLN, KC_QUOT
 #define _________________QWERTY_R3_________________       KC_N,    KC_M,    KC_COMM, KC_DOT,  KC_SLSH
 
+#define _________________COLEMAK_L1________________       KC_Q,    KC_W,    KC_F,    KC_P,    KC_G
+#define _________________COLEMAK_L2________________       KC_A,    KC_R,    KC_S,    KC_T,    KC_D
+#define _________________COLEMAK_L3________________       KC_Z,    KC_X,    KC_C,    KC_V,    KC_B
+
+#define _________________COLEMAK_R1________________       KC_J,    KC_L,    KC_U,    KC_Y,    KC_SCLN
+#define _________________COLEMAK_R2________________       KC_H,    KC_N,    KC_E,    KC_I,    KC_O,    KC_QUOT
+#define _________________COLEMAK_R3________________       KC_K,    KC_M,    KC_COMM, KC_DOT,  KC_SLSH
+
+#define _________________DVORAK_L1_________________       KC_QUOT, KC_COMM, KC_DOT, KC_P,     KC_Y
+#define _________________DVORAK_L2_________________       KC_A,    KC_O,    KC_E,   KC_U,     KC_I
+#define _________________DVORAK_L3_________________       KC_SCLN, KC_Q,    KC_J,   KC_K,     KC_X
+
+#define _________________DVORAK_R1_________________       KC_F,    KC_G,    KC_C,    KC_R,    KC_L
+#define _________________DVORAK_R2_________________       KC_D,    KC_H,    KC_T,    KC_N,    KC_S,    KC_SLSH
+#define _________________DVORAK_R3_________________       KC_B,    KC_M,    KC_W,    KC_V,    KC_Z
+
 #define ________________NUMBER_LEFT________________       KC_1,    KC_2,    KC_3,    KC_4,    KC_5
 #define ________________NUMBER_RIGHT_______________       KC_6,    KC_7,    KC_8,    KC_9,    KC_0
 #define _________________FUNC_LEFT_________________       KC_F1,   KC_F2,   KC_F3,   KC_F4,   KC_F5