Procházet zdrojové kódy

Merge remote-tracking branch 'origin/master' into develop

Drashna Jael're před 2 roky
rodič
revize
4597e01061
65 změnil soubory, kde provedl 1891 přidání a 334 odebrání
  1. 0 0
      keyboards/aeboards/ext65/.noci
  2. 0 1
      keyboards/aeboards/ext65/ext65.c
  3. 0 9
      keyboards/aeboards/ext65/ext65.h
  4. 1 105
      keyboards/aeboards/ext65/info.json
  5. 0 0
      keyboards/aeboards/ext65/rev1/.noci
  6. 114 1
      keyboards/aeboards/ext65/rev1/info.json
  7. 0 36
      keyboards/aeboards/ext65/rev1/keymaps/default/keymap.c
  8. 0 0
      keyboards/aeboards/ext65/rev1/keymaps/default/readme.md
  9. 1 37
      keyboards/aeboards/ext65/rev1/keymaps/via/keymap.c
  10. 0 0
      keyboards/aeboards/ext65/rev1/keymaps/via/readme.md
  11. 0 0
      keyboards/aeboards/ext65/rev1/keymaps/via/rules.mk
  12. 16 0
      keyboards/aeboards/ext65/rev1/rev1.c
  13. 0 1
      keyboards/aeboards/ext65/rev1/rev1.h
  14. 15 35
      keyboards/aeboards/ext65/rev2/config.h
  15. 114 1
      keyboards/aeboards/ext65/rev2/info.json
  16. 63 0
      keyboards/aeboards/ext65/rev2/keymaps/default/keymap.c
  17. 2 0
      keyboards/aeboards/ext65/rev2/keymaps/default/readme.md
  18. 63 0
      keyboards/aeboards/ext65/rev2/keymaps/via/keymap.c
  19. 2 0
      keyboards/aeboards/ext65/rev2/keymaps/via/readme.md
  20. 3 0
      keyboards/aeboards/ext65/rev2/keymaps/via/rules.mk
  21. 49 0
      keyboards/aeboards/ext65/rev2/rev2.c
  22. 0 1
      keyboards/aeboards/ext65/rev2/rev2.h
  23. 5 21
      keyboards/aeboards/ext65/rev3/config.h
  24. 440 0
      keyboards/aeboards/ext65/rev3/info.json
  25. 63 0
      keyboards/aeboards/ext65/rev3/keymaps/default/keymap.c
  26. 2 0
      keyboards/aeboards/ext65/rev3/keymaps/default/readme.md
  27. 63 0
      keyboards/aeboards/ext65/rev3/keymaps/via/keymap.c
  28. 2 0
      keyboards/aeboards/ext65/rev3/keymaps/via/readme.md
  29. 1 0
      keyboards/aeboards/ext65/rev3/keymaps/via/rules.mk
  30. 38 0
      keyboards/aeboards/ext65/rev3/rev3.c
  31. 40 0
      keyboards/aeboards/ext65/rev3/rev3.h
  32. 19 0
      keyboards/aeboards/ext65/rev3/rules.mk
  33. 1 1
      keyboards/atreyu/rev1/info.json
  34. 5 11
      keyboards/atreyu/rev1/rev1.c
  35. 10 10
      keyboards/ducky/one2sf/keymaps/default/keymap.c
  36. 25 0
      keyboards/handwired/dactylmacropad/config.h
  37. 45 0
      keyboards/handwired/dactylmacropad/info.json
  38. 123 0
      keyboards/handwired/dactylmacropad/keymaps/default/keymap.c
  39. 26 0
      keyboards/handwired/dactylmacropad/readme.md
  40. 1 0
      keyboards/handwired/dactylmacropad/rules.mk
  41. 1 1
      keyboards/jels/boaty/info.json
  42. 25 25
      keyboards/jels/boaty/keymaps/default/keymap.c
  43. 49 25
      keyboards/jels/boaty/keymaps/via/keymap.c
  44. 30 0
      keyboards/keebio/nyquist/keymaps/bwprobably/config.h
  45. 31 0
      keyboards/keebio/nyquist/keymaps/bwprobably/keymap.c
  46. 1 0
      keyboards/keebio/nyquist/keymaps/bwprobably/rules.mk
  47. 1 1
      keyboards/keyboardio/atreus/keymaps/dshields/keymap.c
  48. 1 1
      keyboards/keyboardio/model01/keymaps/dshields/keymap.c
  49. 1 1
      keyboards/meletrix/zoom87/config.h
  50. 2 0
      keyboards/meletrix/zoom87/readme.md
  51. 1 1
      keyboards/planck/keymaps/dshields/keymap.c
  52. 28 0
      keyboards/yandrstudio/yr80/board.h
  53. 48 0
      keyboards/yandrstudio/yr80/config.h
  54. 6 2
      keyboards/yandrstudio/yr80/halconf.h
  55. 15 0
      keyboards/yandrstudio/yr80/info.json
  56. 34 0
      keyboards/yandrstudio/yr80/keymaps/default/keymap.c
  57. 48 0
      keyboards/yandrstudio/yr80/keymaps/via/keymap.c
  58. 1 0
      keyboards/yandrstudio/yr80/keymaps/via/rules.mk
  59. 25 0
      keyboards/yandrstudio/yr80/mcuconf.h
  60. 22 0
      keyboards/yandrstudio/yr80/readme.md
  61. 16 0
      keyboards/yandrstudio/yr80/rules.mk
  62. 73 0
      keyboards/yandrstudio/yr80/yr80.c
  63. 56 0
      keyboards/yandrstudio/yr80/yr80.h
  64. 4 0
      users/dshields/config.h
  65. 20 7
      users/dshields/dshields.h

+ 0 - 0
keyboards/aeboards/ext65/.noci


+ 0 - 1
keyboards/aeboards/ext65/ext65.c

@@ -1 +0,0 @@
-#include "ext65.h"

+ 0 - 9
keyboards/aeboards/ext65/ext65.h

@@ -1,9 +0,0 @@
-#pragma once
-
-#include "quantum.h"
-
-#if defined(KEYBOARD_aeboards_ext65_rev1)
-    #include "rev1.h"
-#elif defined(KEYBOARD_aeboards_ext65_rev2)
-    #include "rev2.h"
-#endif

+ 1 - 105
keyboards/aeboards/ext65/info.json

@@ -4,110 +4,6 @@
     "url": "",
     "maintainer": "qmk",
     "usb": {
-        "vid": "0x4145",
-        "device_version": "0.0.1"
-    },
-    "layouts": {
-        "LAYOUT_ext65": {
-            "layout": [
-                {"x": 0, "y": 0},
-                {"x": 1, "y": 0},
-                {"x": 2, "y": 0},
-                {"x": 3, "y": 0},
-
-                {"x": 4.5, "y": 0},
-                {"x": 5.5, "y": 0},
-                {"x": 6.5, "y": 0},
-                {"x": 7.5, "y": 0},
-                {"x": 8.5, "y": 0},
-                {"x": 9.5, "y": 0},
-                {"x": 10.5, "y": 0},
-                {"x": 11.5, "y": 0},
-                {"x": 12.5, "y": 0},
-                {"x": 13.5, "y": 0},
-                {"x": 14.5, "y": 0},
-                {"x": 15.5, "y": 0},
-                {"x": 16.5, "y": 0},
-                {"x": 17.5, "y": 0},
-                {"x": 18.5, "y": 0},
-                {"x": 19.5, "y": 0},
-
-                {"x": 0, "y": 1},
-                {"x": 1, "y": 1},
-                {"x": 2, "y": 1},
-                {"x": 3, "y": 1},
-
-                {"x": 4.5, "y": 1, "w": 1.5},
-                {"x": 6, "y": 1},
-                {"x": 7, "y": 1},
-                {"x": 8, "y": 1},
-                {"x": 9, "y": 1},
-                {"x": 10, "y": 1},
-                {"x": 11, "y": 1},
-                {"x": 12, "y": 1},
-                {"x": 13, "y": 1},
-                {"x": 14, "y": 1},
-                {"x": 15, "y": 1},
-                {"x": 16, "y": 1},
-                {"x": 17, "y": 1},
-                {"x": 18, "y": 1, "w": 1.5},
-                {"x": 19.5, "y": 1},
-
-                {"x": 0, "y": 2},
-                {"x": 1, "y": 2},
-                {"x": 2, "y": 2},
-                {"x": 3, "y": 2},
-
-                {"x": 4.5, "y": 2, "w": 1.75},
-                {"x": 6.25, "y": 2},
-                {"x": 7.25, "y": 2},
-                {"x": 8.25, "y": 2},
-                {"x": 9.25, "y": 2},
-                {"x": 10.25, "y": 2},
-                {"x": 11.25, "y": 2},
-                {"x": 12.25, "y": 2},
-                {"x": 13.25, "y": 2},
-                {"x": 14.25, "y": 2},
-                {"x": 15.25, "y": 2},
-                {"x": 16.25, "y": 2},
-                {"x": 17.25, "y": 2, "w": 2.25},
-                {"x": 19.5, "y": 2},
-
-                {"x": 0, "y": 3},
-                {"x": 1, "y": 3},
-                {"x": 2, "y": 3},
-                {"x": 3, "y": 3},
-
-                {"x": 4.5, "y": 3, "w": 2.25},
-                {"x": 6.75, "y": 3},
-                {"x": 7.75, "y": 3},
-                {"x": 8.75, "y": 3},
-                {"x": 9.75, "y": 3},
-                {"x": 10.75, "y": 3},
-                {"x": 11.75, "y": 3},
-                {"x": 12.75, "y": 3},
-                {"x": 13.75, "y": 3},
-                {"x": 14.75, "y": 3},
-                {"x": 15.75, "y": 3},
-                {"x": 16.75, "y": 3, "w": 1.75},
-                {"x": 18.5, "y": 3},
-                {"x": 19.5, "y": 3},
-
-                {"x": 0, "y": 4},
-                {"x": 1, "y": 4},
-                {"x": 2, "y": 4},
-                {"x": 3, "y": 4},
-                {"x": 4.5, "y": 4, "w": 1.5},
-                {"x": 6, "y": 4},
-                {"x": 7, "y": 4, "w": 1.5},
-                {"x": 8.5, "y": 4, "w": 6.25},
-                {"x": 14.75, "y": 4, "w": 1.25},
-                {"x": 16, "y": 4},
-
-                {"x": 17.5, "y": 4},
-                {"x": 18.5, "y": 4},
-                {"x": 19.5, "y": 4}
-            ]
-        }
+        "vid": "0x4145"
     }
 }

+ 0 - 0
keyboards/aeboards/ext65/rev1/.noci


+ 114 - 1
keyboards/aeboards/ext65/rev1/info.json

@@ -1,5 +1,118 @@
 {
+    "keyboard_name": "Ext65 Rev1",
+    "manufacturer": "AEBoards",
+    "url": "",
+    "maintainer": "qmk",
     "usb": {
-        "pid": "0xAE65"
+        "pid": "0xAE65",
+        "device_version": "0.0.1"
+    },
+    "diode_direction": "COL2ROW",
+    "matrix_pins": {
+        "cols": ["B2", "B3", "B1", "B0", "F7", "F0", "F1", "F4", "F5", "F6"],
+        "rows": ["C6", "C7", "B5", "B6", "D7", "B4", "D4", "D6", "B7", "E6"]
+    },
+    "layouts": {
+        "LAYOUT_ext65": {
+            "layout": [
+                {"x": 0, "y": 0},
+                {"x": 1, "y": 0},
+                {"x": 2, "y": 0},
+                {"x": 3, "y": 0},
+
+                {"x": 4.5, "y": 0},
+                {"x": 5.5, "y": 0},
+                {"x": 6.5, "y": 0},
+                {"x": 7.5, "y": 0},
+                {"x": 8.5, "y": 0},
+                {"x": 9.5, "y": 0},
+                {"x": 10.5, "y": 0},
+                {"x": 11.5, "y": 0},
+                {"x": 12.5, "y": 0},
+                {"x": 13.5, "y": 0},
+                {"x": 14.5, "y": 0},
+                {"x": 15.5, "y": 0},
+                {"x": 16.5, "y": 0},
+                {"x": 17.5, "y": 0},
+                {"x": 18.5, "y": 0},
+                {"x": 19.5, "y": 0},
+
+                {"x": 0, "y": 1},
+                {"x": 1, "y": 1},
+                {"x": 2, "y": 1},
+                {"x": 3, "y": 1},
+
+                {"x": 4.5, "y": 1, "w": 1.5},
+                {"x": 6, "y": 1},
+                {"x": 7, "y": 1},
+                {"x": 8, "y": 1},
+                {"x": 9, "y": 1},
+                {"x": 10, "y": 1},
+                {"x": 11, "y": 1},
+                {"x": 12, "y": 1},
+                {"x": 13, "y": 1},
+                {"x": 14, "y": 1},
+                {"x": 15, "y": 1},
+                {"x": 16, "y": 1},
+                {"x": 17, "y": 1},
+                {"x": 18, "y": 1, "w": 1.5},
+                {"x": 19.5, "y": 1},
+
+                {"x": 0, "y": 2},
+                {"x": 1, "y": 2},
+                {"x": 2, "y": 2},
+                {"x": 3, "y": 2},
+
+                {"x": 4.5, "y": 2, "w": 1.75},
+                {"x": 6.25, "y": 2},
+                {"x": 7.25, "y": 2},
+                {"x": 8.25, "y": 2},
+                {"x": 9.25, "y": 2},
+                {"x": 10.25, "y": 2},
+                {"x": 11.25, "y": 2},
+                {"x": 12.25, "y": 2},
+                {"x": 13.25, "y": 2},
+                {"x": 14.25, "y": 2},
+                {"x": 15.25, "y": 2},
+                {"x": 16.25, "y": 2},
+                {"x": 17.25, "y": 2, "w": 2.25},
+                {"x": 19.5, "y": 2},
+
+                {"x": 0, "y": 3},
+                {"x": 1, "y": 3},
+                {"x": 2, "y": 3},
+                {"x": 3, "y": 3},
+
+                {"x": 4.5, "y": 3, "w": 2.25},
+                {"x": 6.75, "y": 3},
+                {"x": 7.75, "y": 3},
+                {"x": 8.75, "y": 3},
+                {"x": 9.75, "y": 3},
+                {"x": 10.75, "y": 3},
+                {"x": 11.75, "y": 3},
+                {"x": 12.75, "y": 3},
+                {"x": 13.75, "y": 3},
+                {"x": 14.75, "y": 3},
+                {"x": 15.75, "y": 3},
+                {"x": 16.75, "y": 3, "w": 1.75},
+                {"x": 18.5, "y": 3},
+                {"x": 19.5, "y": 3},
+
+                {"x": 0, "y": 4},
+                {"x": 1, "y": 4},
+                {"x": 2, "y": 4},
+                {"x": 3, "y": 4},
+                {"x": 4.5, "y": 4, "w": 1.5},
+                {"x": 6, "y": 4},
+                {"x": 7, "y": 4, "w": 1.5},
+                {"x": 8.5, "y": 4, "w": 6.25},
+                {"x": 14.75, "y": 4, "w": 1.25},
+                {"x": 16, "y": 4},
+
+                {"x": 17.5, "y": 4},
+                {"x": 18.5, "y": 4},
+                {"x": 19.5, "y": 4}
+            ]
+        }
     }
 }

+ 0 - 36
keyboards/aeboards/ext65/keymaps/default/keymap.c → keyboards/aeboards/ext65/rev1/keymaps/default/keymap.c

@@ -61,39 +61,3 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
     KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,                            KC_TRNS,                   KC_TRNS, KC_TRNS,                   KC_TRNS, KC_TRNS, KC_TRNS
   )
 };
-
-#ifdef OLED_ENABLE
-
-void render_layer_state(void) {
-    oled_write_ln(PSTR("LAYER"), false);
-    oled_write_ln(PSTR("L1"), layer_state_is(1));
-    oled_write_ln(PSTR("L2"), layer_state_is(2));
-    oled_write_ln(PSTR("L3"), layer_state_is(3));
-    oled_write_ln(PSTR(" "), false);
-}
-
-void render_keylock_status(led_t led_state) {
-    oled_write_ln(PSTR("Lock:"), false);
-    oled_write(PSTR("N"), led_state.num_lock);
-    oled_write(PSTR("C"), led_state.caps_lock);
-    oled_write_ln(PSTR("S"), led_state.scroll_lock);
-    oled_write_ln(PSTR(" "), false);
-}
-
-void render_mod_status(uint8_t modifiers) {
-    oled_write_ln(PSTR("Mods:"), false);
-    oled_write(PSTR("S"), (modifiers & MOD_MASK_SHIFT));
-    oled_write(PSTR("C"), (modifiers & MOD_MASK_CTRL));
-    oled_write(PSTR("A"), (modifiers & MOD_MASK_ALT));
-    oled_write_ln(PSTR("G"), (modifiers & MOD_MASK_GUI));
-    oled_write_ln(PSTR(" "), false);
-}
-
-bool oled_task_user(void) {
-    render_layer_state();
-    render_keylock_status(host_keyboard_led_state());
-    render_mod_status(get_mods()|get_oneshot_mods());
-    return false;
-}
-
-#endif

+ 0 - 0
keyboards/aeboards/ext65/keymaps/default/readme.md → keyboards/aeboards/ext65/rev1/keymaps/default/readme.md


+ 1 - 37
keyboards/aeboards/ext65/keymaps/via/keymap.c → keyboards/aeboards/ext65/rev1/keymaps/via/keymap.c

@@ -30,7 +30,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
    * `------------------------------------------------------------------------------------------'
    */
   [0] = LAYOUT_ext65(
-    KC_PMNS, KC_PAST, KC_PSLS, KC_NUM , 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_PSCR,
+    KC_PMNS, KC_PAST, KC_PSLS, KC_NUM,  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_PSCR,
     KC_PPLS, KC_P9  , KC_P8  , KC_P7  , 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_DEL ,
     KC_PPLS, KC_P6  , KC_P5  , KC_P4  , 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_PGUP,
     KC_PENT, KC_P3  , KC_P2  , KC_P1  , 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_UP  , KC_PGDN,
@@ -61,39 +61,3 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
     KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,                            KC_TRNS,                   KC_TRNS, KC_TRNS,                   KC_TRNS, KC_TRNS, KC_TRNS
   )
 };
-
-#ifdef OLED_ENABLE
-
-void render_layer_state(void) {
-    oled_write_ln(PSTR("LAYER"), false);
-    oled_write_ln(PSTR("L1"), layer_state_is(1));
-    oled_write_ln(PSTR("L2"), layer_state_is(2));
-    oled_write_ln(PSTR("L3"), layer_state_is(3));
-    oled_write_ln(PSTR(" "), false);
-}
-
-void render_keylock_status(led_t led_state) {
-    oled_write_ln(PSTR("Lock:"), false);
-    oled_write(PSTR("N"), led_state.num_lock);
-    oled_write(PSTR("C"), led_state.caps_lock);
-    oled_write_ln(PSTR("S"), led_state.scroll_lock);
-    oled_write_ln(PSTR(" "), false);
-}
-
-void render_mod_status(uint8_t modifiers) {
-    oled_write_ln(PSTR("Mods:"), false);
-    oled_write(PSTR("S"), (modifiers & MOD_MASK_SHIFT));
-    oled_write(PSTR("C"), (modifiers & MOD_MASK_CTRL));
-    oled_write(PSTR("A"), (modifiers & MOD_MASK_ALT));
-    oled_write_ln(PSTR("G"), (modifiers & MOD_MASK_GUI));
-    oled_write_ln(PSTR(" "), false);
-}
-
-bool oled_task_user(void) {
-    render_layer_state();
-    render_keylock_status(host_keyboard_led_state());
-    render_mod_status(get_mods()|get_oneshot_mods());
-    return false;
-}
-
-#endif

+ 0 - 0
keyboards/aeboards/ext65/keymaps/via/readme.md → keyboards/aeboards/ext65/rev1/keymaps/via/readme.md


+ 0 - 0
keyboards/aeboards/ext65/keymaps/via/rules.mk → keyboards/aeboards/ext65/rev1/keymaps/via/rules.mk


+ 16 - 0
keyboards/aeboards/ext65/rev1/rev1.c

@@ -1,3 +1,19 @@
+/* Copyright 2020 Harrison Chan (Xelus)
+ *
+ * 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 "rev1.h"
 
 void keyboard_pre_init_user(void) {

+ 0 - 1
keyboards/aeboards/ext65/rev1/rev1.h

@@ -16,7 +16,6 @@
 
 #pragma once
 
-#include "ext65.h"
 #include "quantum.h"
 
 #define ____ KC_NO

+ 15 - 35
keyboards/aeboards/ext65/rev2/config.h

@@ -1,41 +1,21 @@
-/*
-Copyright 2015 Jun Wako <wakojun@gmail.com>
-
-This program is free software: you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation, either version 2 of the License, or
-(at your option) any later version.
-
-This program is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-GNU General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with this program.  If not, see <http://www.gnu.org/licenses/>.
-*/
+/* Copyright 2020 Harrison Chan (Xelus)
+ *
+ * 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
 
-/* key matrix size */
-/* key matrix size */
-#define MATRIX_ROWS 10
-#define MATRIX_COLS 10
-
-/* key matrix pins */
-#define MATRIX_ROW_PINS { A10, A9, A8, B7, A2, A1, B12, B11, B10, B2 }
-#define MATRIX_COL_PINS { B14, B6, A0, B1, B0, A7, A6, A5, A4, A3 }
-
-#define DIODE_DIRECTION COL2ROW
-
-/* Set 0 if debouncing isn't 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
-
 //RGB Underglow WS2812
 #define RGBLIGHT_EFFECT_BREATHING
 #define RGBLIGHT_EFFECT_RAINBOW_MOOD

+ 114 - 1
keyboards/aeboards/ext65/rev2/info.json

@@ -1,5 +1,118 @@
 {
+    "keyboard_name": "Ext65 Rev2",
+    "manufacturer": "AEBoards",
+    "url": "",
+    "maintainer": "qmk",
     "usb": {
-        "pid": "0xA652"
+        "pid": "0xA652",
+        "device_version": "0.0.1"
+    },
+    "diode_direction": "COL2ROW",
+    "matrix_pins": {
+        "cols": ["B14", "B6", "A0", "B1", "B0", "A7", "A6", "A5", "A4", "A3"],
+        "rows": ["A10", "A9", "A8", "B7", "A2", "A1", "B12", "B11", "B10", "B2"]
+    },
+    "layouts": {
+        "LAYOUT_ext65": {
+            "layout": [
+                {"x": 0, "y": 0},
+                {"x": 1, "y": 0},
+                {"x": 2, "y": 0},
+                {"x": 3, "y": 0},
+
+                {"x": 4.5, "y": 0},
+                {"x": 5.5, "y": 0},
+                {"x": 6.5, "y": 0},
+                {"x": 7.5, "y": 0},
+                {"x": 8.5, "y": 0},
+                {"x": 9.5, "y": 0},
+                {"x": 10.5, "y": 0},
+                {"x": 11.5, "y": 0},
+                {"x": 12.5, "y": 0},
+                {"x": 13.5, "y": 0},
+                {"x": 14.5, "y": 0},
+                {"x": 15.5, "y": 0},
+                {"x": 16.5, "y": 0},
+                {"x": 17.5, "y": 0},
+                {"x": 18.5, "y": 0},
+                {"x": 19.5, "y": 0},
+
+                {"x": 0, "y": 1},
+                {"x": 1, "y": 1},
+                {"x": 2, "y": 1},
+                {"x": 3, "y": 1},
+
+                {"x": 4.5, "y": 1, "w": 1.5},
+                {"x": 6, "y": 1},
+                {"x": 7, "y": 1},
+                {"x": 8, "y": 1},
+                {"x": 9, "y": 1},
+                {"x": 10, "y": 1},
+                {"x": 11, "y": 1},
+                {"x": 12, "y": 1},
+                {"x": 13, "y": 1},
+                {"x": 14, "y": 1},
+                {"x": 15, "y": 1},
+                {"x": 16, "y": 1},
+                {"x": 17, "y": 1},
+                {"x": 18, "y": 1, "w": 1.5},
+                {"x": 19.5, "y": 1},
+
+                {"x": 0, "y": 2},
+                {"x": 1, "y": 2},
+                {"x": 2, "y": 2},
+                {"x": 3, "y": 2},
+
+                {"x": 4.5, "y": 2, "w": 1.75},
+                {"x": 6.25, "y": 2},
+                {"x": 7.25, "y": 2},
+                {"x": 8.25, "y": 2},
+                {"x": 9.25, "y": 2},
+                {"x": 10.25, "y": 2},
+                {"x": 11.25, "y": 2},
+                {"x": 12.25, "y": 2},
+                {"x": 13.25, "y": 2},
+                {"x": 14.25, "y": 2},
+                {"x": 15.25, "y": 2},
+                {"x": 16.25, "y": 2},
+                {"x": 17.25, "y": 2, "w": 2.25},
+                {"x": 19.5, "y": 2},
+
+                {"x": 0, "y": 3},
+                {"x": 1, "y": 3},
+                {"x": 2, "y": 3},
+                {"x": 3, "y": 3},
+
+                {"x": 4.5, "y": 3, "w": 2.25},
+                {"x": 6.75, "y": 3},
+                {"x": 7.75, "y": 3},
+                {"x": 8.75, "y": 3},
+                {"x": 9.75, "y": 3},
+                {"x": 10.75, "y": 3},
+                {"x": 11.75, "y": 3},
+                {"x": 12.75, "y": 3},
+                {"x": 13.75, "y": 3},
+                {"x": 14.75, "y": 3},
+                {"x": 15.75, "y": 3},
+                {"x": 16.75, "y": 3, "w": 1.75},
+                {"x": 18.5, "y": 3},
+                {"x": 19.5, "y": 3},
+
+                {"x": 0, "y": 4},
+                {"x": 1, "y": 4},
+                {"x": 2, "y": 4},
+                {"x": 3, "y": 4},
+                {"x": 4.5, "y": 4, "w": 1.5},
+                {"x": 6, "y": 4},
+                {"x": 7, "y": 4, "w": 1.5},
+                {"x": 8.5, "y": 4, "w": 6.25},
+                {"x": 14.75, "y": 4, "w": 1.25},
+                {"x": 16, "y": 4},
+
+                {"x": 17.5, "y": 4},
+                {"x": 18.5, "y": 4},
+                {"x": 19.5, "y": 4}
+            ]
+        }
     }
 }

+ 63 - 0
keyboards/aeboards/ext65/rev2/keymaps/default/keymap.c

@@ -0,0 +1,63 @@
+/* Copyright 2020 Harrison Chan (Xelus)
+ *
+ * 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] = {
+  /* Keymap BASE: (Base Layer) Default Layer
+   * ,-------------------.  ,-------------------------------------------------------------------.
+   * |-   | *  | /  |NmLK|  |Esc| 1 |  2|  3|  4|  5|  6|  7|  8|  9|  0|  -|  =|pipe| ~  | Pscr|
+   * |-------------------|  |-------------------------------------------------------------------|
+   * |    | 9  | 8  | 7  |  |Tab  |  Q|  W|  E|  R|  T|  Y|  U|  I|  O|  P|  [|  ]| BSPC  | Del |
+   * |  + |--------------|  |-------------------------------------------------------------------|
+   * |    | 6  | 5  | 4  |  |Caps   |  A|  S|  D|  F|  G|  H|  J|  K|  L|  ;|  '|Return   | Pgup|
+   * |-------------------|  |-------------------------------------------------------------------|
+   * |    | 3  | 2  | 1  |  |Shift    |  Z|  X|  C|  V|  B|  N|  M|  ,|  .|  /|Shift | Up | Pgdn|
+   * | ENT|-------------------------------------------------------------------------------------|
+   * |    | .  | 0       |  | Ctrl | Win | Alt |    Space        | FN | Ctrl |  |Left| Dn | Rght|
+   * `------------------------------------------------------------------------------------------'
+   */
+  [0] = LAYOUT_ext65(
+    KC_PMNS, KC_PAST, KC_PSLS, KC_NUM,  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_PSCR,
+    KC_PPLS, KC_P9  , KC_P8  , KC_P7  , 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_DEL ,
+    KC_PPLS, KC_P6  , KC_P5  , KC_P4  , 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_PGUP,
+    KC_PENT, KC_P3  , KC_P2  , KC_P1  , 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_UP  , KC_PGDN,
+    KC_PENT, KC_PDOT, KC_P0  , KC_P0  , KC_LCTL, KC_LGUI, KC_LALT,                            KC_SPC ,                   MO(1)  , KC_RCTL,                   KC_LEFT, KC_DOWN, KC_RGHT
+  ),
+
+  [1] = LAYOUT_ext65(
+    KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, QK_BOOT,
+    KC_TRNS, RGB_TOG, RGB_MOD, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,          EE_CLR,
+    KC_TRNS, RGB_HUI, RGB_SAI, RGB_VAI, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,                   DB_TOGG,
+    KC_TRNS, RGB_HUD, RGB_SAD, RGB_VAD, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,                   KC_TRNS, KC_TRNS,
+    KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,                            KC_TRNS,                   KC_TRNS, KC_TRNS,                   KC_TRNS, KC_TRNS, KC_TRNS
+  ),
+
+  [2] = LAYOUT_ext65(
+    KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+    KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,          KC_TRNS,
+    KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,                   KC_TRNS,
+    KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,                   KC_TRNS, KC_TRNS,
+    KC_TRNS, 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] = LAYOUT_ext65(
+    KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+    KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,          KC_TRNS,
+    KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,                   KC_TRNS,
+    KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,                   KC_TRNS, KC_TRNS,
+    KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,                            KC_TRNS,                   KC_TRNS, KC_TRNS,                   KC_TRNS, KC_TRNS, KC_TRNS
+  )
+};

+ 2 - 0
keyboards/aeboards/ext65/rev2/keymaps/default/readme.md

@@ -0,0 +1,2 @@
+# The Default Ext65Rev2 Layout
+

+ 63 - 0
keyboards/aeboards/ext65/rev2/keymaps/via/keymap.c

@@ -0,0 +1,63 @@
+/* Copyright 2020 Harrison Chan (Xelus)
+ *
+ * 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] = {
+  /* Keymap BASE: (Base Layer) Default Layer
+   * ,-------------------.  ,-------------------------------------------------------------------.
+   * |-   | *  | /  |NmLK|  |Esc| 1 |  2|  3|  4|  5|  6|  7|  8|  9|  0|  -|  =|pipe| ~  | Pscr|
+   * |-------------------|  |-------------------------------------------------------------------|
+   * |    | 9  | 8  | 7  |  |Tab  |  Q|  W|  E|  R|  T|  Y|  U|  I|  O|  P|  [|  ]| BSPC  | Del |
+   * |  + |--------------|  |-------------------------------------------------------------------|
+   * |    | 6  | 5  | 4  |  |Caps   |  A|  S|  D|  F|  G|  H|  J|  K|  L|  ;|  '|Return   | Pgup|
+   * |-------------------|  |-------------------------------------------------------------------|
+   * |    | 3  | 2  | 1  |  |Shift    |  Z|  X|  C|  V|  B|  N|  M|  ,|  .|  /|Shift | Up | Pgdn|
+   * | ENT|-------------------------------------------------------------------------------------|
+   * |    | .  | 0       |  | Ctrl | Win | Alt |    Space        | FN | Ctrl |  |Left| Dn | Rght|
+   * `------------------------------------------------------------------------------------------'
+   */
+  [0] = LAYOUT_ext65(
+    KC_PMNS, KC_PAST, KC_PSLS, KC_NUM,  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_PSCR,
+    KC_PPLS, KC_P9  , KC_P8  , KC_P7  , 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_DEL ,
+    KC_PPLS, KC_P6  , KC_P5  , KC_P4  , 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_PGUP,
+    KC_PENT, KC_P3  , KC_P2  , KC_P1  , 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_UP  , KC_PGDN,
+    KC_PENT, KC_PDOT, KC_P0  , KC_P0  , KC_LCTL, KC_LGUI, KC_LALT,                            KC_SPC ,                   MO(1)  , KC_RCTL,                   KC_LEFT, KC_DOWN, KC_RGHT
+  ),
+
+  [1] = LAYOUT_ext65(
+    KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, QK_BOOT,
+    KC_TRNS, RGB_TOG, RGB_MOD, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,          EE_CLR,
+    KC_TRNS, RGB_HUI, RGB_SAI, RGB_VAI, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,                   DB_TOGG,
+    KC_TRNS, RGB_HUD, RGB_SAD, RGB_VAD, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,                   KC_TRNS, KC_TRNS,
+    KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,                            KC_TRNS,                   KC_TRNS, KC_TRNS,                   KC_TRNS, KC_TRNS, KC_TRNS
+  ),
+
+  [2] = LAYOUT_ext65(
+    KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+    KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,          KC_TRNS,
+    KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,                   KC_TRNS,
+    KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,                   KC_TRNS, KC_TRNS,
+    KC_TRNS, 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] = LAYOUT_ext65(
+    KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+    KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,          KC_TRNS,
+    KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,                   KC_TRNS,
+    KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,                   KC_TRNS, KC_TRNS,
+    KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,                            KC_TRNS,                   KC_TRNS, KC_TRNS,                   KC_TRNS, KC_TRNS, KC_TRNS
+  )
+};

+ 2 - 0
keyboards/aeboards/ext65/rev2/keymaps/via/readme.md

@@ -0,0 +1,2 @@
+# The VIA Ext65Rev2 Layout
+

+ 3 - 0
keyboards/aeboards/ext65/rev2/keymaps/via/rules.mk

@@ -0,0 +1,3 @@
+VIA_ENABLE = yes
+OLED_ENABLE = yes
+# OLED_DRIVER = not a real thing

+ 49 - 0
keyboards/aeboards/ext65/rev2/rev2.c

@@ -1,3 +1,19 @@
+/* Copyright 2020 Harrison Chan (Xelus)
+ *
+ * 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 "rev2.h"
 
 // Tested and verified working on ext65rev2
@@ -13,6 +29,38 @@ oled_rotation_t oled_init_kb(oled_rotation_t rotation) {
     return OLED_ROTATION_90;  // rotates the display 90 degrees
 }
 
+void render_layer_state(void) {
+    oled_write_ln(PSTR("LAYER"), false);
+    oled_write_ln(PSTR("L1"), layer_state_is(1));
+    oled_write_ln(PSTR("L2"), layer_state_is(2));
+    oled_write_ln(PSTR("L3"), layer_state_is(3));
+    oled_write_ln(PSTR(" "), false);
+}
+
+void render_keylock_status(led_t led_state) {
+    oled_write_ln(PSTR("Lock:"), false);
+    oled_write(PSTR("N"), led_state.num_lock);
+    oled_write(PSTR("C"), led_state.caps_lock);
+    oled_write_ln(PSTR("S"), led_state.scroll_lock);
+    oled_write_ln(PSTR(" "), false);
+}
+
+void render_mod_status(uint8_t modifiers) {
+    oled_write_ln(PSTR("Mods:"), false);
+    oled_write(PSTR("S"), (modifiers & MOD_MASK_SHIFT));
+    oled_write(PSTR("C"), (modifiers & MOD_MASK_CTRL));
+    oled_write(PSTR("A"), (modifiers & MOD_MASK_ALT));
+    oled_write_ln(PSTR("G"), (modifiers & MOD_MASK_GUI));
+    oled_write_ln(PSTR(" "), false);
+}
+
+bool oled_task_kb(void) {
+    render_layer_state();
+    render_keylock_status(host_keyboard_led_state());
+    render_mod_status(get_mods()|get_oneshot_mods());
+    return false;
+}
+
 #else
 
 void keyboard_pre_init_user(void) {
@@ -46,3 +94,4 @@ layer_state_t layer_state_set_kb(layer_state_t state) {
     return layer_state_set_user(state);
 }
 #endif
+

+ 0 - 1
keyboards/aeboards/ext65/rev2/rev2.h

@@ -16,7 +16,6 @@
 
 #pragma once
 
-#include "ext65.h"
 #include "quantum.h"
 
 #define ____ KC_NO

+ 5 - 21
keyboards/aeboards/ext65/rev1/config.h → keyboards/aeboards/ext65/rev3/config.h

@@ -16,24 +16,8 @@
 
 #pragma once
 
-#include "config_common.h"
-
-/* key matrix size */
-#define MATRIX_ROWS 10
-#define MATRIX_COLS 10
-
-/* key matrix pins */
-#define MATRIX_ROW_PINS { C6, C7, B5, B6, D7, B4, D4, D6, B7, E6 }
-#define MATRIX_COL_PINS { B2, B3, B1, B0, F7, F0, F1, F4, F5, F6 }
-
-/* COL2ROW or ROW2COL */
-#define DIODE_DIRECTION COL2ROW
-
-/* Set 0 if debouncing isn't 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
+// Locks
+#define LED_NUM_LOCK_PIN F5
+#define LED_CAPS_LOCK_PIN F4
+#define LED_SCROLL_LOCK_PIN F1
+#define LED_LAYERS_PIN F0

+ 440 - 0
keyboards/aeboards/ext65/rev3/info.json

@@ -0,0 +1,440 @@
+{
+    "keyboard_name": "Ext65 Rev3",
+    "manufacturer": "AEBoards",
+    "url": "",
+    "maintainer": "qmk",
+    "usb": {
+        "pid": "0xA653",
+        "device_version": "0.0.1"
+    },
+    "diode_direction": "COL2ROW",
+    "matrix_pins": {
+        "cols": ["F6", "F7", "B1", "B3", "B2", "D5", "D3", "D2", "D1", "D0"],
+        "rows": ["B5", "B6", "C6", "C7", "E6", "B0", "B4", "D7", "D4", "D6"]
+    },
+    "layouts": {
+        "LAYOUT_ext65_hotswap": {
+            "layout": [
+                {
+                    "x": 0,
+                    "y": 0
+                },
+                {
+                    "x": 1,
+                    "y": 0
+                },
+                {
+                    "x": 2,
+                    "y": 0
+                },
+                {
+                    "x": 3,
+                    "y": 0
+                },
+                {
+                    "label": "Esc",
+                    "x": 4.5,
+                    "y": 0
+                },
+                {
+                    "label": "!",
+                    "x": 5.5,
+                    "y": 0
+                },
+                {
+                    "label": "@",
+                    "x": 6.5,
+                    "y": 0
+                },
+                {
+                    "label": "#",
+                    "x": 7.5,
+                    "y": 0
+                },
+                {
+                    "label": "$",
+                    "x": 8.5,
+                    "y": 0
+                },
+                {
+                    "label": "%",
+                    "x": 9.5,
+                    "y": 0
+                },
+                {
+                    "label": "^",
+                    "x": 10.5,
+                    "y": 0
+                },
+                {
+                    "label": "&",
+                    "x": 11.5,
+                    "y": 0
+                },
+                {
+                    "label": "*",
+                    "x": 12.5,
+                    "y": 0
+                },
+                {
+                    "label": "(",
+                    "x": 13.5,
+                    "y": 0
+                },
+                {
+                    "label": ")",
+                    "x": 14.5,
+                    "y": 0
+                },
+                {
+                    "label": "_",
+                    "x": 15.5,
+                    "y": 0
+                },
+                {
+                    "label": "+",
+                    "x": 16.5,
+                    "y": 0
+                },
+                {
+                    "label": "Backspace",
+                    "x": 17.5,
+                    "y": 0,
+                    "w": 2
+                },
+                {
+                    "label": "Home",
+                    "x": 19.5,
+                    "y": 0
+                },
+                {
+                    "x": 0,
+                    "y": 1,
+                    "h": 2
+                },
+                {
+                    "x": 1,
+                    "y": 1
+                },
+                {
+                    "x": 2,
+                    "y": 1
+                },
+                {
+                    "x": 3,
+                    "y": 1
+                },
+                {
+                    "label": "Tab",
+                    "x": 4.5,
+                    "y": 1,
+                    "w": 1.5
+                },
+                {
+                    "label": "Q",
+                    "x": 6,
+                    "y": 1
+                },
+                {
+                    "label": "W",
+                    "x": 7,
+                    "y": 1
+                },
+                {
+                    "label": "E",
+                    "x": 8,
+                    "y": 1
+                },
+                {
+                    "label": "R",
+                    "x": 9,
+                    "y": 1
+                },
+                {
+                    "label": "T",
+                    "x": 10,
+                    "y": 1
+                },
+                {
+                    "label": "Y",
+                    "x": 11,
+                    "y": 1
+                },
+                {
+                    "label": "U",
+                    "x": 12,
+                    "y": 1
+                },
+                {
+                    "label": "I",
+                    "x": 13,
+                    "y": 1
+                },
+                {
+                    "label": "O",
+                    "x": 14,
+                    "y": 1
+                },
+                {
+                    "label": "P",
+                    "x": 15,
+                    "y": 1
+                },
+                {
+                    "label": "{",
+                    "x": 16,
+                    "y": 1
+                },
+                {
+                    "label": "}",
+                    "x": 17,
+                    "y": 1
+                },
+                {
+                    "label": "|",
+                    "x": 18,
+                    "y": 1,
+                    "w": 1.5
+                },
+                {
+                    "label": "PgUp",
+                    "x": 19.5,
+                    "y": 1
+                },
+                {
+                    "x": 1,
+                    "y": 2
+                },
+                {
+                    "x": 2,
+                    "y": 2
+                },
+                {
+                    "x": 3,
+                    "y": 2
+                },
+                {
+                    "label": "Caps Lock",
+                    "x": 4.5,
+                    "y": 2,
+                    "w": 1.75
+                },
+                {
+                    "label": "A",
+                    "x": 6.25,
+                    "y": 2
+                },
+                {
+                    "label": "S",
+                    "x": 7.25,
+                    "y": 2
+                },
+                {
+                    "label": "D",
+                    "x": 8.25,
+                    "y": 2
+                },
+                {
+                    "label": "F",
+                    "x": 9.25,
+                    "y": 2
+                },
+                {
+                    "label": "G",
+                    "x": 10.25,
+                    "y": 2
+                },
+                {
+                    "label": "H",
+                    "x": 11.25,
+                    "y": 2
+                },
+                {
+                    "label": "J",
+                    "x": 12.25,
+                    "y": 2
+                },
+                {
+                    "label": "K",
+                    "x": 13.25,
+                    "y": 2
+                },
+                {
+                    "label": "L",
+                    "x": 14.25,
+                    "y": 2
+                },
+                {
+                    "label": ":",
+                    "x": 15.25,
+                    "y": 2
+                },
+                {
+                    "label": "\"",
+                    "x": 16.25,
+                    "y": 2
+                },
+                {
+                    "label": "Enter",
+                    "x": 17.25,
+                    "y": 2,
+                    "w": 2.25
+                },
+                {
+                    "label": "PgDn",
+                    "x": 19.5,
+                    "y": 2
+                },
+                {
+                    "x": 0,
+                    "y": 3,
+                    "h": 2
+                },
+                {
+                    "x": 1,
+                    "y": 3
+                },
+                {
+                    "x": 2,
+                    "y": 3
+                },
+                {
+                    "x": 3,
+                    "y": 3
+                },
+                {
+                    "label": "Shift",
+                    "x": 4.5,
+                    "y": 3,
+                    "w": 2.25
+                },
+                {
+                    "label": "Z",
+                    "x": 6.75,
+                    "y": 3
+                },
+                {
+                    "label": "X",
+                    "x": 7.75,
+                    "y": 3
+                },
+                {
+                    "label": "C",
+                    "x": 8.75,
+                    "y": 3
+                },
+                {
+                    "label": "V",
+                    "x": 9.75,
+                    "y": 3
+                },
+                {
+                    "label": "B",
+                    "x": 10.75,
+                    "y": 3
+                },
+                {
+                    "label": "N",
+                    "x": 11.75,
+                    "y": 3
+                },
+                {
+                    "label": "M",
+                    "x": 12.75,
+                    "y": 3
+                },
+                {
+                    "label": "<",
+                    "x": 13.75,
+                    "y": 3
+                },
+                {
+                    "label": ">",
+                    "x": 14.75,
+                    "y": 3
+                },
+                {
+                    "label": "?",
+                    "x": 15.75,
+                    "y": 3
+                },
+                {
+                    "label": "Shift",
+                    "x": 16.75,
+                    "y": 3,
+                    "w": 1.75
+                },
+                {
+                    "label": "\u2191",
+                    "x": 18.5,
+                    "y": 3
+                },
+                {
+                    "label": "End",
+                    "x": 19.5,
+                    "y": 3
+                },
+                {
+                    "x": 1,
+                    "y": 4
+                },
+                {
+                    "x": 2,
+                    "y": 4,
+                    "w": 2
+                },
+                {
+                    "label": "Ctrl",
+                    "x": 4.5,
+                    "y": 4,
+                    "w": 1.25
+                },
+                {
+                    "label": "Win",
+                    "x": 5.75,
+                    "y": 4,
+                    "w": 1.25
+                },
+                {
+                    "label": "Alt",
+                    "x": 7,
+                    "y": 4,
+                    "w": 1.25
+                },
+                {
+                    "label": "Space",
+                    "x": 8.25,
+                    "y": 4,
+                    "w": 6.25
+                },
+                {
+                    "label": "Alt",
+                    "x": 14.5,
+                    "y": 4,
+                    "w": 1.5
+                },
+                {
+                    "label": "Fn",
+                    "x": 16,
+                    "y": 4,
+                    "w": 1.5
+                },
+                {
+                    "label": "\u2190",
+                    "x": 17.5,
+                    "y": 4
+                },
+                {
+                    "label": "\u2193",
+                    "x": 18.5,
+                    "y": 4
+                },
+                {
+                    "label": "\u2192",
+                    "x": 19.5,
+                    "y": 4
+                }
+            ]
+        }
+    }
+}

+ 63 - 0
keyboards/aeboards/ext65/rev3/keymaps/default/keymap.c

@@ -0,0 +1,63 @@
+/* Copyright 2022 Harrison Chan (Xelus)
+ *
+ * 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] = {
+  /* Keymap BASE: (Base Layer) Default Layer
+   * ,-------------------.  ,-------------------------------------------------------------------.
+   * |-   | *  | /  |NmLK|  |Esc| 1 |  2|  3|  4|  5|  6|  7|  8|  9|  0|  -|  =|  BSPC   | Pscr|
+   * |-------------------|  |-------------------------------------------------------------------|
+   * |    | 9  | 8  | 7  |  |Tab  |  Q|  W|  E|  R|  T|  Y|  U|  I|  O|  P|  [|  ]|   \|  | Del |
+   * |  + |--------------|  |-------------------------------------------------------------------|
+   * |    | 6  | 5  | 4  |  |Caps   |  A|  S|  D|  F|  G|  H|  J|  K|  L|  ;|  '|Return   | Pgup|
+   * |-------------------|  |-------------------------------------------------------------------|
+   * |    | 3  | 2  | 1  |  |Shift    |  Z|  X|  C|  V|  B|  N|  M|  ,|  .|  /|Shift | Up | Pgdn|
+   * | ENT|-------------------------------------------------------------------------------------|
+   * |    | .  | 0       |  | Ctrl | Win | Alt |    Space        | FN | Ctrl |  |Left| Dn | Rght|
+   * `------------------------------------------------------------------------------------------'
+   */
+  [0] = LAYOUT_ext65_hotswap(
+    KC_PMNS, KC_PAST, KC_PSLS, KC_NUM, 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_PSCR,
+    KC_PPLS, KC_P9  , KC_P8  , KC_P7  , KC_TAB , KC_Q   , KC_W   , KC_E   , KC_R   , KC_T   , KC_Y   , KC_U   , KC_I   , KC_O   , KC_P   , KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL ,
+             KC_P6  , KC_P5  , KC_P4  , 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_PGUP,
+    KC_PENT, KC_P3  , KC_P2  , KC_P1  , 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_UP  , KC_PGDN,
+             KC_PDOT, KC_P0  ,          KC_LCTL, KC_LGUI, KC_LALT,                            KC_SPC ,                   MO(1)  , KC_RCTL,          KC_LEFT, KC_DOWN, KC_RGHT
+  ),
+
+  [1] = LAYOUT_ext65_hotswap(
+    KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, QK_BOOT,
+    KC_TRNS, RGB_TOG, RGB_MOD, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, EE_CLR,
+             RGB_HUI, RGB_SAI, RGB_VAI, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,          DB_TOGG,
+    KC_TRNS, RGB_HUD, RGB_SAD, RGB_VAD, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,          KC_TRNS, KC_TRNS,
+             KC_TRNS, KC_TRNS,          KC_TRNS, KC_TRNS, KC_TRNS,                            KC_TRNS,                   KC_TRNS, KC_TRNS,          KC_TRNS, KC_TRNS, KC_TRNS
+  ),
+
+  [2] = LAYOUT_ext65_hotswap(
+    KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+    KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+             KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,          KC_TRNS,
+    KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,          KC_TRNS, 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] = LAYOUT_ext65_hotswap(
+    KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+    KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+             KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,          KC_TRNS,
+    KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,          KC_TRNS, KC_TRNS,
+             KC_TRNS, KC_TRNS,          KC_TRNS, KC_TRNS, KC_TRNS,                            KC_TRNS,                   KC_TRNS, KC_TRNS,          KC_TRNS, KC_TRNS, KC_TRNS
+  )
+};

+ 2 - 0
keyboards/aeboards/ext65/rev3/keymaps/default/readme.md

@@ -0,0 +1,2 @@
+# The Default Ext65 Rev3 Layout
+

+ 63 - 0
keyboards/aeboards/ext65/rev3/keymaps/via/keymap.c

@@ -0,0 +1,63 @@
+/* Copyright 2022 Harrison Chan (Xelus)
+ *
+ * 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] = {
+  /* Keymap BASE: (Base Layer) Default Layer
+   * ,-------------------.  ,-------------------------------------------------------------------.
+   * |-   | *  | /  |NmLK|  |Esc| 1 |  2|  3|  4|  5|  6|  7|  8|  9|  0|  -|  =|  BSPC   | Pscr|
+   * |-------------------|  |-------------------------------------------------------------------|
+   * |    | 9  | 8  | 7  |  |Tab  |  Q|  W|  E|  R|  T|  Y|  U|  I|  O|  P|  [|  ]|   \|  | Del |
+   * |  + |--------------|  |-------------------------------------------------------------------|
+   * |    | 6  | 5  | 4  |  |Caps   |  A|  S|  D|  F|  G|  H|  J|  K|  L|  ;|  '|Return   | Pgup|
+   * |-------------------|  |-------------------------------------------------------------------|
+   * |    | 3  | 2  | 1  |  |Shift    |  Z|  X|  C|  V|  B|  N|  M|  ,|  .|  /|Shift | Up | Pgdn|
+   * | ENT|-------------------------------------------------------------------------------------|
+   * |    | .  | 0       |  | Ctrl | Win | Alt |    Space        | FN | Ctrl |  |Left| Dn | Rght|
+   * `------------------------------------------------------------------------------------------'
+   */
+  [0] = LAYOUT_ext65_hotswap(
+    KC_PMNS, KC_PAST, KC_PSLS, KC_NUM, 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_PSCR,
+    KC_PPLS, KC_P9  , KC_P8  , KC_P7  , KC_TAB , KC_Q   , KC_W   , KC_E   , KC_R   , KC_T   , KC_Y   , KC_U   , KC_I   , KC_O   , KC_P   , KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL ,
+             KC_P6  , KC_P5  , KC_P4  , 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_PGUP,
+    KC_PENT, KC_P3  , KC_P2  , KC_P1  , 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_UP  , KC_PGDN,
+             KC_PDOT, KC_P0  ,          KC_LCTL, KC_LGUI, KC_LALT,                            KC_SPC ,                   MO(1)  , KC_RCTL,          KC_LEFT, KC_DOWN, KC_RGHT
+  ),
+
+  [1] = LAYOUT_ext65_hotswap(
+    KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, QK_BOOT,
+    KC_TRNS, RGB_TOG, RGB_MOD, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, EE_CLR,
+             RGB_HUI, RGB_SAI, RGB_VAI, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,          DB_TOGG,
+    KC_TRNS, RGB_HUD, RGB_SAD, RGB_VAD, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,          KC_TRNS, KC_TRNS,
+             KC_TRNS, KC_TRNS,          KC_TRNS, KC_TRNS, KC_TRNS,                            KC_TRNS,                   KC_TRNS, KC_TRNS,          KC_TRNS, KC_TRNS, KC_TRNS
+  ),
+
+  [2] = LAYOUT_ext65_hotswap(
+    KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+    KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+             KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,          KC_TRNS,
+    KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,          KC_TRNS, 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] = LAYOUT_ext65_hotswap(
+    KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+    KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+             KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,          KC_TRNS,
+    KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,          KC_TRNS, KC_TRNS,
+             KC_TRNS, KC_TRNS,          KC_TRNS, KC_TRNS, KC_TRNS,                            KC_TRNS,                   KC_TRNS, KC_TRNS,          KC_TRNS, KC_TRNS, KC_TRNS
+  )
+};

+ 2 - 0
keyboards/aeboards/ext65/rev3/keymaps/via/readme.md

@@ -0,0 +1,2 @@
+# The VIA Ext65 Rev3 Layout
+

+ 1 - 0
keyboards/aeboards/ext65/rev3/keymaps/via/rules.mk

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

+ 38 - 0
keyboards/aeboards/ext65/rev3/rev3.c

@@ -0,0 +1,38 @@
+/* Copyright 2022 Harrison Chan (Xelus)
+ *
+ * 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 "rev3.h"
+
+// Tested and verified working on EXT65 Rev3
+void matrix_io_delay(void) { __asm__ volatile("nop\nnop\nnop\n"); }
+
+void keyboard_pre_init_user(void) {
+  // Call the keyboard pre init code.
+  // Set our LED pins as output
+  setPinOutput(LED_LAYERS_PIN);
+}
+
+layer_state_t layer_state_set_kb(layer_state_t state) {
+    switch (get_highest_layer(state)) {
+      case 1:
+        writePinHigh(LED_LAYERS_PIN);
+        break;
+      default: //  for any other layers, or the default layer
+        writePinLow(LED_LAYERS_PIN);
+        break;
+      }
+    return layer_state_set_user(state);
+}

+ 40 - 0
keyboards/aeboards/ext65/rev3/rev3.h

@@ -0,0 +1,40 @@
+/* Copyright 2022 Harrison Chan (Xelus)
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program.  If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#pragma once
+
+#include "quantum.h"
+
+#define ____ KC_NO
+
+#define LAYOUT_ext65_hotswap( \
+  K000, K100, K001, K101,  K002, K102, K003, K103, K004, K104, K005, K105, K006, K106, K007, K107, K008, K108, K009, \
+  K200, K300, K201, K301,  K202, K302, K203, K303, K204, K304, K205, K305, K206, K306, K207, K307, K208, K308, K209, \
+        K500, K401, K501,  K402, K502, K403, K503, K404, K504, K405, K505, K406, K506, K407, K507, K408,       K409, \
+  K600, K700, K601, K701,  K602, K702, K603, K703, K604, K704, K605, K705, K606, K706, K607, K708,       K608, K709, \
+        K900, K801,        K802, K902, K803,                   K805,             K906, K807,       K908, K808, K909  \
+) { \
+  { K000, K001, K002, K003, K004, K005, K006, K007, K008, K009 }, \
+  { K100, K101, K102, K103, K104, K105, K106, K107, K108, ____ }, \
+  { K200, K201, K202, K203, K204, K205, K206, K207, K208, K209 }, \
+  { K300, K301, K302, K303, K304, K305, K306, K307, K308, ____ }, \
+  { ____, K401, K402, K403, K404, K405, K406, K407, K408, K409 }, \
+  { K500, K501, K502, K503, K504, K505, K506, K507, ____, ____ }, \
+  { K600, K601, K602, K603, K604, K605, K606, K607, K608, ____ }, \
+  { K700, K701, K702, K703, K704, K705, K706, ____, K708, K709 }, \
+  { ____, K801, K802, K803, ____, K805, ____, K807, K808, ____ }, \
+  { K900, ____, K902, ____, ____, ____, K906, ____, K908, K909 } \
+}

+ 19 - 0
keyboards/aeboards/ext65/rev3/rules.mk

@@ -0,0 +1,19 @@
+# MCU name
+MCU = atmega32u4
+
+# Bootloader selection
+BOOTLOADER = atmel-dfu
+
+# Build Options
+#   change yes to no to disable
+#
+BOOTMAGIC_ENABLE = 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
+AUDIO_ENABLE = no           # Audio output
+OPT = 3
+LTO_ENABLE = yes

+ 1 - 1
keyboards/atreyu/rev1/info.json

@@ -70,7 +70,7 @@
                 {"x":11, "y":4.25},
                 {"x":12, "y":4.15},
                 {"x":13, "y":4.125},
-                {"x": 14.5, "y": 4.5}
+                {"x": 15.5, "y": 4.5}
             ]
         }
     }

+ 5 - 11
keyboards/atreyu/rev1/rev1.c

@@ -14,6 +14,8 @@
  * along with this program.  If not, see <http://www.gnu.org/licenses/>.
  */
 
+#include "rev1.h"
+
 #ifdef ENCODER_ENABLE
 bool encoder_update_kb(uint8_t index, bool clockwise) {
     if (!encoder_update_user(index, clockwise)) {
@@ -28,18 +30,10 @@ bool encoder_update_kb(uint8_t index, bool clockwise) {
       }
     }
     if (index == 0) {
-      if (IS_LAYER_ON(_LOWER)) {
-        if (clockwise) {
-            tap_code(KC_WH_U);
-        } else {
-            tap_code(KC_WH_D);
-        }
+      if (clockwise) {
+          tap_code(KC_WH_U);
       } else {
-        if (clockwise) {
-            tap_code(KC_VOLU);
-        } else {
-            tap_code(KC_VOLD);
-        }
+          tap_code(KC_WH_D);
       }
     }
     return true;

+ 10 - 10
keyboards/ducky/one2sf/keymaps/default/keymap.c

@@ -29,19 +29,19 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
 
     [_QWERTY] = LAYOUT_all(
         //       2        3        4        5        6        7        8        9        10       11       12       13       14         15
-        QK_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_DEL,
-        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_PGUP,
-        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_PGDN,
-        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_UP,
-        KC_LCTL,  KC_LGUI,   KC_LALT,                            KC_SPC,                    KC_RALT,MO(1) ,   KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT
+        QK_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_DEL,
+        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_PGUP,
+        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_PGDN,
+        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_UP,
+        KC_LCTL, KC_LGUI, KC_LALT,                            KC_SPC,                    KC_RALT, MO(1),   KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT
     ),
 
     [_FUNCTION] = 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,  KC_DEL,
-        _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_PGUP,
-        _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_ENT,  KC_PGDN,
-        _______, _______, RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, KC_MUTE, KC_VOLD, KC_VOLU, MO(2),   _______, KC_PGUP,
-        _______, _______, _______,                            _______,                   _______, _______, _______, KC_HOME, KC_PGDN, KC_END
+        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_BTN1, KC_MS_U, KC_BTN2, KC_WH_U, _______, KC_INS,  _______, KC_UP,   KC_PAUSE, KC_PGUP, KC_HOME, KC_PSCR, _______, KC_HOME,
+        _______, KC_MS_L, KC_MS_D, KC_MS_R, KC_WH_D, _______, KC_SCRL, KC_LEFT, KC_DOWN, KC_RIGHT, KC_PGDN, KC_END,  _______, _______, KC_END,
+        _______, _______, RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, KC_MUTE, KC_VOLD,  KC_VOLU, _______, _______, _______,
+        _______, _______, _______,                            _______,                   MO(2),    _______, _______, _______, _______, _______
     ),
 
     [_COLOUR] = LAYOUT_all(

+ 25 - 0
keyboards/handwired/dactylmacropad/config.h

@@ -0,0 +1,25 @@
+// Copyright 2022 bwprobably
+// SPDX-License-Identifier: GPL-2.0-or-later
+
+#pragma once
+
+/*
+ * Feature disable options
+ *  These options are also useful to firmware size reduction.
+ */
+
+/* disable debug print */
+//#define NO_DEBUG
+
+/* disable print */
+//#define NO_PRINT
+
+/* disable action features */
+//#define NO_ACTION_LAYER
+//#define NO_ACTION_TAPPING
+//#define NO_ACTION_ONESHOT
+
+#define ENCODERS_PAD_A { D1 }
+#define ENCODERS_PAD_B { D0 }
+#define ENCODER_RESOLUTION 4
+#define TAP_CODE_DELAY 100

+ 45 - 0
keyboards/handwired/dactylmacropad/info.json

@@ -0,0 +1,45 @@
+{
+    "manufacturer": "bwprobably",
+    "keyboard_name": "DactylMacropad",
+    "maintainer": "bwprobably",
+    "bootloader": "atmel-dfu",
+    "diode_direction": "COL2ROW",
+    "features": {
+        "bootmagic": true,
+        "command": false,
+        "console": false,
+        "extrakey": true,
+        "mousekey": true,
+        "nkro": true,
+        "encoder":true
+    },
+    "matrix_pins": {
+        "cols": ["F7", "B1", "B3", "B2", "B6"],
+        "rows": ["F6", "B4", "B5"]
+    },
+    "processor": "atmega32u4",
+    "usb": {
+        "device_version": "1.0.0",
+        "pid": "0x0000",
+        "vid": "0xFEED"
+    },
+    "layouts": {
+        "LAYOUT": {
+            "layout": [
+                { "matrix": [0, 0], "x": 0, "y": 0 },
+                { "matrix": [0, 1], "x": 1, "y": 0 },
+                { "matrix": [0, 2], "x": 2, "y": 0 },
+                { "matrix": [0, 3], "x": 3, "y": 0 },
+                { "matrix": [1, 0], "x": 0, "y": 1 },
+                { "matrix": [1, 1], "x": 1, "y": 1 },
+                { "matrix": [1, 2], "x": 2, "y": 1 },
+                { "matrix": [1, 3], "x": 3, "y": 1 },
+                { "matrix": [2, 0], "x": 0, "y": 2 },
+                { "matrix": [2, 1], "x": 1, "y": 2 },
+                { "matrix": [2, 2], "x": 2, "y": 2 },
+                { "matrix": [2, 3], "x": 3, "y": 2 },
+                { "matrix": [2, 4], "x": 4, "y": 2 }
+            ]
+        }
+    }
+}

+ 123 - 0
keyboards/handwired/dactylmacropad/keymaps/default/keymap.c

@@ -0,0 +1,123 @@
+// Copyright 2022 bwprobably
+// SPDX-License-Identifier: GPL-2.0-or-later
+
+#include QMK_KEYBOARD_H
+
+bool is_alt_tab_active = false;
+uint16_t alt_tab_timer = 0;
+
+enum layer_names {
+    _BASE,
+    _MTG,
+    _MAC
+};
+
+enum custom_keycodes {
+  pvt = SAFE_RANGE,
+  snap,
+  ALT_TAB
+};
+
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+	/*
+     * ┌───┬───┬───┬───┐
+     * │pvt│pst│ up│cpy│
+     * ├───┼───┼───┤───│
+     * │sft│ lf│ dn│rt │
+     * ├───┼───┼───┼───┤───┤
+     * │[1]│ctr│wtb│app│bt3│
+     * ├───┴───┼───┤───│───│
+     */
+	[_BASE] = LAYOUT
+		(pvt, LCTL(KC_V), KC_UP, LCTL(KC_C),
+		LSFT_T(KC_ESC), KC_LEFT, KC_DOWN, KC_RGHT,
+		TO(1),   KC_LCTL,   ALT_TAB,  KC_APP, KC_BTN3),
+	/*
+		 * ┌────┬────┬────┬────┐
+		 * │mte │ BI │ up │pgu │
+		 * ├────┼────┼────┤────│
+		 * │snp │ lf │ dn │ rt │
+		 * ├────┼────┼────┼────┤───┤
+		 * │[1] │mut │min │pgd │ply│
+		 * ├────┴────┼────┤────│───│
+		 */
+	[_MTG] = LAYOUT (
+		LCTL(LSFT(KC_H)), LCTL(KC_F6), KC_TRNS, KC_PGUP,
+		snap,  KC_TRNS, KC_TRNS, KC_TRNS,
+		TO(2), KC_MUTE, LGUI(KC_M), KC_PGDN, KC_MPLY),
+		/*
+			 * ┌────┬────┬────┬────┐
+			 * │sdbr│past│ up │ cpy│
+			 * ├────┼────┼────┤────│
+			 * │snp │ lf │ dn │ rt │
+			 * ├────┼────┼────┤─────│────┤
+			 * │[1] |qkfl│ min│focus│ ply│
+			 * ├────┴────┼────┤─────│────│
+			 */
+	[_MAC] = LAYOUT (
+	 LSFT(LGUI(KC_L)), LGUI(KC_V), KC_TRNS, LGUI(KC_C),
+		LGUI(LCTL(LSFT(KC_4))), KC_TRNS, KC_TRNS, KC_TRNS,
+		TO(0),   LSFT(LGUI(KC_O)), LCTL(LALT(KC_F3)), LCTL(LSFT(KC_1)), KC_TRNS)
+};
+
+
+bool encoder_update_user(uint8_t index, bool clockwise) {
+      if (IS_LAYER_ON(_MTG)) {
+              if (clockwise) {
+                  tap_code(KC_VOLU);
+              } else {
+                  tap_code16(S(KC_VOLD));
+              }
+          } else {
+              if (clockwise) {
+                  tap_code(KC_WH_D);
+              } else {
+                  tap_code(KC_WH_U);
+              }
+          }
+          return false;
+      }
+
+
+
+bool process_record_user(uint16_t keycode, keyrecord_t *record) {
+	switch (keycode) {
+    case pvt:
+        if (record->event.pressed) {
+            // creates pivot table in excel
+            SEND_STRING(SS_LALT("nvt"));
+        } else {
+            // when keycode QMKBEST is released
+        }
+        break;
+    case snap:
+        if (record->event.pressed) {
+           SEND_STRING(SS_TAP(X_LGUI)SS_DELAY(500)"snip"SS_DELAY(500)SS_TAP(X_ENTER)SS_LALT("n")); // opens snipping and creates new snip
+        }
+        break;
+
+    case ALT_TAB:
+      if (record->event.pressed) {
+        if (!is_alt_tab_active) {
+          is_alt_tab_active = true;
+          register_code(KC_LALT);
+        }
+        alt_tab_timer = timer_read();
+        register_code(KC_TAB);
+      } else {
+        unregister_code(KC_TAB);
+      }
+      break;
+    }
+    return true;
+}
+
+void housekeeping_task_user(void) {
+  if (is_alt_tab_active) {
+    if (timer_elapsed(alt_tab_timer) > 1000) {
+      unregister_code(KC_LALT);
+      is_alt_tab_active = false;
+    }
+  }
+}

+ 26 - 0
keyboards/handwired/dactylmacropad/readme.md

@@ -0,0 +1,26 @@
+# DactylMacropad
+
+[Glamour shot](https://i.imgur.com/ONvbIbmh.jpg)
+
+* Keyboard Maintainer: [bwprobably](https://github.com/bwprobably)
+* Hardware Supported: ProMicro (Atmega32U4), EC11 Rotary Encoder
+* Hardware Availability: [Example Encoder](https://www.amazon.com/dp/B07D3DF8TK/)
+[ProMicro](https://www.sparkfun.com/products/12640)
+
+Make example for this keyboard (after setting up your build environment):
+
+    make default:default
+
+Flashing example for this keyboard:
+
+    make default:default:flash
+
+See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs).
+
+## Bootloader
+
+Enter the bootloader in 3 ways:
+
+* **Bootmagic reset**: Hold down the key at (0,0) in the matrix (usually the top left key or Escape) and plug in the keyboard
+* **Physical reset button**: Briefly press the button on the back of the PCB - some may have pads you must short instead
+* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available

+ 1 - 0
keyboards/handwired/dactylmacropad/rules.mk

@@ -0,0 +1 @@
+# This file intentionally left blank

+ 1 - 1
keyboards/jels/boaty/info.json

@@ -1,6 +1,6 @@
 {
     "keyboard_name": "Boaty",
-    "manufacurer": "Jels",
+    "manufacturer": "Jels",
     "usb": {
         "vid": "0x6A6B",
         "pid": "0x000B",

+ 25 - 25
keyboards/jels/boaty/keymaps/default/keymap.c

@@ -18,30 +18,30 @@
 
 const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
 
-//base layer
-[0] = LAYOUT_all(
-                                            KC_NUM,
-                                            KC_PAST, KC_PSLS,
-                                            KC_P7,   KC_P8,   KC_P9,
-                                            KC_P4,   KC_P5,   KC_P6,   KC_PPLS,
-                                            KC_P1,   KC_P2,   KC_P3,   KC_PENT, KC_PPLS,
-                                            KC_P0,   KC_P0,   KC_PDOT, KC_PENT, KC_PMNS, KC_F1,
+  //base layer
+  [0] = LAYOUT_all(
+                                              KC_NUM,
+                                              KC_PAST, KC_PSLS,
+                                              KC_P7,   KC_P8,   KC_P9,
+                                              KC_P4,   KC_P5,   KC_P6,   KC_PPLS,
+                                              KC_P1,   KC_P2,   KC_P3,   KC_PENT, KC_PPLS,
+                                              KC_P0,   KC_P0,   KC_PDOT, KC_PENT, KC_PMNS, KC_F1,
 
-KC_1, KC_TAB,  KC_Q,   KC_W,    KC_E,    KC_R,    KC_T,   KC_Y,   KC_U,    KC_I,    KC_O,   KC_P,    KC_BSPC, KC_DEL,
-        KC_1, KC_CAPS,  KC_A,    KC_S,    KC_D,    KC_F,   KC_G,   KC_H,    KC_J,    KC_K,   KC_L,    KC_ENT,
-            KC_1,  KC_LSFT, KC_Z,    KC_X,    KC_C,   KC_V,   KC_B,    KC_N,    KC_M,   KC_RSFT,
-                          KC_LCTL, KC_LALT, KC_SPC, KC_1, KC_RALT, KC_RCTL
-),
-[1] = LAYOUT_all(
-                                            KC_F2,
-                                            KC_TRNS, KC_TRNS,
-                                            KC_TRNS, KC_TRNS, KC_TRNS,
-                                            KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
-                                            KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
-                                            KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
-KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
-         KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
-                  KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
-                           KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
-)
+  KC_1, KC_TAB,  KC_Q,   KC_W,    KC_E,    KC_R,    KC_T,   KC_Y,   KC_U,    KC_I,    KC_O,   KC_P,    KC_BSPC, KC_DEL,
+          KC_1, KC_CAPS,  KC_A,    KC_S,    KC_D,    KC_F,   KC_G,   KC_H,    KC_J,    KC_K,   KC_L,    KC_ENT,
+              KC_1,  KC_LSFT, KC_Z,    KC_X,    KC_C,   KC_V,   KC_B,    KC_N,    KC_M,   KC_RSFT,
+                            KC_LCTL, KC_LALT, KC_SPC, KC_1, KC_RALT, KC_RCTL
+  ),
+  [1] = LAYOUT_all(
+                                              KC_F2,
+                                              KC_TRNS, KC_TRNS,
+                                              KC_TRNS, KC_TRNS, KC_TRNS,
+                                              KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+                                              KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+                                              KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+  KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+           KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+                    KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+                             KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
+  )
 };

+ 49 - 25
keyboards/jels/boaty/keymaps/via/keymap.c

@@ -18,30 +18,54 @@
 
 const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
 
-//base layer
-[0] = LAYOUT_all(
-                                            KC_NUM,
-                                            KC_PAST, KC_PSLS,
-                                            KC_P7,   KC_P8,   KC_P9,
-                                            KC_P4,   KC_P5,   KC_P6,   KC_PPLS,
-                                            KC_P1,   KC_P2,   KC_P3,   KC_PENT, KC_PPLS,
-                                            KC_P0,   KC_P0,   KC_PDOT, KC_PENT, KC_PMNS, KC_F1,
+  //base layer
+  [0] = LAYOUT_all(
+                                              KC_NUM,
+                                              KC_PAST, KC_PSLS,
+                                              KC_P7,   KC_P8,   KC_P9,
+                                              KC_P4,   KC_P5,   KC_P6,   KC_PPLS,
+                                              KC_P1,   KC_P2,   KC_P3,   KC_PENT, KC_PPLS,
+                                              KC_P0,   KC_P0,   KC_PDOT, KC_PENT, KC_PMNS, KC_F1,
 
-KC_ESC, KC_TAB,  KC_Q,    KC_W,    KC_E,    KC_R,    KC_T,   KC_Y,   KC_U,    KC_I,    KC_O,   KC_P,    KC_BSPC, KC_DEL,
-        KC_CAPS, KC_A,    KC_S,    KC_D,    KC_F,    KC_G,   KC_H,   KC_J,    KC_K,    KC_L,   KC_SCLN, KC_ENT,
-                 KC_LSFT, KC_Z,    KC_X,    KC_C,    KC_V,   KC_B,    KC_N,    KC_M,    KC_COMM, KC_RSFT,
-                          KC_LCTL, KC_LALT, KC_SPC,  MO(1), KC_RALT, KC_RCTL
-),
-[1] = LAYOUT_all(
-                                            KC_F2,
-                                            KC_TRNS, KC_TRNS,
-                                            KC_TRNS, KC_TRNS, KC_TRNS,
-                                            KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
-                                            KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
-                                            KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
-KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
-         KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
-                  KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
-                           KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
-)
+  KC_ESC, KC_TAB,  KC_Q,    KC_W,    KC_E,    KC_R,    KC_T,   KC_Y,   KC_U,    KC_I,    KC_O,   KC_P,    KC_BSPC, KC_DEL,
+          KC_CAPS, KC_A,    KC_S,    KC_D,    KC_F,    KC_G,   KC_H,   KC_J,    KC_K,    KC_L,   KC_SCLN, KC_ENT,
+                   KC_LSFT, KC_Z,    KC_X,    KC_C,    KC_V,   KC_B,    KC_N,    KC_M,    KC_COMM, KC_RSFT,
+                            KC_LCTL, KC_LALT, KC_SPC,  MO(1), KC_RALT, KC_RCTL
+  ),
+  [1] = LAYOUT_all(
+                                              KC_F2,
+                                              KC_TRNS, KC_TRNS,
+                                              KC_TRNS, KC_TRNS, KC_TRNS,
+                                              KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+                                              KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+                                              KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+  KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+           KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+                    KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+                             KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
+  ),
+  [2] = LAYOUT_all(
+                                              KC_F2,
+                                              KC_TRNS, KC_TRNS,
+                                              KC_TRNS, KC_TRNS, KC_TRNS,
+                                              KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+                                              KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+                                              KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+  KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+           KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+                    KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 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] = LAYOUT_all(
+                                              KC_F2,
+                                              KC_TRNS, KC_TRNS,
+                                              KC_TRNS, KC_TRNS, KC_TRNS,
+                                              KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+                                              KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+                                              KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+  KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+           KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+                    KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+                             KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
+  )
 };

+ 30 - 0
keyboards/keebio/nyquist/keymaps/bwprobably/config.h

@@ -0,0 +1,30 @@
+/*
+Copyright 2017 Danny Nguyen <danny@hexwire.com>
+
+This program is free software: you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation, either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program.  If not, see <http://www.gnu.org/licenses/>.
+*/
+
+#pragma once
+
+#define USE_I2C
+
+/* Select hand configuration */
+#define MASTER_RIGHT
+// #define EE_HANDS
+
+#undef RGBLED_NUM
+#define RGBLED_NUM 12
+#define RGBLIGHT_HUE_STEP 8
+#define RGBLIGHT_SAT_STEP 8
+#define RGBLIGHT_VAL_STEP 8

+ 31 - 0
keyboards/keebio/nyquist/keymaps/bwprobably/keymap.c

@@ -0,0 +1,31 @@
+// Copyright 2022 bwprobably
+// SPDX-License-Identifier: GPL-2.0-or-later
+
+#include QMK_KEYBOARD_H
+
+
+enum custom_layer {
+    _LAYER0,
+    _LAYER1,
+    _LAYER2,
+    _LAYER3,
+};
+
+enum custom_keycodes {
+    LAYER0 = SAFE_RANGE,
+    LAYER1,
+    LAYER2,
+    LAYER3,
+};
+
+ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+
+ [_LAYER0] = LAYOUT(KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, 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_BSLS, LT(3,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_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_LALT, KC_LGUI, KC_DEL, MO(1), KC_SPC, KC_SPC, MO(2), KC_LEFT, KC_DOWN, KC_UP, KC_RGHT),
+
+[_LAYER1] = LAYOUT(KC_F12, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_TAB, KC_Q, KC_UP, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_CALC, KC_HOME, KC_ESC, KC_LEFT, KC_DOWN, KC_RGHT, KC_T, KC_D, KC_H, KC_N, KC_TRNS, KC_I, KC_MUTE, KC_PGUP, KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, KC_MNXT, KC_MPLY, KC_VOLU, KC_PGDN, MO(3), KC_LCTL, KC_LALT, KC_LGUI, KC_TRNS, KC_SPC, KC_SPC, KC_TRNS, KC_MPRV, KC_MSTP, KC_VOLD, KC_END),
+
+[_LAYER2] = LAYOUT(KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_BSPC, KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_DEL, KC_DEL, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_UNDS, KC_PLUS, KC_TRNS, KC_RCBR, KC_PIPE, KC_TRNS, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, LSFT(KC_NUHS), LSFT(KC_BSLS), KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY),
+
+[_LAYER3] = LAYOUT(KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_NO, KC_NO, KC_PSLS, KC_PAST, KC_PMNS, KC_NO, KC_TRNS, RESET, RGB_TOG, RGB_MOD, RGB_HUD, RGB_HUI, KC_NO, KC_P7, KC_P8, KC_P9, KC_PPLS, KC_DEL, KC_TRNS, KC_TRNS, BL_TOGG, BL_DEC, BL_INC, AG_NORM, KC_NO, KC_P4, KC_P5, KC_P6, KC_PCMM, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_NO, KC_P1, KC_P2, KC_P3, KC_PEQL, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_P0, KC_PDOT, KC_PENT, KC_TRNS) 
+
+};

+ 1 - 0
keyboards/keebio/nyquist/keymaps/bwprobably/rules.mk

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

+ 1 - 1
keyboards/keyboardio/atreus/keymaps/dshields/keymap.c

@@ -19,7 +19,7 @@
 const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
     [DEF] = LAYOUT(
         KC_Q,    KC_W,    KC_E,    KC_R,    KC_T,                      KC_Y,    KC_U,    KC_I,    KC_O,    KC_P   ,
-        MT_A,    MT_S,    MT_D,    MT_F,    KC_G,                      KC_H,    MT_J,    MT_K,    MT_L,    MT_SCLN,
+        MT_A,    MT_S,    MT_D,    MT_F,    LT_G,                      LT_H,    MT_J,    MT_K,    MT_L,    MT_SCLN,
         KC_Z,    KC_X,    KC_C,    KC_V,    KC_B,    KC_TAB,  KC_ENT,  KC_N,    KC_M,    KC_COMM, KC_DOT,  KC_SLSH,
         OSMLCTL, MT_ESC,  OSMLALT, OSL_FUN, MT_BSPC, OSL_LWR, OSL_RSE, MT_SPC,  KC_LEFT, KC_DOWN, KC_UP,   KC_RGHT
     ),

+ 1 - 1
keyboards/keyboardio/model01/keymaps/dshields/keymap.c

@@ -5,7 +5,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
 [DEF] = LAYOUT(
     QK_BOOT, KC_1   , KC_2   , KC_3   , KC_4   , KC_5   ,                      KC_6   , KC_7   , KC_8   , KC_9   , KC_0   , _______,
     KC_GRV , KC_Q   , KC_W   , KC_E   , KC_R   , KC_T   , RGB_TOG,    DM_REC1, KC_Y   , KC_U   , KC_I   , KC_O   , KC_P   , KC_EQL ,
-    KC_PGUP, MT_A   , MT_S   , MT_D   , MT_F   , KC_G   , KC_TAB ,    KC_ENT , KC_H   , MT_J   , MT_K   , MT_L   , MT_SCLN, KC_QUOT,
+    KC_PGUP, MT_A   , MT_S   , MT_D   , MT_F   , LT_G   , KC_TAB ,    KC_ENT , LT_H   , MT_J   , MT_K   , MT_L   , MT_SCLN, KC_QUOT,
     KC_PGDN, KC_Z   , KC_X   , KC_C   , KC_V   , KC_B   , KC_ESC ,    DM_PLY1, KC_N   , KC_M   , KC_COMM, KC_DOT , KC_SLSH, KC_MINS,
                                            OSMLCTL,                                 OSMRCTL,
                                               KC_BSPC,                           KC_SPC ,

+ 1 - 1
keyboards/meletrix/zoom87/config.h

@@ -35,7 +35,7 @@
 
 #define RGB_DI_PIN D2
 #ifdef RGB_DI_PIN
-    #define RGBLED_NUM 10
+    #define RGBLED_NUM 20
     #define RGBLIGHT_HUE_STEP 8
     #define RGBLIGHT_SAT_STEP 8
     #define RGBLIGHT_VAL_STEP 8

+ 2 - 0
keyboards/meletrix/zoom87/readme.md

@@ -1,5 +1,7 @@
 # zoom87
 
+![Zoom87](https://i.imgur.com/BfoEUQBh.jpeg)
+
 More Info at [meletrix](https://meletrix.com/)
 

+ 1 - 1
keyboards/planck/keymaps/dshields/keymap.c

@@ -4,7 +4,7 @@
 const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
     [DEF] = LAYOUT_planck_grid(
         KC_Q,    KC_W,    KC_E,    KC_R,    KC_T,    KC_ESC,  KC_BSPC, KC_Y,    KC_U,    KC_I,    KC_O,    KC_P   ,
-        MT_A,    MT_S,    MT_D,    MT_F,    KC_G,    KC_TAB,  KC_ENT,  KC_H,    MT_J,    MT_K,    MT_L,    MT_SCLN,
+        MT_A,    MT_S,    MT_D,    MT_F,    LT_G,    KC_TAB,  KC_ENT,  LT_H,    MT_J,    MT_K,    MT_L,    MT_SCLN,
         KC_Z,    KC_X,    KC_C,    KC_V,    KC_B,    OSMLSFT, DM_PLY1, KC_N,    KC_M,    KC_COMM, KC_DOT,  KC_SLSH,
         OSMLCTL, KC_LGUI, OSMLALT, OSL_FUN, OSL_LWR, MT_SPC,  MT_SPC,  OSL_RSE, KC_LEFT, KC_DOWN, KC_UP,   KC_RGHT
     ),

+ 28 - 0
keyboards/yandrstudio/yr80/board.h

@@ -0,0 +1,28 @@
+/* Copyright 2022 JasonRen(biu)
+ *
+ * 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_next "board.h"
+
+#undef STM32_HSECLK
+#define STM32_HSECLK 16000000
+
+#undef VAL_GPIOCCRH
+#define VAL_GPIOCCRH 0x88888888
+
+#undef VAL_GPIOBCRH
+#define VAL_GPIOBCRH 0x88888888

+ 48 - 0
keyboards/yandrstudio/yr80/config.h

@@ -0,0 +1,48 @@
+/* Copyright 2022 JasonRen(biu)
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program.  If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#pragma once
+#include "config_common.h"
+
+#ifdef RGBLIGHT_ENABLE
+
+#    define RGB_DI_PIN A7
+#    define RGBLED_NUM 1
+#    define DRIVER_LED_TOTAL RGBLED_NUM
+
+#    define RGBLIGHT_LAYERS
+#    define RGBLIGHT_LAYERS_OVERRIDE_RGB_OFF
+#    define RGBLIGHT_LAYERS_RETAIN_VAL
+
+#    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_MOOD
+
+#   define WS2812_PWM_DRIVER PWMD3
+#   define WS2812_PWM_CHANNEL 2
+#   define WS2812_PWM_PAL_MODE 2
+#   define WS2812_DMA_STREAM STM32_DMA1_STREAM3
+#   define WS2812_DMA_CHANNEL 3
+
+#endif

+ 6 - 2
keyboards/aeboards/ext65/config.h → keyboards/yandrstudio/yr80/halconf.h

@@ -1,4 +1,4 @@
-/* Copyright 2020 Harrison Chan (Xelus)
+/* Copyright 2022 JasonRen(biu)
  *
  * This program is free software: you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -14,4 +14,8 @@
  * along with this program.  If not, see <http://www.gnu.org/licenses/>.
  */
 
-#include "config_common.h"
+#pragma once
+#include_next <halconf.h>
+
+#undef HAL_USE_PWM
+#define HAL_USE_PWM    TRUE

Rozdílová data souboru nebyla zobrazena, protože soubor je příliš velký
+ 15 - 0
keyboards/yandrstudio/yr80/info.json


+ 34 - 0
keyboards/yandrstudio/yr80/keymaps/default/keymap.c

@@ -0,0 +1,34 @@
+/* Copyright 2022 JasonRen(biu)
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program.  If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#include QMK_KEYBOARD_H
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+    [0] = LAYOUT(
+        KC_ESC,  KC_F1,   KC_F2,   KC_F3,  KC_F4,   KC_F5,   KC_F6,   KC_F7,   KC_F8,  KC_F9,   KC_F10,  KC_F11,  KC_F12,  KC_F13,  KC_MUTE, KC_VOLU, KC_VOLD,
+        KC_GRV,  KC_1,    KC_2,    KC_3,   KC_4,    KC_5,    KC_6,    KC_7,    KC_8,    KC_9,   KC_0,    KC_MINS, KC_EQL,  KC_BSPC, KC_INS,  KC_HOME, KC_PGUP,
+        KC_TAB,  KC_Q,    KC_W,    KC_E,   KC_R,    KC_T,    KC_Y,    KC_U,    KC_I,    KC_O,   KC_P,    KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL,  KC_END,  KC_PGDN,
+        KC_CAPS, KC_A,    KC_S,    KC_D,   KC_F,    KC_G,    KC_H,    KC_J,    KC_K,    KC_L,   KC_SCLN, KC_QUOT, KC_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_UP,
+        KC_LCTL, KC_LGUI, KC_LALT,                           KC_SPC,                            KC_RALT, MO(1),   KC_APP,  KC_RCTL, KC_LEFT, KC_DOWN, KC_RIGHT),
+    [1] = LAYOUT(
+        KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+        KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+        KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+        KC_TRNS, KC_TRNS, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+        KC_TRNS,          RGB_TOG, RGB_MOD, RGB_RMOD,RGB_VAI, RGB_VAD, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,                            KC_TRNS,
+        KC_TRNS, KC_TRNS, KC_TRNS,                            KC_TRNS,                            KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS)
+};

+ 48 - 0
keyboards/yandrstudio/yr80/keymaps/via/keymap.c

@@ -0,0 +1,48 @@
+/* Copyright 2022 JasonRen(biu)
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program.  If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#include QMK_KEYBOARD_H
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+    [0] = LAYOUT(
+        KC_ESC,  KC_F1,   KC_F2,   KC_F3,  KC_F4,   KC_F5,   KC_F6,   KC_F7,   KC_F8,  KC_F9,   KC_F10,  KC_F11,  KC_F12,  KC_F13,  KC_MUTE, KC_VOLU, KC_VOLD,
+        KC_GRV,  KC_1,    KC_2,    KC_3,   KC_4,    KC_5,    KC_6,    KC_7,    KC_8,    KC_9,   KC_0,    KC_MINS, KC_EQL,  KC_BSPC, KC_INS,  KC_HOME, KC_PGUP,
+        KC_TAB,  KC_Q,    KC_W,    KC_E,   KC_R,    KC_T,    KC_Y,    KC_U,    KC_I,    KC_O,   KC_P,    KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL,  KC_END,  KC_PGDN,
+        KC_CAPS, KC_A,    KC_S,    KC_D,   KC_F,    KC_G,    KC_H,    KC_J,    KC_K,    KC_L,   KC_SCLN, KC_QUOT, KC_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_UP,
+        KC_LCTL, KC_LGUI, KC_LALT,                           KC_SPC,                            KC_RALT, MO(1),   KC_APP,  KC_RCTL, KC_LEFT, KC_DOWN, KC_RIGHT),
+    [1] = LAYOUT(
+        KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+        KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+        KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+        KC_TRNS, KC_TRNS, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+        KC_TRNS,          RGB_TOG, RGB_MOD, RGB_RMOD,RGB_VAI, RGB_VAD, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,                            KC_TRNS,
+        KC_TRNS, KC_TRNS, KC_TRNS,                            KC_TRNS,                            KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS),
+    [2] = LAYOUT(
+        KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+        KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+        KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+        KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+        KC_TRNS,          KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,                            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] = LAYOUT(
+        KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+        KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+        KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+        KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+        KC_TRNS,          KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,                            KC_TRNS,
+        KC_TRNS, KC_TRNS, KC_TRNS,                            KC_TRNS,                            KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS)
+};

+ 1 - 0
keyboards/yandrstudio/yr80/keymaps/via/rules.mk

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

+ 25 - 0
keyboards/yandrstudio/yr80/mcuconf.h

@@ -0,0 +1,25 @@
+/* Copyright 2022 JasonRen(biu)
+ *
+ * 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_next <mcuconf.h>
+
+#undef STM32_PWM_USE_TIM3
+#define STM32_PWM_USE_TIM3 TRUE
+
+#undef STM32_PLLXTPRE
+#define STM32_PLLXTPRE STM32_PLLXTPRE_DIV2

+ 22 - 0
keyboards/yandrstudio/yr80/readme.md

@@ -0,0 +1,22 @@
+# yr80
+
+![yr80](https://i.imgur.com/bNsbo0qh.png)
+A 80% multi-layout keyboard with 1 RGB in F13 key.
+This keyboard use 16mhz HSE and APM32F103CBT6(STM32F103CBT6) as MCU.
+
+- Keyboard Maintainer: https://github.com/jiaxin96
+- Hardware Supported: yr80
+- Hardware Availability: [TaoBao-5162](https://item.taobao.com/item.htm?id=673317975633)
+
+Make example for this keyboard (after setting up your build environment):
+
+    make yandrstudio/yr80:default
+
+See [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) then the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information.
+
+## Bootloader
+
+Enter the bootloader in 2 ways:
+
+- **Bootmagic reset**: Hold down the key at (0,0) in the matrix (usually the top left key which is Escape in this keyboard) and plug in the keyboard
+- **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available.

+ 16 - 0
keyboards/yandrstudio/yr80/rules.mk

@@ -0,0 +1,16 @@
+# Wildcard to allow APM32 MCU
+DFU_SUFFIX_ARGS = -p FFFF -v FFFF
+
+# 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
+WS2812_DRIVER = pwm         # WS2812 RGB Driver

+ 73 - 0
keyboards/yandrstudio/yr80/yr80.c

@@ -0,0 +1,73 @@
+/* Copyright 2022 JasonRen(biu)
+ *
+ * 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 "yr80.h"
+
+#ifdef RGBLIGHT_ENABLE
+
+const rgblight_segment_t PROGMEM my_capslock_layer[] = RGBLIGHT_LAYER_SEGMENTS(
+    {0, 1, HSV_RED}
+);
+
+const rgblight_segment_t* const PROGMEM my_rgb_layers[] = RGBLIGHT_LAYERS_LIST(
+    my_capslock_layer
+);
+
+bool led_update_kb(led_t led_state) {
+    if (!led_update_user(led_state)) { return false; }
+    rgblight_set_layer_state(0, led_state.caps_lock);
+    return true;
+}
+
+void keyboard_post_init_kb(void) {
+    rgblight_layers = my_rgb_layers;
+    keyboard_post_init_user();
+}
+
+#endif
+
+
+bool process_record_kb(uint16_t keycode, keyrecord_t *record) {
+    if (!process_record_user(keycode, record)) { return false; }
+    switch(keycode) {
+        case KC_LG:
+            if (record->event.pressed) {
+                process_magic(GUI_TOG, record);
+            }
+            return false;
+        case KC_MACOS:
+            if (record->event.pressed) {
+                process_magic(CG_TOGG, record);
+            }
+            return false;
+        case KC_MCTL:
+            if (record->event.pressed) {
+                host_consumer_send(0x29F);
+            } else {
+                host_consumer_send(0);
+            }
+            return false;
+        case KC_LPAD:
+            if (record->event.pressed) {
+                host_consumer_send(0x2A0);
+            } else {
+                host_consumer_send(0);
+            }
+            return false;
+        default:
+            return true;
+    }
+    return true;
+}

+ 56 - 0
keyboards/yandrstudio/yr80/yr80.h

@@ -0,0 +1,56 @@
+/* Copyright 2022 JasonRen(biu)
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program.  If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#pragma once
+#include "quantum.h"
+
+#define LAYOUT( \
+    K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K013, K014, K015, K016, \
+    K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K113, K114, K115, K116, \
+    K200, K201, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, K213, K214, K215, K216, \
+    K300, K301, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, K312,                         \
+    K400,       K402, K403, K404, K405, K406, K407, K408, K409, K410, K411, K412,                   K416, \
+    K500, K501, K502,                   K506, K507, K508, K509, K510,                   K514, K515, K516  \
+    )\
+    { \
+    { K000,  K001,  K002,  K003,  K004,  K005,  K006,  K007,  K008,  K009,  K010,  K011,  K012,  K013,  K014,  K015,  K016 }, \
+    { K100,  K101,  K102,  K103,  K104,  K105,  K106,  K107,  K108,  K109,  K110,  K111,  K112,  K113,  K114,  K115,  K116 }, \
+    { K200,  K201,  K202,  K203,  K204,  K205,  K206,  K207,  K208,  K209,  K210,  K211,  K212,  K213,  K214,  K215,  K216 }, \
+    { K300,  K301,  K302,  K303,  K304,  K305,  K306,  K307,  K308,  K309,  K310,  K311,  K312,  KC_NO, KC_NO, KC_NO, KC_NO }, \
+    { K400,  KC_NO, K402,  K403,  K404,  K405,  K406,  K407,  K408,  K409,  K410,  K411,  K412,  KC_NO, KC_NO, KC_NO, K416 }, \
+    { K500,  K501,  K502,  KC_NO, KC_NO, KC_NO, K506,  K507,  K508,  K509,  K510,  KC_NO, KC_NO, KC_NO, K514,  K515,  K516 }  \
+}
+
+enum keyboard_keycodes {
+#ifdef VIA_ENABLE
+    LOCK_GUI = USER00,
+    TOG_MACOS_KEYMAP,
+    KC_MISSION_CONTROL,
+    KC_LAUNCHPAD,
+    NEW_SAFE_RANGE = SAFE_RANGE  // Important!
+#else
+    LOCK_GUI = SAFE_RANGE,
+    TOG_MACOS_KEYMAP,
+    KC_MISSION_CONTROL,
+    KC_LAUNCHPAD,
+    NEW_SAFE_RANGE   // Important!
+#endif
+};
+
+#define KC_LG    LOCK_GUI
+#define KC_MACOS TOG_MACOS_KEYMAP
+#define KC_MCTL  KC_MISSION_CONTROL
+#define KC_LPAD  KC_LAUNCHPAD

+ 4 - 0
users/dshields/config.h

@@ -13,9 +13,13 @@
 
 #define MOUSEKEY_INTERVAL         20
 #define MOUSEKEY_DELAY            0
+#ifndef MOUSEKEY_TIME_TO_MAX
 #define MOUSEKEY_TIME_TO_MAX      40
+#endif
 #define MOUSEKEY_MAX_SPEED        7
+#ifndef MOUSEKEY_WHEEL_DELAY
 #define MOUSEKEY_WHEEL_DELAY      0
+#endif
 
 #undef ENABLE_RGB_MATRIX_ALPHAS_MODS
 #undef ENABLE_RGB_MATRIX_BREATHING

+ 20 - 7
users/dshields/dshields.h

@@ -26,22 +26,35 @@
 #define MT_L    RALT_T(KC_L)
 #define MT_SCLN RGUI_T(KC_SCLN)
 
+// layer-tap keys
+#if defined KEYBOARD_planck_light \
+    || defined KEYBOARD_planck_rev3 \
+    || defined KEYBOARD_planck_rev6 \
+    || defined KEYBOARD_keyboardio_atreus
+    #define LT_G    LT(LWR, KC_G)
+    #define LT_H    LT(RSE, KC_H)
+#elif defined KEYBOARD_keyboardio_model01
+    #define LT_G    LT(FUN, KC_G)
+    #define LT_H    LT(FUN, KC_H)
+#else
+    #define LT_G    KC_G
+    #define LT_H    KC_H
+#endif
+
 // LED/RGB controls
-#ifdef KEYBOARD_planck_light
+#if defined KEYBOARD_planck_light
     #define LGT_TOG RGB_TOG
     #define LGT_MOD RGB_MOD
     #define LGT_BRT _______
     #define LGT_INC RGB_HUI
     #define LGT_DEC RGB_HUD
-#endif
-#ifdef KEYBOARD_planck_rev3
+#elif defined KEYBOARD_planck_rev3
     #define LGT_TOG BL_TOGG
     #define LGT_MOD BL_STEP
     #define LGT_BRT BL_BRTG
-    #define LGT_INC BL_UP
-    #define LGT_DEC BL_DOWN
-#endif
-#ifdef KEYBOARD_planck_rev6
+    #define LGT_INC BL_INC
+    #define LGT_DEC BL_DEC
+#else
     #define LGT_TOG _______
     #define LGT_MOD _______
     #define LGT_BRT _______

Některé soubory nejsou zobrazeny, neboť je v těchto rozdílových datech změněno mnoho souborů