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:
   test:
     runs-on: ubuntu-latest
     runs-on: ubuntu-latest
 
 
-    container: qmkfm/base_container
+    container: qmkfm/qmk_cli
 
 
     steps:
     steps:
     - uses: actions/checkout@v2
     - 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.
     * 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.
     * 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.
 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
 * `develop` is now closed to new PR's, only fixes for current PR's may be merged
 * Post call for testers
 * Post call for testers
@@ -78,7 +59,7 @@ This happens immediately after the previous `develop` branch is merged.
     * [ ] GitHub PR
     * [ ] GitHub PR
     * [ ] https://reddit.com/r/olkb
     * [ ] 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
 * `develop` is now closed to existing PR merges, only bugfixes for previous merges may be included
 * Post call for testers
 * Post call for testers
@@ -86,21 +67,21 @@ This happens immediately after the previous `develop` branch is merged.
     * [ ] GitHub PR
     * [ ] GitHub PR
     * [ ] https://reddit.com/r/olkb
     * [ ] 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>
 * Announce that master will be closed from <2 Days Before> to <Day of Merge>
     * [ ] Discord
     * [ ] Discord
     * [ ] GitHub PR
     * [ ] GitHub PR
     * [ ] https://reddit.com/r/olkb
     * [ ] https://reddit.com/r/olkb
 
 
-## 2 Days Before Merge
+### 2 Days Before Merge
 
 
 * Announce that master is closed for 2 days
 * Announce that master is closed for 2 days
     * [ ] Discord
     * [ ] Discord
     * [ ] GitHub PR
     * [ ] GitHub PR
     * [ ] https://reddit.com/r/olkb
     * [ ] https://reddit.com/r/olkb
 
 
-## Day Of Merge
+### Day Of Merge
 
 
 * `qmk_firmware` git commands
 * `qmk_firmware` git commands
     * [ ] `git checkout develop`
     * [ ] `git checkout develop`
@@ -117,8 +98,39 @@ This happens immediately after the previous `develop` branch is merged.
     * [ ] `git checkout master`
     * [ ] `git checkout master`
     * [ ] `git pull --ff-only`
     * [ ] `git pull --ff-only`
     * [ ] `git merge --no-ff develop`
     * [ ] `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`
     * [ ] `git push upstream master`
 
 
 ## Post-merge operations
 ## 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)
 * (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):
 * ARM controllers with a DFU compatible bootloader (e.g. Proton-C):
   * `:dfu-util-split-left`
   * `:dfu-util-split-left`
   * `:dfu-util-split-right`
   * `:dfu-util-split-right`
+* ARM controllers with a UF2 compatible bootloader:
+  * `:uf2-split-left`
+  * `:uf2-split-right`
 
 
 Example:
 Example:
 
 

+ 5 - 1
docs/flashing.md

@@ -266,7 +266,7 @@ Flashing sequence:
 ### `make` Targets
 ### `make` Targets
 
 
 * `:dfu-util`: Waits until an STM32 bootloader device is available, and then flashes the firmware.
 * `: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-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.
 * `: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
 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`
 3. Flash via QMK CLI eg. `qmk flash --keyboard handwired/onekey/blackpill_f411_tinyuf2 --keymap default`
 4. Wait for the keyboard to become available
 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` 构建目标
 ### `make` 构建目标
 
 
 * `:dfu-util`: 每5秒检测一次直到发现可用的STM32 bootloader设备,然后进行固件刷写。
 * `: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-link-cli`: 通过ST-Link CLI工具集而非dfu-util进行刷写,需要有ST-Link电子狗。
 * `:st-flash`: 通过[STLink工具](https://github.com/stlink-org/stlink)内的 `st-flash` 工具而非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
 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
 BOOTMAGIC_ENABLE = yes      # Enable Bootmagic Lite
 MOUSEKEY_ENABLE = yes       # Mouse keys
 MOUSEKEY_ENABLE = yes       # Mouse keys
 EXTRAKEY_ENABLE = yes       # Audio control and System control
 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
 NKRO_ENABLE = yes           # Enable N-Key Rollover
 BACKLIGHT_ENABLE = no       # Enable keyboard backlight functionality
 BACKLIGHT_ENABLE = no       # Enable keyboard backlight functionality
 RGBLIGHT_ENABLE = no        # Enable keyboard RGB underglow
 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_ENABLE = yes     # Enable WS2812 RGB matrix
 RGB_MATRIX_DRIVER = WS2812
 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
 RGBLIGHT_ENABLE = yes       # Enable keyboard RGB underglow
 AUDIO_ENABLE = yes          # Audio output
 AUDIO_ENABLE = yes          # Audio output
 ENCODER_ENABLE = yes
 ENCODER_ENABLE = yes
+LTO_ENABLE = yes
 
 
 SRC += encoder_actions.c
 SRC += encoder_actions.c

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

@@ -17,7 +17,7 @@
 
 
 extern backlight_config_t backlight_config;
 extern backlight_config_t backlight_config;
 
 
-#define KC_RST RESET
+#define KC_RST QK_BOOT
 #define KC_BL_S BL_STEP
 #define KC_BL_S BL_STEP
 #define KC_RTOG RGB_TOG
 #define KC_RTOG RGB_TOG
 #define KC_RMOD RGB_MOD
 #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_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_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_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(
   [_LOWER] = LAYOUT_80_with_macro_wrapper(
     RGB_TOG,          _______, _______, _______, _______, _______, _______,           _______, _______, _______, _______, _______, _______, _______, _______, KC_PSCR,
     RGB_TOG,          _______, _______, _______, _______, _______, _______,           _______, _______, _______, _______, _______, _______, _______, _______, KC_PSCR,
     RGB_HUI, RGB_HUD, KC_GESC, _________________FUNC_LEFT_________________,           _________________FUNC_RIGHT________________,  KC_F11,  KC_F12,  _______, _______, KC_MPRV,
     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(
   [_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(
   [_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 name
 MCU = STM32F072
 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_ENABLE = yes
 BACKLIGHT_DRIVER = pwm
 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
 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
 EEPROM_DRIVER = i2c
 BACKLIGHT_ENABLE = yes
 BACKLIGHT_ENABLE = yes
 BACKLIGHT_DRIVER = pwm
 BACKLIGHT_DRIVER = pwm
 WS2812_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.
 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:
 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).
 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)
 // Fn3 Layer (zeal60 Configuration)
 [3] = LAYOUT_60_ansi_split_bs_rshift(
 [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, 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,
 	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
 // Short tap threshold
 #define TAPPING_TERM 250
 #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
     DP_OFF
 };
 };
 
 
-#define SHIFTEN RSFT_T(KC_ENT)
 #define LOWER MO(_LOWER)
 #define LOWER MO(_LOWER)
 #define RAISE MO(_RAISE)
 #define RAISE MO(_RAISE)
 #define SPACEFN LT(_FN1, KC_SPC)
 #define SPACEFN LT(_FN1, KC_SPC)
 #define DPADNUM MO(_DPADNUM)
 #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] = {
 const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
 
 
     [_QWERTY] = LAYOUT_ortho_4x12(
     [_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,
         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(
     [_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,
         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(
     [_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,
         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(
     [_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_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_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 ,
         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
     // 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*.
 * Successor to *juno*.
 * Numpad-like cluster for numerics.
 * Numpad-like cluster for numerics.
 * ESDF and IJKL arrow cluster from SpaceFn for navigation.
 * 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.
 * Audio indicator for Caps Lock.
 * Huge amount of omissions of redundant keys.
 * Huge amount of omissions of redundant keys.
 * minimalism (not really).
 * minimalism (not really).
 * DPAD layer for gaming with inverted T-shaped direction keys.
 * DPAD layer for gaming with inverted T-shaped direction keys.
 * DPADNUM secondary layer tailored for StarCraft group control and FPS weapon switching.
 * DPADNUM secondary layer tailored for StarCraft group control and FPS weapon switching.
+* New: homerow mods for even less movement
 
 
 Refined since Oct 2019
 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-split-right')
     cli.echo('\tdfu-util-split-left')
     cli.echo('\tdfu-util-split-left')
     cli.echo('\tdfu-util-split-right')
     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')
     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
 # TODO: Remove once ARM has a way to configure EECONFIG_HANDEDNESS
 #       within the emulated eeprom via dfu-util or another tool
 #       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
     OPT_DEFS += -DINIT_EE_HANDS_LEFT
 endif
 endif
 
 
-ifneq (,$(filter $(MAKECMDGOALS),dfu-util-split-right))
+ifneq (,$(filter $(MAKECMDGOALS), dfu-util-split-right uf2-split-right))
     OPT_DEFS += -DINIT_EE_HANDS_RIGHT
     OPT_DEFS += -DINIT_EE_HANDS_RIGHT
 endif
 endif
 
 
@@ -66,6 +66,10 @@ dfu-util-split-left: dfu-util
 
 
 dfu-util-split-right: dfu-util
 dfu-util-split-right: dfu-util
 
 
+uf2-split-left: flash
+
+uf2-split-right: flash
+
 ST_LINK_CLI ?= st-link_cli
 ST_LINK_CLI ?= st-link_cli
 ST_LINK_ARGS ?=
 ST_LINK_ARGS ?=
 
 

+ 4 - 0
users/sethBarberee/config.h

@@ -60,6 +60,10 @@
 #    define TAPPING_TERM 200
 #    define TAPPING_TERM 200
 #endif
 #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 */
 /* Disable unused and unneeded features to reduce on firmware size */
 #ifdef LOCKING_SUPPORT_ENABLE
 #ifdef LOCKING_SUPPORT_ENABLE
 #    undef 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){
 layer_state_t layer_state_set_rgb_light(layer_state_t state){
     switch(get_highest_layer(state)) {
     switch(get_highest_layer(state)) {
       case _QWERTY:
       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;
         break;
       case _LOWER:
       case _LOWER:
         rgblight_set_hsv_and_mode(HSV_GREEN, RGBLIGHT_MODE_BREATHING + 3);
         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);
                     SEND_STRING(QMK_KEYBOARD "/" QMK_KEYMAP " @ " QMK_VERSION ", Built on: " QMK_BUILDDATE);
                 }
                 }
                 break;
                 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;
     return true;

+ 5 - 0
users/sethBarberee/sethBarberee.h

@@ -21,6 +21,8 @@
 
 
 enum layers {
 enum layers {
     _QWERTY,
     _QWERTY,
+    _COLEMAK,
+    _DVORAK,
     _LOWER,
     _LOWER,
     _RAISE,
     _RAISE,
     _ADJUST
     _ADJUST
@@ -28,6 +30,9 @@ enum layers {
 
 
 enum userspace_keycodes {
 enum userspace_keycodes {
     KC_VRSN = SAFE_RANGE,
     KC_VRSN = SAFE_RANGE,
+    KC_QWER,
+    KC_COLE,
+    KC_DVOR,
     NEW_SAFE_RANGE
     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_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 _________________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_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 ________________NUMBER_RIGHT_______________       KC_6,    KC_7,    KC_8,    KC_9,    KC_0
 #define _________________FUNC_LEFT_________________       KC_F1,   KC_F2,   KC_F3,   KC_F4,   KC_F5
 #define _________________FUNC_LEFT_________________       KC_F1,   KC_F2,   KC_F3,   KC_F4,   KC_F5